diff --git a/src/program_builder.h b/src/program_builder.h index 5a775337cc..41865e50fa 100644 --- a/src/program_builder.h +++ b/src/program_builder.h @@ -29,6 +29,7 @@ #include "src/ast/bitcast_expression.h" #include "src/ast/bool.h" #include "src/ast/bool_literal.h" +#include "src/ast/break_statement.h" #include "src/ast/call_expression.h" #include "src/ast/call_statement.h" #include "src/ast/case_statement.h" @@ -1782,6 +1783,17 @@ class ProgramBuilder { return func; } + /// Creates an ast::BreakStatement + /// @param source the source information + /// @returns the break statement pointer + ast::BreakStatement* Break(const Source& source) { + return create(source); + } + + /// Creates an ast::BreakStatement + /// @returns the break statement pointer + ast::BreakStatement* Break() { return create(); } + /// Creates an ast::ReturnStatement with no return value /// @param source the source information /// @returns the return statement pointer diff --git a/src/writer/spirv/builder.cc b/src/writer/spirv/builder.cc index b42d8ac82b..0e4f0ef3f8 100644 --- a/src/writer/spirv/builder.cc +++ b/src/writer/spirv/builder.cc @@ -3447,6 +3447,49 @@ bool Builder::GenerateConditionalBlock( } bool Builder::GenerateIfStatement(ast::IfStatement* stmt) { + if (!continuing_stack_.empty() && + stmt == continuing_stack_.back().last_statement->As()) { + const ContinuingInfo& ci = continuing_stack_.back(); + // Match one of two patterns: the break-if and break-unless patterns. + // + // The break-if pattern: + // continuing { ... + // if (cond) { break; } + // } + // + // The break-unless pattern: + // continuing { ... + // if (cond) {} else {break;} + // } + auto is_just_a_break = [](ast::BlockStatement* block) { + return block && (block->size() == 1) && + block->last()->Is(); + }; + if (is_just_a_break(stmt->body()) && !stmt->has_else_statements()) { + // It's a break-if. + TINT_ASSERT(Writer, !backedge_stack_.empty()); + const auto cond_id = GenerateExpression(stmt->condition()); + backedge_stack_.back() = + Backedge(spv::Op::OpBranchConditional, + {Operand::Int(cond_id), Operand::Int(ci.break_target_id), + Operand::Int(ci.loop_header_id)}); + return true; + } else if (stmt->body()->empty()) { + const auto& es = stmt->else_statements(); + if (es.size() == 1 && !es.back()->HasCondition() && + is_just_a_break(es.back()->body())) { + // It's a break-unless. + TINT_ASSERT(Writer, !backedge_stack_.empty()); + const auto cond_id = GenerateExpression(stmt->condition()); + backedge_stack_.back() = + Backedge(spv::Op::OpBranchConditional, + {Operand::Int(cond_id), Operand::Int(ci.loop_header_id), + Operand::Int(ci.break_target_id)}); + return true; + } + } + } + if (!GenerateConditionalBlock(stmt->condition(), stmt->body(), 0, stmt->else_statements())) { return false; @@ -3603,6 +3646,11 @@ bool Builder::GenerateLoopStatement(ast::LoopStatement* stmt) { continue_stack_.push_back(continue_block_id); merge_stack_.push_back(merge_block_id); + // Usually, the backedge is a simple branch. This will be modified if the + // backedge block in the continuing construct has an exiting edge. + backedge_stack_.emplace_back(spv::Op::OpBranch, + OperandList{Operand::Int(loop_header_id)}); + if (!push_function_inst(spv::Op::OpBranch, {Operand::Int(body_block_id)})) { return false; } @@ -3630,16 +3678,23 @@ bool Builder::GenerateLoopStatement(ast::LoopStatement* stmt) { return false; } if (stmt->has_continuing()) { + continuing_stack_.emplace_back(stmt->continuing()->last(), loop_header_id, + merge_block_id); if (!GenerateBlockStatementWithoutScoping(stmt->continuing())) { return false; } + continuing_stack_.pop_back(); } scope_stack_.pop_scope(); - if (!push_function_inst(spv::Op::OpBranch, {Operand::Int(loop_header_id)})) { + // Generate the backedge. + TINT_ASSERT(Writer, !backedge_stack_.empty()); + const Backedge& backedge = backedge_stack_.back(); + if (!push_function_inst(backedge.opcode, backedge.operands)) { return false; } + backedge_stack_.pop_back(); merge_stack_.pop_back(); continue_stack_.pop_back(); @@ -4260,6 +4315,26 @@ bool Builder::push_function_inst(spv::Op op, const OperandList& operands) { return true; } +Builder::ContinuingInfo::ContinuingInfo( + const ast::Statement* the_last_statement, + uint32_t loop_id, + uint32_t break_id) + : last_statement(the_last_statement), + loop_header_id(loop_id), + break_target_id(break_id) { + TINT_ASSERT(Writer, last_statement != nullptr); + TINT_ASSERT(Writer, loop_header_id != 0u); + TINT_ASSERT(Writer, break_target_id != 0u); +} + +Builder::Backedge::Backedge(spv::Op the_opcode, OperandList the_operands) + : opcode(the_opcode), operands(the_operands) {} + +Builder::Backedge::Backedge(const Builder::Backedge& other) = default; +Builder::Backedge& Builder::Backedge::operator=( + const Builder::Backedge& other) = default; +Builder::Backedge::~Backedge() = default; + } // namespace spirv } // namespace writer } // namespace tint diff --git a/src/writer/spirv/builder.h b/src/writer/spirv/builder.h index aed54be108..59ae87b181 100644 --- a/src/writer/spirv/builder.h +++ b/src/writer/spirv/builder.h @@ -584,6 +584,33 @@ class Builder { std::vector continue_stack_; std::unordered_set capability_set_; bool has_overridable_workgroup_size_ = false; + + struct ContinuingInfo { + ContinuingInfo(const ast::Statement* last_statement, + uint32_t loop_header_id, + uint32_t break_target_id); + // The last statement in the continiung block. + const ast::Statement* const last_statement = nullptr; + // The ID of the loop header + const uint32_t loop_header_id = 0u; + // The ID of the merge block for the loop. + const uint32_t break_target_id = 0u; + }; + // Stack of nodes, where each is the last statement in a surrounding + // continuing block. + std::vector continuing_stack_; + + // The instruction to emit as the backedge of a loop. + struct Backedge { + Backedge(spv::Op, OperandList); + Backedge(const Backedge&); + Backedge& operator=(const Backedge&); + ~Backedge(); + + spv::Op opcode; + OperandList operands; + }; + std::vector backedge_stack_; }; } // namespace spirv diff --git a/src/writer/spirv/builder_loop_test.cc b/src/writer/spirv/builder_loop_test.cc index 690dec0d61..56d0aacd48 100644 --- a/src/writer/spirv/builder_loop_test.cc +++ b/src/writer/spirv/builder_loop_test.cc @@ -219,6 +219,186 @@ OpBranch %1 )"); } +TEST_F(BuilderTest, Loop_WithContinuing_BreakIf) { + // loop { + // continuing { + // if (true) { break; } + // } + // } + + auto* if_stmt = create(Expr(true), Block(Break()), + ast::ElseStatementList{}); + auto* continuing = Block(if_stmt); + auto* loop = Loop(Block(), continuing); + WrapInFunction(loop); + + spirv::Builder& b = Build(); + + b.push_function(Function{}); + + EXPECT_TRUE(b.GenerateLoopStatement(loop)) << b.error(); + EXPECT_EQ(DumpInstructions(b.types()), R"(%5 = OpTypeBool +%6 = OpConstantTrue %5 +)"); + EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()), + R"(OpBranch %1 +%1 = OpLabel +OpLoopMerge %2 %3 None +OpBranch %4 +%4 = OpLabel +OpBranch %3 +%3 = OpLabel +OpBranchConditional %6 %2 %1 +%2 = OpLabel +)"); +} + +TEST_F(BuilderTest, Loop_WithContinuing_BreakUnless) { + // loop { + // continuing { + // if (true) {} else { break; } + // } + // } + auto* if_stmt = create( + Expr(true), Block(), + ast::ElseStatementList{Else(nullptr, Block(Break()))}); + auto* continuing = Block(if_stmt); + auto* loop = Loop(Block(), continuing); + WrapInFunction(loop); + + spirv::Builder& b = Build(); + + b.push_function(Function{}); + + EXPECT_TRUE(b.GenerateLoopStatement(loop)) << b.error(); + EXPECT_EQ(DumpInstructions(b.types()), R"(%5 = OpTypeBool +%6 = OpConstantTrue %5 +)"); + EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()), + R"(OpBranch %1 +%1 = OpLabel +OpLoopMerge %2 %3 None +OpBranch %4 +%4 = OpLabel +OpBranch %3 +%3 = OpLabel +OpBranchConditional %6 %1 %2 +%2 = OpLabel +)"); +} + +TEST_F(BuilderTest, Loop_WithContinuing_BreakIf_Nested) { + // Make sure the right backedge and break target are used. + // loop { + // continuing { + // loop { + // continuing { + // if (true) { break; } + // } + // } + // if (true) { break; } + // } + // } + + auto* inner_if_stmt = create(Expr(true), Block(Break()), + ast::ElseStatementList{}); + auto* inner_continuing = Block(inner_if_stmt); + auto* inner_loop = Loop(Block(), inner_continuing); + + auto* outer_if_stmt = create(Expr(true), Block(Break()), + ast::ElseStatementList{}); + auto* outer_continuing = Block(inner_loop, outer_if_stmt); + auto* outer_loop = Loop(Block(), outer_continuing); + + WrapInFunction(outer_loop); + + spirv::Builder& b = Build(); + + b.push_function(Function{}); + + EXPECT_TRUE(b.GenerateLoopStatement(outer_loop)) << b.error(); + EXPECT_EQ(DumpInstructions(b.types()), R"(%9 = OpTypeBool +%10 = OpConstantTrue %9 +)"); + EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()), + R"(OpBranch %1 +%1 = OpLabel +OpLoopMerge %2 %3 None +OpBranch %4 +%4 = OpLabel +OpBranch %3 +%3 = OpLabel +OpBranch %5 +%5 = OpLabel +OpLoopMerge %6 %7 None +OpBranch %8 +%8 = OpLabel +OpBranch %7 +%7 = OpLabel +OpBranchConditional %10 %6 %5 +%6 = OpLabel +OpBranchConditional %10 %2 %1 +%2 = OpLabel +)"); +} + +TEST_F(BuilderTest, Loop_WithContinuing_BreakUnless_Nested) { + // Make sure the right backedge and break target are used. + // loop { + // continuing { + // loop { + // continuing { + // if (true) {} else { break; } + // } + // } + // if (true) {} else { break; } + // } + // } + + auto* inner_if_stmt = create( + Expr(true), Block(), + ast::ElseStatementList{Else(nullptr, Block(Break()))}); + auto* inner_continuing = Block(inner_if_stmt); + auto* inner_loop = Loop(Block(), inner_continuing); + + auto* outer_if_stmt = create( + Expr(true), Block(), + ast::ElseStatementList{Else(nullptr, Block(Break()))}); + auto* outer_continuing = Block(inner_loop, outer_if_stmt); + auto* outer_loop = Loop(Block(), outer_continuing); + + WrapInFunction(outer_loop); + + spirv::Builder& b = Build(); + + b.push_function(Function{}); + + EXPECT_TRUE(b.GenerateLoopStatement(outer_loop)) << b.error(); + EXPECT_EQ(DumpInstructions(b.types()), R"(%9 = OpTypeBool +%10 = OpConstantTrue %9 +)"); + EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()), + R"(OpBranch %1 +%1 = OpLabel +OpLoopMerge %2 %3 None +OpBranch %4 +%4 = OpLabel +OpBranch %3 +%3 = OpLabel +OpBranch %5 +%5 = OpLabel +OpLoopMerge %6 %7 None +OpBranch %8 +%8 = OpLabel +OpBranch %7 +%7 = OpLabel +OpBranchConditional %10 %5 %6 +%6 = OpLabel +OpBranchConditional %10 %1 %2 +%2 = OpLabel +)"); +} + } // namespace } // namespace spirv } // namespace writer diff --git a/test/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.spvasm.expected.spvasm index 84e6acaad7..8dd21f8e60 100644 --- a/test/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 56 +; Bound: 53 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -53,7 +51,7 @@ SKIP: FAILED %_ptr_Uniform_float = OpTypePointer Uniform %float %false = OpConstantFalse %bool %main_out = OpTypeStruct %v4float - %44 = OpTypeFunction %void %main_out + %41 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %12 %15 = OpLabel %GLF_live12c5 = OpVariable %_ptr_Function_bool Function %19 @@ -82,32 +80,22 @@ SKIP: FAILED %34 = OpLabel OpBranch %24 %25 = OpLabel - OpSelectionMerge %41 None - OpBranchConditional %false %42 %43 - %42 = OpLabel - OpBranch %41 - %43 = OpLabel - OpBranch %24 - %41 = OpLabel - OpBranch %23 + OpBranchConditional %false %23 %24 %24 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %44 +%tint_symbol_2 = OpFunction %void None %41 %tint_symbol = OpFunctionParameter %main_out - %48 = OpLabel - %49 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %49 + %45 = OpLabel + %46 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %46 OpReturn OpFunctionEnd %main = OpFunction %void None %12 - %51 = OpLabel - %52 = OpFunctionCall %void %main_1 - %54 = OpLoad %v4float %x_GLF_color - %55 = OpCompositeConstruct %main_out %54 - %53 = OpFunctionCall %void %tint_symbol_2 %55 + %48 = OpLabel + %49 = OpFunctionCall %void %main_1 + %51 = OpLoad %v4float %x_GLF_color + %52 = OpCompositeConstruct %main_out %51 + %50 = OpFunctionCall %void %tint_symbol_2 %52 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 25[%25] is not post dominated by the back-edge block 41[%41] - %41 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.wgsl.expected.spvasm index 84e6acaad7..8dd21f8e60 100644 --- a/test/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 56 +; Bound: 53 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -53,7 +51,7 @@ SKIP: FAILED %_ptr_Uniform_float = OpTypePointer Uniform %float %false = OpConstantFalse %bool %main_out = OpTypeStruct %v4float - %44 = OpTypeFunction %void %main_out + %41 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %12 %15 = OpLabel %GLF_live12c5 = OpVariable %_ptr_Function_bool Function %19 @@ -82,32 +80,22 @@ SKIP: FAILED %34 = OpLabel OpBranch %24 %25 = OpLabel - OpSelectionMerge %41 None - OpBranchConditional %false %42 %43 - %42 = OpLabel - OpBranch %41 - %43 = OpLabel - OpBranch %24 - %41 = OpLabel - OpBranch %23 + OpBranchConditional %false %23 %24 %24 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %44 +%tint_symbol_2 = OpFunction %void None %41 %tint_symbol = OpFunctionParameter %main_out - %48 = OpLabel - %49 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %49 + %45 = OpLabel + %46 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %46 OpReturn OpFunctionEnd %main = OpFunction %void None %12 - %51 = OpLabel - %52 = OpFunctionCall %void %main_1 - %54 = OpLoad %v4float %x_GLF_color - %55 = OpCompositeConstruct %main_out %54 - %53 = OpFunctionCall %void %tint_symbol_2 %55 + %48 = OpLabel + %49 = OpFunctionCall %void %main_1 + %51 = OpLoad %v4float %x_GLF_color + %52 = OpCompositeConstruct %main_out %51 + %50 = OpFunctionCall %void %tint_symbol_2 %52 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 25[%25] is not post dominated by the back-edge block 41[%41] - %41 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cosh-return-inf-unused/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cosh-return-inf-unused/0-opt.spvasm.expected.spvasm index e54f592971..94105cdaa6 100644 --- a/test/vk-gl-cts/graphicsfuzz/cosh-return-inf-unused/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cosh-return-inf-unused/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 164 +; Bound: 161 ; Schema: 0 OpCapability Shader %56 = OpExtInstImport "GLSL.std.450" @@ -80,9 +78,9 @@ SKIP: FAILED %_ptr_Uniform_float = OpTypePointer Uniform %float %int_65 = OpConstant %int 65 %int_10 = OpConstant %int 10 - %150 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %147 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 %main_out = OpTypeStruct %v4float - %151 = OpTypeFunction %void %main_out + %148 = OpTypeFunction %void %main_out %func_i1_ = OpFunction %float None %14 %b = OpFunctionParameter %_ptr_Function_int %19 = OpLabel @@ -243,45 +241,35 @@ SKIP: FAILED %139 = OpLoad %float %138 %140 = OpConvertFToS %int %139 %141 = OpSGreaterThan %bool %140 %int_1 - OpSelectionMerge %142 None - OpBranchConditional %141 %143 %144 - %143 = OpLabel - OpBranch %142 - %144 = OpLabel - OpBranch %94 - %142 = OpLabel - OpBranch %93 + OpBranchConditional %141 %93 %94 %94 = OpLabel - %145 = OpLoad %float %f - %146 = OpFOrdEqual %bool %145 %float_3 - OpSelectionMerge %147 None - OpBranchConditional %146 %148 %149 - %148 = OpLabel - OpStore %x_GLF_color %150 - OpBranch %147 - %149 = OpLabel + %142 = OpLoad %float %f + %143 = OpFOrdEqual %bool %142 %float_3 + OpSelectionMerge %144 None + OpBranchConditional %143 %145 %146 + %145 = OpLabel + OpStore %x_GLF_color %147 + OpBranch %144 + %146 = OpLabel OpStore %x_GLF_color %80 - OpBranch %147 - %147 = OpLabel + OpBranch %144 + %144 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %151 +%tint_symbol_3 = OpFunction %void None %148 %tint_symbol_1 = OpFunctionParameter %main_out - %155 = OpLabel - %156 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %156 + %152 = OpLabel + %153 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %153 OpReturn OpFunctionEnd %main = OpFunction %void None %82 - %158 = OpLabel - %159 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %159 - %160 = OpFunctionCall %void %main_1 - %162 = OpLoad %v4float %x_GLF_color - %163 = OpCompositeConstruct %main_out %162 - %161 = OpFunctionCall %void %tint_symbol_3 %163 + %155 = OpLabel + %156 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %156 + %157 = OpFunctionCall %void %main_1 + %159 = OpLoad %v4float %x_GLF_color + %160 = OpCompositeConstruct %main_out %159 + %158 = OpFunctionCall %void %tint_symbol_3 %160 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 95[%95] is not post dominated by the back-edge block 142[%142] - %142 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cosh-return-inf-unused/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cosh-return-inf-unused/0-opt.wgsl.expected.spvasm index e54f592971..94105cdaa6 100644 --- a/test/vk-gl-cts/graphicsfuzz/cosh-return-inf-unused/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cosh-return-inf-unused/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 164 +; Bound: 161 ; Schema: 0 OpCapability Shader %56 = OpExtInstImport "GLSL.std.450" @@ -80,9 +78,9 @@ SKIP: FAILED %_ptr_Uniform_float = OpTypePointer Uniform %float %int_65 = OpConstant %int 65 %int_10 = OpConstant %int 10 - %150 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %147 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 %main_out = OpTypeStruct %v4float - %151 = OpTypeFunction %void %main_out + %148 = OpTypeFunction %void %main_out %func_i1_ = OpFunction %float None %14 %b = OpFunctionParameter %_ptr_Function_int %19 = OpLabel @@ -243,45 +241,35 @@ SKIP: FAILED %139 = OpLoad %float %138 %140 = OpConvertFToS %int %139 %141 = OpSGreaterThan %bool %140 %int_1 - OpSelectionMerge %142 None - OpBranchConditional %141 %143 %144 - %143 = OpLabel - OpBranch %142 - %144 = OpLabel - OpBranch %94 - %142 = OpLabel - OpBranch %93 + OpBranchConditional %141 %93 %94 %94 = OpLabel - %145 = OpLoad %float %f - %146 = OpFOrdEqual %bool %145 %float_3 - OpSelectionMerge %147 None - OpBranchConditional %146 %148 %149 - %148 = OpLabel - OpStore %x_GLF_color %150 - OpBranch %147 - %149 = OpLabel + %142 = OpLoad %float %f + %143 = OpFOrdEqual %bool %142 %float_3 + OpSelectionMerge %144 None + OpBranchConditional %143 %145 %146 + %145 = OpLabel + OpStore %x_GLF_color %147 + OpBranch %144 + %146 = OpLabel OpStore %x_GLF_color %80 - OpBranch %147 - %147 = OpLabel + OpBranch %144 + %144 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %151 +%tint_symbol_3 = OpFunction %void None %148 %tint_symbol_1 = OpFunctionParameter %main_out - %155 = OpLabel - %156 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %156 + %152 = OpLabel + %153 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %153 OpReturn OpFunctionEnd %main = OpFunction %void None %82 - %158 = OpLabel - %159 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %159 - %160 = OpFunctionCall %void %main_1 - %162 = OpLoad %v4float %x_GLF_color - %163 = OpCompositeConstruct %main_out %162 - %161 = OpFunctionCall %void %tint_symbol_3 %163 + %155 = OpLabel + %156 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %156 + %157 = OpFunctionCall %void %main_1 + %159 = OpLoad %v4float %x_GLF_color + %160 = OpCompositeConstruct %main_out %159 + %158 = OpFunctionCall %void %tint_symbol_3 %160 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 95[%95] is not post dominated by the back-edge block 142[%142] - %142 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.spvasm.expected.spvasm index db432fcac2..e2c55510c2 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 324 +; Bound: 321 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -100,9 +98,9 @@ SKIP: FAILED %int_19 = OpConstant %int 19 %bool = OpTypeBool %_ptr_Function_bool = OpTypePointer Function %bool - %276 = OpConstantNull %bool + %273 = OpConstantNull %bool %main_out = OpTypeStruct %v4float - %312 = OpTypeFunction %void %main_out + %309 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %18 %21 = OpLabel %arr0 = OpVariable %_ptr_Function__arr_int_uint_10 Function %26 @@ -117,8 +115,8 @@ SKIP: FAILED %ref0 = OpVariable %_ptr_Function__arr_int_uint_10 Function %26 %ref1 = OpVariable %_ptr_Function__arr_int_uint_10 Function %26 %i = OpVariable %_ptr_Function_int Function %30 - %x_277 = OpVariable %_ptr_Function_bool Function %276 - %x_278_phi = OpVariable %_ptr_Function_bool Function %276 + %x_277 = OpVariable %_ptr_Function_bool Function %273 + %x_278_phi = OpVariable %_ptr_Function_bool Function %273 %43 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3 %44 = OpLoad %int %43 %46 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2 @@ -332,158 +330,148 @@ SKIP: FAILED %205 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3 %206 = OpLoad %int %205 %207 = OpIEqual %bool %204 %206 - OpSelectionMerge %208 None - OpBranchConditional %207 %209 %210 - %209 = OpLabel - OpBranch %208 - %210 = OpLabel - OpBranch %178 - %208 = OpLabel - OpBranch %177 + OpBranchConditional %207 %177 %178 %178 = OpLabel OpBranch %108 %108 = OpLabel - %211 = OpLoad %int %a - %212 = OpIAdd %int %211 %int_1 - OpStore %a %212 + %208 = OpLoad %int %a + %209 = OpIAdd %int %208 %int_1 + OpStore %a %209 OpBranch %106 %107 = OpLabel - %213 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_11 - %214 = OpLoad %int %213 - %215 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_12 - %216 = OpLoad %int %215 - %217 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_11 - %218 = OpLoad %int %217 - %219 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_5 - %220 = OpLoad %int %219 - %221 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_6 - %222 = OpLoad %int %221 - %223 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_7 - %224 = OpLoad %int %223 - %225 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_8 - %226 = OpLoad %int %225 - %227 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_9 - %228 = OpLoad %int %227 - %229 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0 - %230 = OpLoad %int %229 - %231 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_10 + %210 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_11 + %211 = OpLoad %int %210 + %212 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_12 + %213 = OpLoad %int %212 + %214 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_11 + %215 = OpLoad %int %214 + %216 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_5 + %217 = OpLoad %int %216 + %218 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_6 + %219 = OpLoad %int %218 + %220 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_7 + %221 = OpLoad %int %220 + %222 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_8 + %223 = OpLoad %int %222 + %224 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_9 + %225 = OpLoad %int %224 + %226 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0 + %227 = OpLoad %int %226 + %228 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_10 + %229 = OpLoad %int %228 + %230 = OpCompositeConstruct %_arr_int_uint_10 %211 %213 %215 %217 %219 %221 %223 %225 %227 %229 + OpStore %ref0 %230 + %231 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_11 %232 = OpLoad %int %231 - %233 = OpCompositeConstruct %_arr_int_uint_10 %214 %216 %218 %220 %222 %224 %226 %228 %230 %232 - OpStore %ref0 %233 - %234 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_11 - %235 = OpLoad %int %234 - %236 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_12 - %237 = OpLoad %int %236 - %238 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_11 - %239 = OpLoad %int %238 - %240 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_5 - %241 = OpLoad %int %240 - %242 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_6 - %243 = OpLoad %int %242 - %244 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_13 - %245 = OpLoad %int %244 - %246 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_14 - %247 = OpLoad %int %246 - %248 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_11 - %249 = OpLoad %int %248 - %250 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_18 - %251 = OpLoad %int %250 - %252 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_19 + %233 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_12 + %234 = OpLoad %int %233 + %235 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_11 + %236 = OpLoad %int %235 + %237 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_5 + %238 = OpLoad %int %237 + %239 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_6 + %240 = OpLoad %int %239 + %241 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_13 + %242 = OpLoad %int %241 + %243 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_14 + %244 = OpLoad %int %243 + %245 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_11 + %246 = OpLoad %int %245 + %247 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_18 + %248 = OpLoad %int %247 + %249 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_19 + %250 = OpLoad %int %249 + %251 = OpCompositeConstruct %_arr_int_uint_10 %232 %234 %236 %238 %240 %242 %244 %246 %248 %250 + OpStore %ref1 %251 + %252 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2 %253 = OpLoad %int %252 - %254 = OpCompositeConstruct %_arr_int_uint_10 %235 %237 %239 %241 %243 %245 %247 %249 %251 %253 - OpStore %ref1 %254 - %255 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2 - %256 = OpLoad %int %255 - %257 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3 - %258 = OpLoad %int %257 - %259 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3 - %260 = OpLoad %int %259 - %261 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2 - %262 = OpLoad %int %261 - %263 = OpConvertSToF %float %256 - %264 = OpConvertSToF %float %258 - %265 = OpConvertSToF %float %260 - %266 = OpConvertSToF %float %262 - %267 = OpCompositeConstruct %v4float %263 %264 %265 %266 - OpStore %x_GLF_color %267 - %268 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3 - %269 = OpLoad %int %268 - OpStore %i %269 + %254 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3 + %255 = OpLoad %int %254 + %256 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3 + %257 = OpLoad %int %256 + %258 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2 + %259 = OpLoad %int %258 + %260 = OpConvertSToF %float %253 + %261 = OpConvertSToF %float %255 + %262 = OpConvertSToF %float %257 + %263 = OpConvertSToF %float %259 + %264 = OpCompositeConstruct %v4float %260 %261 %262 %263 + OpStore %x_GLF_color %264 + %265 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3 + %266 = OpLoad %int %265 + OpStore %i %266 + OpBranch %267 + %267 = OpLabel + OpLoopMerge %268 %269 None OpBranch %270 %270 = OpLabel - OpLoopMerge %271 %272 None - OpBranch %273 - %273 = OpLabel - %278 = OpLoad %int %i - %279 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1 - %280 = OpLoad %int %279 - %281 = OpSLessThan %bool %278 %280 - OpSelectionMerge %282 None - OpBranchConditional %281 %283 %284 - %283 = OpLabel - OpBranch %282 - %284 = OpLabel - OpBranch %271 - %282 = OpLabel + %275 = OpLoad %int %i + %276 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1 + %277 = OpLoad %int %276 + %278 = OpSLessThan %bool %275 %277 + OpSelectionMerge %279 None + OpBranchConditional %278 %280 %281 + %280 = OpLabel + OpBranch %279 + %281 = OpLabel + OpBranch %268 + %279 = OpLabel + %282 = OpLoad %int %i + %283 = OpAccessChain %_ptr_Function_int %arr0 %282 + %284 = OpLoad %int %283 %285 = OpLoad %int %i - %286 = OpAccessChain %_ptr_Function_int %arr0 %285 + %286 = OpAccessChain %_ptr_Function_int %ref0 %285 %287 = OpLoad %int %286 - %288 = OpLoad %int %i - %289 = OpAccessChain %_ptr_Function_int %ref0 %288 - %290 = OpLoad %int %289 - %291 = OpINotEqual %bool %287 %290 - OpStore %x_278_phi %291 - %292 = OpLogicalNot %bool %291 - OpSelectionMerge %293 None - OpBranchConditional %292 %294 %293 - %294 = OpLabel + %288 = OpINotEqual %bool %284 %287 + OpStore %x_278_phi %288 + %289 = OpLogicalNot %bool %288 + OpSelectionMerge %290 None + OpBranchConditional %289 %291 %290 + %291 = OpLabel + %292 = OpLoad %int %i + %293 = OpAccessChain %_ptr_Function_int %arr1 %292 + %294 = OpLoad %int %293 %295 = OpLoad %int %i - %296 = OpAccessChain %_ptr_Function_int %arr1 %295 + %296 = OpAccessChain %_ptr_Function_int %ref1 %295 %297 = OpLoad %int %296 - %298 = OpLoad %int %i - %299 = OpAccessChain %_ptr_Function_int %ref1 %298 - %300 = OpLoad %int %299 - %301 = OpINotEqual %bool %297 %300 - OpStore %x_277 %301 - %302 = OpLoad %bool %x_277 - OpStore %x_278_phi %302 - OpBranch %293 - %293 = OpLabel - %303 = OpLoad %bool %x_278_phi - OpSelectionMerge %304 None - OpBranchConditional %303 %305 %304 - %305 = OpLabel - %306 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3 - %307 = OpLoad %int %306 - %308 = OpConvertSToF %float %307 - %309 = OpCompositeConstruct %v4float %308 %308 %308 %308 - OpStore %x_GLF_color %309 - OpBranch %304 - %304 = OpLabel - OpBranch %272 - %272 = OpLabel - %310 = OpLoad %int %i - %311 = OpIAdd %int %310 %int_1 - OpStore %i %311 - OpBranch %270 - %271 = OpLabel + %298 = OpINotEqual %bool %294 %297 + OpStore %x_277 %298 + %299 = OpLoad %bool %x_277 + OpStore %x_278_phi %299 + OpBranch %290 + %290 = OpLabel + %300 = OpLoad %bool %x_278_phi + OpSelectionMerge %301 None + OpBranchConditional %300 %302 %301 + %302 = OpLabel + %303 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3 + %304 = OpLoad %int %303 + %305 = OpConvertSToF %float %304 + %306 = OpCompositeConstruct %v4float %305 %305 %305 %305 + OpStore %x_GLF_color %306 + OpBranch %301 + %301 = OpLabel + OpBranch %269 + %269 = OpLabel + %307 = OpLoad %int %i + %308 = OpIAdd %int %307 %int_1 + OpStore %i %308 + OpBranch %267 + %268 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %312 +%tint_symbol_2 = OpFunction %void None %309 %tint_symbol = OpFunctionParameter %main_out - %316 = OpLabel - %317 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %317 + %313 = OpLabel + %314 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %314 OpReturn OpFunctionEnd %main = OpFunction %void None %18 - %319 = OpLabel - %320 = OpFunctionCall %void %main_1 - %322 = OpLoad %v4float %x_GLF_color - %323 = OpCompositeConstruct %main_out %322 - %321 = OpFunctionCall %void %tint_symbol_2 %323 + %316 = OpLabel + %317 = OpFunctionCall %void %main_1 + %319 = OpLoad %v4float %x_GLF_color + %320 = OpCompositeConstruct %main_out %319 + %318 = OpFunctionCall %void %tint_symbol_2 %320 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 179[%179] is not post dominated by the back-edge block 208[%208] - %208 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.wgsl.expected.spvasm index db432fcac2..e2c55510c2 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 324 +; Bound: 321 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -100,9 +98,9 @@ SKIP: FAILED %int_19 = OpConstant %int 19 %bool = OpTypeBool %_ptr_Function_bool = OpTypePointer Function %bool - %276 = OpConstantNull %bool + %273 = OpConstantNull %bool %main_out = OpTypeStruct %v4float - %312 = OpTypeFunction %void %main_out + %309 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %18 %21 = OpLabel %arr0 = OpVariable %_ptr_Function__arr_int_uint_10 Function %26 @@ -117,8 +115,8 @@ SKIP: FAILED %ref0 = OpVariable %_ptr_Function__arr_int_uint_10 Function %26 %ref1 = OpVariable %_ptr_Function__arr_int_uint_10 Function %26 %i = OpVariable %_ptr_Function_int Function %30 - %x_277 = OpVariable %_ptr_Function_bool Function %276 - %x_278_phi = OpVariable %_ptr_Function_bool Function %276 + %x_277 = OpVariable %_ptr_Function_bool Function %273 + %x_278_phi = OpVariable %_ptr_Function_bool Function %273 %43 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3 %44 = OpLoad %int %43 %46 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2 @@ -332,158 +330,148 @@ SKIP: FAILED %205 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3 %206 = OpLoad %int %205 %207 = OpIEqual %bool %204 %206 - OpSelectionMerge %208 None - OpBranchConditional %207 %209 %210 - %209 = OpLabel - OpBranch %208 - %210 = OpLabel - OpBranch %178 - %208 = OpLabel - OpBranch %177 + OpBranchConditional %207 %177 %178 %178 = OpLabel OpBranch %108 %108 = OpLabel - %211 = OpLoad %int %a - %212 = OpIAdd %int %211 %int_1 - OpStore %a %212 + %208 = OpLoad %int %a + %209 = OpIAdd %int %208 %int_1 + OpStore %a %209 OpBranch %106 %107 = OpLabel - %213 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_11 - %214 = OpLoad %int %213 - %215 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_12 - %216 = OpLoad %int %215 - %217 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_11 - %218 = OpLoad %int %217 - %219 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_5 - %220 = OpLoad %int %219 - %221 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_6 - %222 = OpLoad %int %221 - %223 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_7 - %224 = OpLoad %int %223 - %225 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_8 - %226 = OpLoad %int %225 - %227 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_9 - %228 = OpLoad %int %227 - %229 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0 - %230 = OpLoad %int %229 - %231 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_10 + %210 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_11 + %211 = OpLoad %int %210 + %212 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_12 + %213 = OpLoad %int %212 + %214 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_11 + %215 = OpLoad %int %214 + %216 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_5 + %217 = OpLoad %int %216 + %218 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_6 + %219 = OpLoad %int %218 + %220 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_7 + %221 = OpLoad %int %220 + %222 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_8 + %223 = OpLoad %int %222 + %224 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_9 + %225 = OpLoad %int %224 + %226 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0 + %227 = OpLoad %int %226 + %228 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_10 + %229 = OpLoad %int %228 + %230 = OpCompositeConstruct %_arr_int_uint_10 %211 %213 %215 %217 %219 %221 %223 %225 %227 %229 + OpStore %ref0 %230 + %231 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_11 %232 = OpLoad %int %231 - %233 = OpCompositeConstruct %_arr_int_uint_10 %214 %216 %218 %220 %222 %224 %226 %228 %230 %232 - OpStore %ref0 %233 - %234 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_11 - %235 = OpLoad %int %234 - %236 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_12 - %237 = OpLoad %int %236 - %238 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_11 - %239 = OpLoad %int %238 - %240 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_5 - %241 = OpLoad %int %240 - %242 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_6 - %243 = OpLoad %int %242 - %244 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_13 - %245 = OpLoad %int %244 - %246 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_14 - %247 = OpLoad %int %246 - %248 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_11 - %249 = OpLoad %int %248 - %250 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_18 - %251 = OpLoad %int %250 - %252 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_19 + %233 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_12 + %234 = OpLoad %int %233 + %235 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_11 + %236 = OpLoad %int %235 + %237 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_5 + %238 = OpLoad %int %237 + %239 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_6 + %240 = OpLoad %int %239 + %241 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_13 + %242 = OpLoad %int %241 + %243 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_14 + %244 = OpLoad %int %243 + %245 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_11 + %246 = OpLoad %int %245 + %247 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_18 + %248 = OpLoad %int %247 + %249 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_19 + %250 = OpLoad %int %249 + %251 = OpCompositeConstruct %_arr_int_uint_10 %232 %234 %236 %238 %240 %242 %244 %246 %248 %250 + OpStore %ref1 %251 + %252 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2 %253 = OpLoad %int %252 - %254 = OpCompositeConstruct %_arr_int_uint_10 %235 %237 %239 %241 %243 %245 %247 %249 %251 %253 - OpStore %ref1 %254 - %255 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2 - %256 = OpLoad %int %255 - %257 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3 - %258 = OpLoad %int %257 - %259 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3 - %260 = OpLoad %int %259 - %261 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2 - %262 = OpLoad %int %261 - %263 = OpConvertSToF %float %256 - %264 = OpConvertSToF %float %258 - %265 = OpConvertSToF %float %260 - %266 = OpConvertSToF %float %262 - %267 = OpCompositeConstruct %v4float %263 %264 %265 %266 - OpStore %x_GLF_color %267 - %268 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3 - %269 = OpLoad %int %268 - OpStore %i %269 + %254 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3 + %255 = OpLoad %int %254 + %256 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3 + %257 = OpLoad %int %256 + %258 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2 + %259 = OpLoad %int %258 + %260 = OpConvertSToF %float %253 + %261 = OpConvertSToF %float %255 + %262 = OpConvertSToF %float %257 + %263 = OpConvertSToF %float %259 + %264 = OpCompositeConstruct %v4float %260 %261 %262 %263 + OpStore %x_GLF_color %264 + %265 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3 + %266 = OpLoad %int %265 + OpStore %i %266 + OpBranch %267 + %267 = OpLabel + OpLoopMerge %268 %269 None OpBranch %270 %270 = OpLabel - OpLoopMerge %271 %272 None - OpBranch %273 - %273 = OpLabel - %278 = OpLoad %int %i - %279 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1 - %280 = OpLoad %int %279 - %281 = OpSLessThan %bool %278 %280 - OpSelectionMerge %282 None - OpBranchConditional %281 %283 %284 - %283 = OpLabel - OpBranch %282 - %284 = OpLabel - OpBranch %271 - %282 = OpLabel + %275 = OpLoad %int %i + %276 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1 + %277 = OpLoad %int %276 + %278 = OpSLessThan %bool %275 %277 + OpSelectionMerge %279 None + OpBranchConditional %278 %280 %281 + %280 = OpLabel + OpBranch %279 + %281 = OpLabel + OpBranch %268 + %279 = OpLabel + %282 = OpLoad %int %i + %283 = OpAccessChain %_ptr_Function_int %arr0 %282 + %284 = OpLoad %int %283 %285 = OpLoad %int %i - %286 = OpAccessChain %_ptr_Function_int %arr0 %285 + %286 = OpAccessChain %_ptr_Function_int %ref0 %285 %287 = OpLoad %int %286 - %288 = OpLoad %int %i - %289 = OpAccessChain %_ptr_Function_int %ref0 %288 - %290 = OpLoad %int %289 - %291 = OpINotEqual %bool %287 %290 - OpStore %x_278_phi %291 - %292 = OpLogicalNot %bool %291 - OpSelectionMerge %293 None - OpBranchConditional %292 %294 %293 - %294 = OpLabel + %288 = OpINotEqual %bool %284 %287 + OpStore %x_278_phi %288 + %289 = OpLogicalNot %bool %288 + OpSelectionMerge %290 None + OpBranchConditional %289 %291 %290 + %291 = OpLabel + %292 = OpLoad %int %i + %293 = OpAccessChain %_ptr_Function_int %arr1 %292 + %294 = OpLoad %int %293 %295 = OpLoad %int %i - %296 = OpAccessChain %_ptr_Function_int %arr1 %295 + %296 = OpAccessChain %_ptr_Function_int %ref1 %295 %297 = OpLoad %int %296 - %298 = OpLoad %int %i - %299 = OpAccessChain %_ptr_Function_int %ref1 %298 - %300 = OpLoad %int %299 - %301 = OpINotEqual %bool %297 %300 - OpStore %x_277 %301 - %302 = OpLoad %bool %x_277 - OpStore %x_278_phi %302 - OpBranch %293 - %293 = OpLabel - %303 = OpLoad %bool %x_278_phi - OpSelectionMerge %304 None - OpBranchConditional %303 %305 %304 - %305 = OpLabel - %306 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3 - %307 = OpLoad %int %306 - %308 = OpConvertSToF %float %307 - %309 = OpCompositeConstruct %v4float %308 %308 %308 %308 - OpStore %x_GLF_color %309 - OpBranch %304 - %304 = OpLabel - OpBranch %272 - %272 = OpLabel - %310 = OpLoad %int %i - %311 = OpIAdd %int %310 %int_1 - OpStore %i %311 - OpBranch %270 - %271 = OpLabel + %298 = OpINotEqual %bool %294 %297 + OpStore %x_277 %298 + %299 = OpLoad %bool %x_277 + OpStore %x_278_phi %299 + OpBranch %290 + %290 = OpLabel + %300 = OpLoad %bool %x_278_phi + OpSelectionMerge %301 None + OpBranchConditional %300 %302 %301 + %302 = OpLabel + %303 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3 + %304 = OpLoad %int %303 + %305 = OpConvertSToF %float %304 + %306 = OpCompositeConstruct %v4float %305 %305 %305 %305 + OpStore %x_GLF_color %306 + OpBranch %301 + %301 = OpLabel + OpBranch %269 + %269 = OpLabel + %307 = OpLoad %int %i + %308 = OpIAdd %int %307 %int_1 + OpStore %i %308 + OpBranch %267 + %268 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %312 +%tint_symbol_2 = OpFunction %void None %309 %tint_symbol = OpFunctionParameter %main_out - %316 = OpLabel - %317 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %317 + %313 = OpLabel + %314 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %314 OpReturn OpFunctionEnd %main = OpFunction %void None %18 - %319 = OpLabel - %320 = OpFunctionCall %void %main_1 - %322 = OpLoad %v4float %x_GLF_color - %323 = OpCompositeConstruct %main_out %322 - %321 = OpFunctionCall %void %tint_symbol_2 %323 + %316 = OpLabel + %317 = OpFunctionCall %void %main_1 + %319 = OpLoad %v4float %x_GLF_color + %320 = OpCompositeConstruct %main_out %319 + %318 = OpFunctionCall %void %tint_symbol_2 %320 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 179[%179] is not post dominated by the back-edge block 208[%208] - %208 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.spvasm.expected.spvasm index dde7eba97d..fba9af9ee7 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 168 +; Bound: 162 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -62,7 +60,7 @@ SKIP: FAILED %float_n1 = OpConstant %float -1 %uint_1 = OpConstant %uint 1 %main_out = OpTypeStruct %v4float - %155 = OpTypeFunction %void %main_out + %149 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %11 %14 = OpLabel %c = OpVariable %_ptr_Function_v4float Function %5 @@ -274,50 +272,33 @@ SKIP: FAILED %140 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0 %141 = OpLoad %float %140 %143 = OpFOrdLessThan %bool %141 %float_n1 - OpSelectionMerge %144 None - OpBranchConditional %143 %145 %146 - %145 = OpLabel - OpBranch %144 - %146 = OpLabel - OpBranch %38 - %144 = OpLabel - OpBranch %37 + OpBranchConditional %143 %37 %38 %38 = OpLabel OpBranch %35 %35 = OpLabel - %148 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %149 = OpLoad %float %148 - %150 = OpFOrdLessThan %bool %149 %float_n1 - OpSelectionMerge %151 None - OpBranchConditional %150 %152 %153 - %152 = OpLabel - OpBranch %151 - %153 = OpLabel - OpBranch %34 - %151 = OpLabel - OpBranch %33 + %145 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %146 = OpLoad %float %145 + %147 = OpFOrdLessThan %bool %146 %float_n1 + OpBranchConditional %147 %33 %34 %34 = OpLabel - %154 = OpLoad %v4float %c - OpStore %x_GLF_color %154 + %148 = OpLoad %v4float %c + OpStore %x_GLF_color %148 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %155 +%tint_symbol_3 = OpFunction %void None %149 %tint_symbol_1 = OpFunctionParameter %main_out - %159 = OpLabel - %160 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %160 + %153 = OpLabel + %154 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %154 OpReturn OpFunctionEnd %main = OpFunction %void None %11 - %162 = OpLabel - %163 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %163 - %164 = OpFunctionCall %void %main_1 - %166 = OpLoad %v4float %x_GLF_color - %167 = OpCompositeConstruct %main_out %166 - %165 = OpFunctionCall %void %tint_symbol_3 %167 + %156 = OpLabel + %157 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %157 + %158 = OpFunctionCall %void %main_1 + %160 = OpLoad %v4float %x_GLF_color + %161 = OpCompositeConstruct %main_out %160 + %159 = OpFunctionCall %void %tint_symbol_3 %161 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 35[%35] is not post dominated by the back-edge block 151[%151] - %151 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.wgsl.expected.spvasm index dde7eba97d..fba9af9ee7 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 168 +; Bound: 162 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -62,7 +60,7 @@ SKIP: FAILED %float_n1 = OpConstant %float -1 %uint_1 = OpConstant %uint 1 %main_out = OpTypeStruct %v4float - %155 = OpTypeFunction %void %main_out + %149 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %11 %14 = OpLabel %c = OpVariable %_ptr_Function_v4float Function %5 @@ -274,50 +272,33 @@ SKIP: FAILED %140 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0 %141 = OpLoad %float %140 %143 = OpFOrdLessThan %bool %141 %float_n1 - OpSelectionMerge %144 None - OpBranchConditional %143 %145 %146 - %145 = OpLabel - OpBranch %144 - %146 = OpLabel - OpBranch %38 - %144 = OpLabel - OpBranch %37 + OpBranchConditional %143 %37 %38 %38 = OpLabel OpBranch %35 %35 = OpLabel - %148 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %149 = OpLoad %float %148 - %150 = OpFOrdLessThan %bool %149 %float_n1 - OpSelectionMerge %151 None - OpBranchConditional %150 %152 %153 - %152 = OpLabel - OpBranch %151 - %153 = OpLabel - OpBranch %34 - %151 = OpLabel - OpBranch %33 + %145 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %146 = OpLoad %float %145 + %147 = OpFOrdLessThan %bool %146 %float_n1 + OpBranchConditional %147 %33 %34 %34 = OpLabel - %154 = OpLoad %v4float %c - OpStore %x_GLF_color %154 + %148 = OpLoad %v4float %c + OpStore %x_GLF_color %148 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %155 +%tint_symbol_3 = OpFunction %void None %149 %tint_symbol_1 = OpFunctionParameter %main_out - %159 = OpLabel - %160 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %160 + %153 = OpLabel + %154 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %154 OpReturn OpFunctionEnd %main = OpFunction %void None %11 - %162 = OpLabel - %163 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %163 - %164 = OpFunctionCall %void %main_1 - %166 = OpLoad %v4float %x_GLF_color - %167 = OpCompositeConstruct %main_out %166 - %165 = OpFunctionCall %void %tint_symbol_3 %167 + %156 = OpLabel + %157 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %157 + %158 = OpFunctionCall %void %main_1 + %160 = OpLoad %v4float %x_GLF_color + %161 = OpCompositeConstruct %main_out %160 + %159 = OpFunctionCall %void %tint_symbol_3 %161 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 35[%35] is not post dominated by the back-edge block 151[%151] - %151 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.spvasm.expected.spvasm index 4c0d3dcee5..373c260e8c 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 87 +; Bound: 84 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -64,7 +62,7 @@ SKIP: FAILED %int_3 = OpConstant %int 3 %false = OpConstantFalse %bool %main_out = OpTypeStruct %v4float - %75 = OpTypeFunction %void %main_out + %72 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %18 %21 = OpLabel %25 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_0 @@ -118,37 +116,27 @@ SKIP: FAILED %65 = OpLabel OpReturn %41 = OpLabel - OpSelectionMerge %68 None - OpBranchConditional %false %69 %70 - %69 = OpLabel - OpBranch %68 - %70 = OpLabel - OpBranch %40 - %68 = OpLabel - OpBranch %39 + OpBranchConditional %false %39 %40 %40 = OpLabel - %71 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_1 - %72 = OpLoad %int %71 - %73 = OpConvertSToF %float %72 - %74 = OpCompositeConstruct %v4float %73 %73 %73 %73 - OpStore %x_GLF_color %74 + %68 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_1 + %69 = OpLoad %int %68 + %70 = OpConvertSToF %float %69 + %71 = OpCompositeConstruct %v4float %70 %70 %70 %70 + OpStore %x_GLF_color %71 OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %75 +%tint_symbol_2 = OpFunction %void None %72 %tint_symbol = OpFunctionParameter %main_out - %79 = OpLabel - %80 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %80 + %76 = OpLabel + %77 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %77 OpReturn OpFunctionEnd %main = OpFunction %void None %18 - %82 = OpLabel - %83 = OpFunctionCall %void %main_1 - %85 = OpLoad %v4float %x_GLF_color - %86 = OpCompositeConstruct %main_out %85 - %84 = OpFunctionCall %void %tint_symbol_2 %86 + %79 = OpLabel + %80 = OpFunctionCall %void %main_1 + %82 = OpLoad %v4float %x_GLF_color + %83 = OpCompositeConstruct %main_out %82 + %81 = OpFunctionCall %void %tint_symbol_2 %83 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 41[%41] is not post dominated by the back-edge block 68[%68] - %68 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.wgsl.expected.spvasm index 4c0d3dcee5..373c260e8c 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 87 +; Bound: 84 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -64,7 +62,7 @@ SKIP: FAILED %int_3 = OpConstant %int 3 %false = OpConstantFalse %bool %main_out = OpTypeStruct %v4float - %75 = OpTypeFunction %void %main_out + %72 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %18 %21 = OpLabel %25 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_0 @@ -118,37 +116,27 @@ SKIP: FAILED %65 = OpLabel OpReturn %41 = OpLabel - OpSelectionMerge %68 None - OpBranchConditional %false %69 %70 - %69 = OpLabel - OpBranch %68 - %70 = OpLabel - OpBranch %40 - %68 = OpLabel - OpBranch %39 + OpBranchConditional %false %39 %40 %40 = OpLabel - %71 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_1 - %72 = OpLoad %int %71 - %73 = OpConvertSToF %float %72 - %74 = OpCompositeConstruct %v4float %73 %73 %73 %73 - OpStore %x_GLF_color %74 + %68 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_1 + %69 = OpLoad %int %68 + %70 = OpConvertSToF %float %69 + %71 = OpCompositeConstruct %v4float %70 %70 %70 %70 + OpStore %x_GLF_color %71 OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %75 +%tint_symbol_2 = OpFunction %void None %72 %tint_symbol = OpFunctionParameter %main_out - %79 = OpLabel - %80 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %80 + %76 = OpLabel + %77 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %77 OpReturn OpFunctionEnd %main = OpFunction %void None %18 - %82 = OpLabel - %83 = OpFunctionCall %void %main_1 - %85 = OpLoad %v4float %x_GLF_color - %86 = OpCompositeConstruct %main_out %85 - %84 = OpFunctionCall %void %tint_symbol_2 %86 + %79 = OpLabel + %80 = OpFunctionCall %void %main_1 + %82 = OpLoad %v4float %x_GLF_color + %83 = OpCompositeConstruct %main_out %82 + %81 = OpFunctionCall %void %tint_symbol_2 %83 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 41[%41] is not post dominated by the back-edge block 68[%68] - %68 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.spvasm.expected.spvasm index 597775c584..594fd2e7e1 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 120 +; Bound: 117 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -63,7 +61,7 @@ SKIP: FAILED %float_1 = OpConstant %float 1 %float_0 = OpConstant %float 0 %66 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 - %81 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 + %78 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %float_2 = OpConstant %float 2 @@ -71,7 +69,7 @@ SKIP: FAILED %uint_3 = OpConstant %uint 3 %_ptr_Private_float = OpTypePointer Private %float %main_out = OpTypeStruct %v4float - %108 = OpTypeFunction %void %main_out + %105 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %11 %14 = OpLabel %f = OpVariable %_ptr_Function_float Function %17 @@ -135,65 +133,55 @@ SKIP: FAILED %70 = OpBitwiseOr %int %68 %69 %71 = OpBitwiseAnd %int %67 %70 %72 = OpIEqual %bool %71 %int_0 - OpSelectionMerge %73 None - OpBranchConditional %72 %74 %75 - %74 = OpLabel - OpBranch %73 - %75 = OpLabel - OpBranch %62 - %73 = OpLabel - OpBranch %61 + OpBranchConditional %72 %61 %62 %62 = OpLabel - %76 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 - %77 = OpLoad %float %76 - %78 = OpFOrdEqual %bool %77 %float_1 - OpSelectionMerge %79 None - OpBranchConditional %78 %80 %79 - %80 = OpLabel - OpStore %x_GLF_color %81 - OpBranch %79 - %79 = OpLabel + %73 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 + %74 = OpLoad %float %73 + %75 = OpFOrdEqual %bool %74 %float_1 + OpSelectionMerge %76 None + OpBranchConditional %75 %77 %76 + %77 = OpLabel + OpStore %x_GLF_color %78 + OpBranch %76 + %76 = OpLabel OpBranch %59 %59 = OpLabel - %82 = OpAccessChain %_ptr_Function_float %v %uint_0 + %79 = OpAccessChain %_ptr_Function_float %v %uint_0 + %80 = OpLoad %float %79 + %82 = OpAccessChain %_ptr_Function_float %v %uint_1 %83 = OpLoad %float %82 - %85 = OpAccessChain %_ptr_Function_float %v %uint_1 + %85 = OpAccessChain %_ptr_Function_float %v %uint_2 %86 = OpLoad %float %85 - %88 = OpAccessChain %_ptr_Function_float %v %uint_2 - %89 = OpLoad %float %88 - %91 = OpFOrdEqual %bool %83 %float_1 - %90 = OpSelect %float %91 %float_1 %float_0 - %94 = OpFOrdEqual %bool %86 %float_2 + %88 = OpFOrdEqual %bool %80 %float_1 + %87 = OpSelect %float %88 %float_1 %float_0 + %91 = OpFOrdEqual %bool %83 %float_2 + %89 = OpSelect %float %91 %float_0 %float_1 + %94 = OpFOrdEqual %bool %86 %float_3 %92 = OpSelect %float %94 %float_0 %float_1 - %97 = OpFOrdEqual %bool %89 %float_3 - %95 = OpSelect %float %97 %float_0 %float_1 - %98 = OpCompositeConstruct %v3float %90 %92 %95 - %99 = OpLoad %v4float %x_GLF_color - %100 = OpCompositeExtract %float %98 0 - %101 = OpCompositeExtract %float %98 1 - %102 = OpCompositeExtract %float %98 2 - %103 = OpCompositeExtract %float %99 3 - %104 = OpCompositeConstruct %v4float %100 %101 %102 %103 - OpStore %x_GLF_color %104 - %107 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_3 - OpStore %107 %float_1 + %95 = OpCompositeConstruct %v3float %87 %89 %92 + %96 = OpLoad %v4float %x_GLF_color + %97 = OpCompositeExtract %float %95 0 + %98 = OpCompositeExtract %float %95 1 + %99 = OpCompositeExtract %float %95 2 + %100 = OpCompositeExtract %float %96 3 + %101 = OpCompositeConstruct %v4float %97 %98 %99 %100 + OpStore %x_GLF_color %101 + %104 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_3 + OpStore %104 %float_1 OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %108 +%tint_symbol_2 = OpFunction %void None %105 %tint_symbol = OpFunctionParameter %main_out - %112 = OpLabel - %113 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %113 + %109 = OpLabel + %110 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %110 OpReturn OpFunctionEnd %main = OpFunction %void None %11 - %115 = OpLabel - %116 = OpFunctionCall %void %main_1 - %118 = OpLoad %v4float %x_GLF_color - %119 = OpCompositeConstruct %main_out %118 - %117 = OpFunctionCall %void %tint_symbol_2 %119 + %112 = OpLabel + %113 = OpFunctionCall %void %main_1 + %115 = OpLoad %v4float %x_GLF_color + %116 = OpCompositeConstruct %main_out %115 + %114 = OpFunctionCall %void %tint_symbol_2 %116 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 63[%63] is not post dominated by the back-edge block 73[%73] - %73 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.wgsl.expected.spvasm index 597775c584..594fd2e7e1 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 120 +; Bound: 117 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -63,7 +61,7 @@ SKIP: FAILED %float_1 = OpConstant %float 1 %float_0 = OpConstant %float 0 %66 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 - %81 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 + %78 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %float_2 = OpConstant %float 2 @@ -71,7 +69,7 @@ SKIP: FAILED %uint_3 = OpConstant %uint 3 %_ptr_Private_float = OpTypePointer Private %float %main_out = OpTypeStruct %v4float - %108 = OpTypeFunction %void %main_out + %105 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %11 %14 = OpLabel %f = OpVariable %_ptr_Function_float Function %17 @@ -135,65 +133,55 @@ SKIP: FAILED %70 = OpBitwiseOr %int %68 %69 %71 = OpBitwiseAnd %int %67 %70 %72 = OpIEqual %bool %71 %int_0 - OpSelectionMerge %73 None - OpBranchConditional %72 %74 %75 - %74 = OpLabel - OpBranch %73 - %75 = OpLabel - OpBranch %62 - %73 = OpLabel - OpBranch %61 + OpBranchConditional %72 %61 %62 %62 = OpLabel - %76 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 - %77 = OpLoad %float %76 - %78 = OpFOrdEqual %bool %77 %float_1 - OpSelectionMerge %79 None - OpBranchConditional %78 %80 %79 - %80 = OpLabel - OpStore %x_GLF_color %81 - OpBranch %79 - %79 = OpLabel + %73 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 + %74 = OpLoad %float %73 + %75 = OpFOrdEqual %bool %74 %float_1 + OpSelectionMerge %76 None + OpBranchConditional %75 %77 %76 + %77 = OpLabel + OpStore %x_GLF_color %78 + OpBranch %76 + %76 = OpLabel OpBranch %59 %59 = OpLabel - %82 = OpAccessChain %_ptr_Function_float %v %uint_0 + %79 = OpAccessChain %_ptr_Function_float %v %uint_0 + %80 = OpLoad %float %79 + %82 = OpAccessChain %_ptr_Function_float %v %uint_1 %83 = OpLoad %float %82 - %85 = OpAccessChain %_ptr_Function_float %v %uint_1 + %85 = OpAccessChain %_ptr_Function_float %v %uint_2 %86 = OpLoad %float %85 - %88 = OpAccessChain %_ptr_Function_float %v %uint_2 - %89 = OpLoad %float %88 - %91 = OpFOrdEqual %bool %83 %float_1 - %90 = OpSelect %float %91 %float_1 %float_0 - %94 = OpFOrdEqual %bool %86 %float_2 + %88 = OpFOrdEqual %bool %80 %float_1 + %87 = OpSelect %float %88 %float_1 %float_0 + %91 = OpFOrdEqual %bool %83 %float_2 + %89 = OpSelect %float %91 %float_0 %float_1 + %94 = OpFOrdEqual %bool %86 %float_3 %92 = OpSelect %float %94 %float_0 %float_1 - %97 = OpFOrdEqual %bool %89 %float_3 - %95 = OpSelect %float %97 %float_0 %float_1 - %98 = OpCompositeConstruct %v3float %90 %92 %95 - %99 = OpLoad %v4float %x_GLF_color - %100 = OpCompositeExtract %float %98 0 - %101 = OpCompositeExtract %float %98 1 - %102 = OpCompositeExtract %float %98 2 - %103 = OpCompositeExtract %float %99 3 - %104 = OpCompositeConstruct %v4float %100 %101 %102 %103 - OpStore %x_GLF_color %104 - %107 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_3 - OpStore %107 %float_1 + %95 = OpCompositeConstruct %v3float %87 %89 %92 + %96 = OpLoad %v4float %x_GLF_color + %97 = OpCompositeExtract %float %95 0 + %98 = OpCompositeExtract %float %95 1 + %99 = OpCompositeExtract %float %95 2 + %100 = OpCompositeExtract %float %96 3 + %101 = OpCompositeConstruct %v4float %97 %98 %99 %100 + OpStore %x_GLF_color %101 + %104 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_3 + OpStore %104 %float_1 OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %108 +%tint_symbol_2 = OpFunction %void None %105 %tint_symbol = OpFunctionParameter %main_out - %112 = OpLabel - %113 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %113 + %109 = OpLabel + %110 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %110 OpReturn OpFunctionEnd %main = OpFunction %void None %11 - %115 = OpLabel - %116 = OpFunctionCall %void %main_1 - %118 = OpLoad %v4float %x_GLF_color - %119 = OpCompositeConstruct %main_out %118 - %117 = OpFunctionCall %void %tint_symbol_2 %119 + %112 = OpLabel + %113 = OpFunctionCall %void %main_1 + %115 = OpLoad %v4float %x_GLF_color + %116 = OpCompositeConstruct %main_out %115 + %114 = OpFunctionCall %void %tint_symbol_2 %116 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 63[%63] is not post dominated by the back-edge block 73[%73] - %73 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-dead-branch-func-return-arg/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-dead-branch-func-return-arg/0-opt.spvasm.expected.spvasm index 278320df45..90974abf3f 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-dead-branch-func-return-arg/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-dead-branch-func-return-arg/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 156 +; Bound: 147 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -56,11 +54,11 @@ SKIP: FAILED %float_1 = OpConstant %float 1 %float_6 = OpConstant %float 6 %float_5 = OpConstant %float 5 - %105 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 - %106 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 + %99 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %100 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 %main_out = OpTypeStruct %v4float - %107 = OpTypeFunction %void %main_out - %119 = OpTypeFunction %float %_ptr_Function_float + %101 = OpTypeFunction %void %main_out + %113 = OpTypeFunction %float %_ptr_Function_float %main_1 = OpFunction %void None %8 %11 = OpLabel %x_29 = OpVariable %_ptr_Function_bool Function %16 @@ -118,191 +116,167 @@ SKIP: FAILED %55 = OpLoad %float %x_35 %56 = OpLoad %float %param %57 = OpFOrdLessThan %bool %55 %56 - OpSelectionMerge %58 None - OpBranchConditional %57 %59 %60 - %59 = OpLabel - OpBranch %58 - %60 = OpLabel - OpBranch %42 - %58 = OpLabel - OpBranch %41 + OpBranchConditional %57 %41 %42 %42 = OpLabel - %61 = OpLoad %bool %x_33 - OpSelectionMerge %62 None - OpBranchConditional %61 %63 %62 - %63 = OpLabel + %58 = OpLoad %bool %x_33 + OpSelectionMerge %59 None + OpBranchConditional %58 %60 %59 + %60 = OpLabel OpBranch %37 - %62 = OpLabel + %59 = OpLabel OpStore %x_33 %true OpStore %x_34 %float_0 OpBranch %37 %38 = OpLabel OpBranch %36 %37 = OpLabel - %64 = OpLoad %float %x_34 - OpStore %x_36 %64 - OpStore %f %64 + %61 = OpLoad %float %x_34 + OpStore %x_36 %61 + OpStore %f %61 OpStore %param_1 %float_1 OpStore %x_29 %false + OpBranch %62 + %62 = OpLabel + OpLoopMerge %63 %64 None OpBranch %65 %65 = OpLabel - OpLoopMerge %66 %67 None - OpBranch %68 - %68 = OpLabel - %69 = OpLoad %float %param_1 - OpStore %x_31 %69 + %66 = OpLoad %float %param_1 + OpStore %x_31 %66 + OpBranch %67 + %67 = OpLabel + OpLoopMerge %68 %69 None OpBranch %70 %70 = OpLabel - OpLoopMerge %71 %72 None - OpBranch %73 - %73 = OpLabel - %74 = OpLoad %float %x_31 - %75 = OpLoad %float %param_1 - %76 = OpFOrdEqual %bool %74 %75 - OpSelectionMerge %77 None - OpBranchConditional %76 %78 %77 - %78 = OpLabel - %79 = OpLoad %float %x_31 + %71 = OpLoad %float %x_31 + %72 = OpLoad %float %param_1 + %73 = OpFOrdEqual %bool %71 %72 + OpSelectionMerge %74 None + OpBranchConditional %73 %75 %74 + %75 = OpLabel + %76 = OpLoad %float %x_31 OpStore %x_29 %true - OpStore %x_30 %79 - OpBranch %71 - %77 = OpLabel - %80 = OpLoad %float %x_31 - %81 = OpFAdd %float %80 %float_1 - OpStore %x_31 %81 - OpBranch %72 - %72 = OpLabel - %82 = OpLoad %float %x_31 - %83 = OpLoad %float %param_1 - %84 = OpFOrdLessThan %bool %82 %83 - OpSelectionMerge %85 None - OpBranchConditional %84 %86 %87 - %86 = OpLabel - OpBranch %85 - %87 = OpLabel - OpBranch %71 - %85 = OpLabel - OpBranch %70 - %71 = OpLabel - %88 = OpLoad %bool %x_29 - OpSelectionMerge %89 None - OpBranchConditional %88 %90 %89 - %90 = OpLabel - OpBranch %66 - %89 = OpLabel + OpStore %x_30 %76 + OpBranch %68 + %74 = OpLabel + %77 = OpLoad %float %x_31 + %78 = OpFAdd %float %77 %float_1 + OpStore %x_31 %78 + OpBranch %69 + %69 = OpLabel + %79 = OpLoad %float %x_31 + %80 = OpLoad %float %param_1 + %81 = OpFOrdLessThan %bool %79 %80 + OpBranchConditional %81 %67 %68 + %68 = OpLabel + %82 = OpLoad %bool %x_29 + OpSelectionMerge %83 None + OpBranchConditional %82 %84 %83 + %84 = OpLabel + OpBranch %63 + %83 = OpLabel OpStore %x_29 %true OpStore %x_30 %float_0 - OpBranch %66 - %67 = OpLabel - OpBranch %65 - %66 = OpLabel - %91 = OpLoad %float %x_30 - OpStore %x_32 %91 - %92 = OpLoad %float %i - %93 = OpFAdd %float %92 %91 - OpStore %i %93 - %95 = OpFOrdLessThan %bool %93 %float_6 - OpSelectionMerge %96 None - OpBranchConditional %95 %97 %98 - %97 = OpLabel - OpBranch %96 - %98 = OpLabel + OpBranch %63 + %64 = OpLabel + OpBranch %62 + %63 = OpLabel + %85 = OpLoad %float %x_30 + OpStore %x_32 %85 + %86 = OpLoad %float %i + %87 = OpFAdd %float %86 %85 + OpStore %i %87 + %89 = OpFOrdLessThan %bool %87 %float_6 + OpSelectionMerge %90 None + OpBranchConditional %89 %91 %92 + %91 = OpLabel + OpBranch %90 + %92 = OpLabel OpBranch %32 - %96 = OpLabel + %90 = OpLabel OpBranch %33 %33 = OpLabel OpBranch %31 %32 = OpLabel - %99 = OpLoad %float %f - %101 = OpFOrdEqual %bool %99 %float_5 - OpSelectionMerge %102 None - OpBranchConditional %101 %103 %104 - %103 = OpLabel - OpStore %x_GLF_color %105 - OpBranch %102 - %104 = OpLabel - OpStore %x_GLF_color %106 - OpBranch %102 - %102 = OpLabel + %93 = OpLoad %float %f + %95 = OpFOrdEqual %bool %93 %float_5 + OpSelectionMerge %96 None + OpBranchConditional %95 %97 %98 + %97 = OpLabel + OpStore %x_GLF_color %99 + OpBranch %96 + %98 = OpLabel + OpStore %x_GLF_color %100 + OpBranch %96 + %96 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %107 +%tint_symbol_2 = OpFunction %void None %101 %tint_symbol = OpFunctionParameter %main_out - %111 = OpLabel - %112 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %112 + %105 = OpLabel + %106 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %106 OpReturn OpFunctionEnd %main = OpFunction %void None %8 - %114 = OpLabel - %115 = OpFunctionCall %void %main_1 - %117 = OpLoad %v4float %x_GLF_color - %118 = OpCompositeConstruct %main_out %117 - %116 = OpFunctionCall %void %tint_symbol_2 %118 + %108 = OpLabel + %109 = OpFunctionCall %void %main_1 + %111 = OpLoad %v4float %x_GLF_color + %112 = OpCompositeConstruct %main_out %111 + %110 = OpFunctionCall %void %tint_symbol_2 %112 OpReturn OpFunctionEnd - %func_f1_ = OpFunction %float None %119 + %func_f1_ = OpFunction %float None %113 %x = OpFunctionParameter %_ptr_Function_float - %122 = OpLabel + %116 = OpLabel %x_93 = OpVariable %_ptr_Function_bool Function %16 %x_94 = OpVariable %_ptr_Function_float Function %19 %a = OpVariable %_ptr_Function_float Function %19 OpStore %x_93 %false + OpBranch %120 + %120 = OpLabel + OpLoopMerge %121 %122 None + OpBranch %123 + %123 = OpLabel + %125 = OpLoad %float %x + OpStore %a %125 OpBranch %126 %126 = OpLabel OpLoopMerge %127 %128 None OpBranch %129 %129 = OpLabel - %131 = OpLoad %float %x - OpStore %a %131 - OpBranch %132 - %132 = OpLabel - OpLoopMerge %133 %134 None - OpBranch %135 + %130 = OpLoad %float %a + %132 = OpLoad %float %x + %133 = OpFOrdEqual %bool %130 %132 + OpSelectionMerge %134 None + OpBranchConditional %133 %135 %134 %135 = OpLabel %136 = OpLoad %float %a - %138 = OpLoad %float %x - %139 = OpFOrdEqual %bool %136 %138 - OpSelectionMerge %140 None - OpBranchConditional %139 %141 %140 - %141 = OpLabel - %142 = OpLoad %float %a OpStore %x_93 %true - OpStore %x_94 %142 - OpBranch %133 - %140 = OpLabel - %143 = OpLoad %float %a - %144 = OpFAdd %float %143 %float_1 - OpStore %a %144 - OpBranch %134 - %134 = OpLabel - %145 = OpLoad %float %a - %147 = OpLoad %float %x - %148 = OpFOrdLessThan %bool %145 %147 - OpSelectionMerge %149 None - OpBranchConditional %148 %150 %151 - %150 = OpLabel - OpBranch %149 - %151 = OpLabel - OpBranch %133 - %149 = OpLabel - OpBranch %132 - %133 = OpLabel - %152 = OpLoad %bool %x_93 - OpSelectionMerge %153 None - OpBranchConditional %152 %154 %153 - %154 = OpLabel + OpStore %x_94 %136 OpBranch %127 - %153 = OpLabel + %134 = OpLabel + %137 = OpLoad %float %a + %138 = OpFAdd %float %137 %float_1 + OpStore %a %138 + OpBranch %128 + %128 = OpLabel + %139 = OpLoad %float %a + %141 = OpLoad %float %x + %142 = OpFOrdLessThan %bool %139 %141 + OpBranchConditional %142 %126 %127 + %127 = OpLabel + %143 = OpLoad %bool %x_93 + OpSelectionMerge %144 None + OpBranchConditional %143 %145 %144 + %145 = OpLabel + OpBranch %121 + %144 = OpLabel OpStore %x_93 %true OpStore %x_94 %float_0 - OpBranch %127 - %128 = OpLabel - OpBranch %126 - %127 = OpLabel - %155 = OpLoad %float %x_94 - OpReturnValue %155 + OpBranch %121 + %122 = OpLabel + OpBranch %120 + %121 = OpLabel + %146 = OpLoad %float %x_94 + OpReturnValue %146 OpFunctionEnd -1:1: The continue construct with the continue target 43[%43] is not post dominated by the back-edge block 58[%58] - %58 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-dead-branch-func-return-arg/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-dead-branch-func-return-arg/0-opt.wgsl.expected.spvasm index 278320df45..90974abf3f 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-dead-branch-func-return-arg/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-dead-branch-func-return-arg/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 156 +; Bound: 147 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -56,11 +54,11 @@ SKIP: FAILED %float_1 = OpConstant %float 1 %float_6 = OpConstant %float 6 %float_5 = OpConstant %float 5 - %105 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 - %106 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 + %99 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %100 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 %main_out = OpTypeStruct %v4float - %107 = OpTypeFunction %void %main_out - %119 = OpTypeFunction %float %_ptr_Function_float + %101 = OpTypeFunction %void %main_out + %113 = OpTypeFunction %float %_ptr_Function_float %main_1 = OpFunction %void None %8 %11 = OpLabel %x_29 = OpVariable %_ptr_Function_bool Function %16 @@ -118,191 +116,167 @@ SKIP: FAILED %55 = OpLoad %float %x_35 %56 = OpLoad %float %param %57 = OpFOrdLessThan %bool %55 %56 - OpSelectionMerge %58 None - OpBranchConditional %57 %59 %60 - %59 = OpLabel - OpBranch %58 - %60 = OpLabel - OpBranch %42 - %58 = OpLabel - OpBranch %41 + OpBranchConditional %57 %41 %42 %42 = OpLabel - %61 = OpLoad %bool %x_33 - OpSelectionMerge %62 None - OpBranchConditional %61 %63 %62 - %63 = OpLabel + %58 = OpLoad %bool %x_33 + OpSelectionMerge %59 None + OpBranchConditional %58 %60 %59 + %60 = OpLabel OpBranch %37 - %62 = OpLabel + %59 = OpLabel OpStore %x_33 %true OpStore %x_34 %float_0 OpBranch %37 %38 = OpLabel OpBranch %36 %37 = OpLabel - %64 = OpLoad %float %x_34 - OpStore %x_36 %64 - OpStore %f %64 + %61 = OpLoad %float %x_34 + OpStore %x_36 %61 + OpStore %f %61 OpStore %param_1 %float_1 OpStore %x_29 %false + OpBranch %62 + %62 = OpLabel + OpLoopMerge %63 %64 None OpBranch %65 %65 = OpLabel - OpLoopMerge %66 %67 None - OpBranch %68 - %68 = OpLabel - %69 = OpLoad %float %param_1 - OpStore %x_31 %69 + %66 = OpLoad %float %param_1 + OpStore %x_31 %66 + OpBranch %67 + %67 = OpLabel + OpLoopMerge %68 %69 None OpBranch %70 %70 = OpLabel - OpLoopMerge %71 %72 None - OpBranch %73 - %73 = OpLabel - %74 = OpLoad %float %x_31 - %75 = OpLoad %float %param_1 - %76 = OpFOrdEqual %bool %74 %75 - OpSelectionMerge %77 None - OpBranchConditional %76 %78 %77 - %78 = OpLabel - %79 = OpLoad %float %x_31 + %71 = OpLoad %float %x_31 + %72 = OpLoad %float %param_1 + %73 = OpFOrdEqual %bool %71 %72 + OpSelectionMerge %74 None + OpBranchConditional %73 %75 %74 + %75 = OpLabel + %76 = OpLoad %float %x_31 OpStore %x_29 %true - OpStore %x_30 %79 - OpBranch %71 - %77 = OpLabel - %80 = OpLoad %float %x_31 - %81 = OpFAdd %float %80 %float_1 - OpStore %x_31 %81 - OpBranch %72 - %72 = OpLabel - %82 = OpLoad %float %x_31 - %83 = OpLoad %float %param_1 - %84 = OpFOrdLessThan %bool %82 %83 - OpSelectionMerge %85 None - OpBranchConditional %84 %86 %87 - %86 = OpLabel - OpBranch %85 - %87 = OpLabel - OpBranch %71 - %85 = OpLabel - OpBranch %70 - %71 = OpLabel - %88 = OpLoad %bool %x_29 - OpSelectionMerge %89 None - OpBranchConditional %88 %90 %89 - %90 = OpLabel - OpBranch %66 - %89 = OpLabel + OpStore %x_30 %76 + OpBranch %68 + %74 = OpLabel + %77 = OpLoad %float %x_31 + %78 = OpFAdd %float %77 %float_1 + OpStore %x_31 %78 + OpBranch %69 + %69 = OpLabel + %79 = OpLoad %float %x_31 + %80 = OpLoad %float %param_1 + %81 = OpFOrdLessThan %bool %79 %80 + OpBranchConditional %81 %67 %68 + %68 = OpLabel + %82 = OpLoad %bool %x_29 + OpSelectionMerge %83 None + OpBranchConditional %82 %84 %83 + %84 = OpLabel + OpBranch %63 + %83 = OpLabel OpStore %x_29 %true OpStore %x_30 %float_0 - OpBranch %66 - %67 = OpLabel - OpBranch %65 - %66 = OpLabel - %91 = OpLoad %float %x_30 - OpStore %x_32 %91 - %92 = OpLoad %float %i - %93 = OpFAdd %float %92 %91 - OpStore %i %93 - %95 = OpFOrdLessThan %bool %93 %float_6 - OpSelectionMerge %96 None - OpBranchConditional %95 %97 %98 - %97 = OpLabel - OpBranch %96 - %98 = OpLabel + OpBranch %63 + %64 = OpLabel + OpBranch %62 + %63 = OpLabel + %85 = OpLoad %float %x_30 + OpStore %x_32 %85 + %86 = OpLoad %float %i + %87 = OpFAdd %float %86 %85 + OpStore %i %87 + %89 = OpFOrdLessThan %bool %87 %float_6 + OpSelectionMerge %90 None + OpBranchConditional %89 %91 %92 + %91 = OpLabel + OpBranch %90 + %92 = OpLabel OpBranch %32 - %96 = OpLabel + %90 = OpLabel OpBranch %33 %33 = OpLabel OpBranch %31 %32 = OpLabel - %99 = OpLoad %float %f - %101 = OpFOrdEqual %bool %99 %float_5 - OpSelectionMerge %102 None - OpBranchConditional %101 %103 %104 - %103 = OpLabel - OpStore %x_GLF_color %105 - OpBranch %102 - %104 = OpLabel - OpStore %x_GLF_color %106 - OpBranch %102 - %102 = OpLabel + %93 = OpLoad %float %f + %95 = OpFOrdEqual %bool %93 %float_5 + OpSelectionMerge %96 None + OpBranchConditional %95 %97 %98 + %97 = OpLabel + OpStore %x_GLF_color %99 + OpBranch %96 + %98 = OpLabel + OpStore %x_GLF_color %100 + OpBranch %96 + %96 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %107 +%tint_symbol_2 = OpFunction %void None %101 %tint_symbol = OpFunctionParameter %main_out - %111 = OpLabel - %112 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %112 + %105 = OpLabel + %106 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %106 OpReturn OpFunctionEnd %main = OpFunction %void None %8 - %114 = OpLabel - %115 = OpFunctionCall %void %main_1 - %117 = OpLoad %v4float %x_GLF_color - %118 = OpCompositeConstruct %main_out %117 - %116 = OpFunctionCall %void %tint_symbol_2 %118 + %108 = OpLabel + %109 = OpFunctionCall %void %main_1 + %111 = OpLoad %v4float %x_GLF_color + %112 = OpCompositeConstruct %main_out %111 + %110 = OpFunctionCall %void %tint_symbol_2 %112 OpReturn OpFunctionEnd - %func_f1_ = OpFunction %float None %119 + %func_f1_ = OpFunction %float None %113 %x = OpFunctionParameter %_ptr_Function_float - %122 = OpLabel + %116 = OpLabel %x_93 = OpVariable %_ptr_Function_bool Function %16 %x_94 = OpVariable %_ptr_Function_float Function %19 %a = OpVariable %_ptr_Function_float Function %19 OpStore %x_93 %false + OpBranch %120 + %120 = OpLabel + OpLoopMerge %121 %122 None + OpBranch %123 + %123 = OpLabel + %125 = OpLoad %float %x + OpStore %a %125 OpBranch %126 %126 = OpLabel OpLoopMerge %127 %128 None OpBranch %129 %129 = OpLabel - %131 = OpLoad %float %x - OpStore %a %131 - OpBranch %132 - %132 = OpLabel - OpLoopMerge %133 %134 None - OpBranch %135 + %130 = OpLoad %float %a + %132 = OpLoad %float %x + %133 = OpFOrdEqual %bool %130 %132 + OpSelectionMerge %134 None + OpBranchConditional %133 %135 %134 %135 = OpLabel %136 = OpLoad %float %a - %138 = OpLoad %float %x - %139 = OpFOrdEqual %bool %136 %138 - OpSelectionMerge %140 None - OpBranchConditional %139 %141 %140 - %141 = OpLabel - %142 = OpLoad %float %a OpStore %x_93 %true - OpStore %x_94 %142 - OpBranch %133 - %140 = OpLabel - %143 = OpLoad %float %a - %144 = OpFAdd %float %143 %float_1 - OpStore %a %144 - OpBranch %134 - %134 = OpLabel - %145 = OpLoad %float %a - %147 = OpLoad %float %x - %148 = OpFOrdLessThan %bool %145 %147 - OpSelectionMerge %149 None - OpBranchConditional %148 %150 %151 - %150 = OpLabel - OpBranch %149 - %151 = OpLabel - OpBranch %133 - %149 = OpLabel - OpBranch %132 - %133 = OpLabel - %152 = OpLoad %bool %x_93 - OpSelectionMerge %153 None - OpBranchConditional %152 %154 %153 - %154 = OpLabel + OpStore %x_94 %136 OpBranch %127 - %153 = OpLabel + %134 = OpLabel + %137 = OpLoad %float %a + %138 = OpFAdd %float %137 %float_1 + OpStore %a %138 + OpBranch %128 + %128 = OpLabel + %139 = OpLoad %float %a + %141 = OpLoad %float %x + %142 = OpFOrdLessThan %bool %139 %141 + OpBranchConditional %142 %126 %127 + %127 = OpLabel + %143 = OpLoad %bool %x_93 + OpSelectionMerge %144 None + OpBranchConditional %143 %145 %144 + %145 = OpLabel + OpBranch %121 + %144 = OpLabel OpStore %x_93 %true OpStore %x_94 %float_0 - OpBranch %127 - %128 = OpLabel - OpBranch %126 - %127 = OpLabel - %155 = OpLoad %float %x_94 - OpReturnValue %155 + OpBranch %121 + %122 = OpLabel + OpBranch %120 + %121 = OpLabel + %146 = OpLoad %float %x_94 + OpReturnValue %146 OpFunctionEnd -1:1: The continue construct with the continue target 43[%43] is not post dominated by the back-edge block 58[%58] - %58 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.spvasm.expected.spvasm index ef74140ffc..781fc1ef0f 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 91 +; Bound: 88 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -55,9 +53,9 @@ SKIP: FAILED %true = OpConstantTrue %bool %int_2 = OpConstant %int 2 %void = OpTypeVoid - %51 = OpTypeFunction %void + %48 = OpTypeFunction %void %main_out = OpTypeStruct %v4float - %79 = OpTypeFunction %void %main_out + %76 = OpTypeFunction %void %main_out %func_ = OpFunction %int None %15 %17 = OpLabel %i = OpVariable %_ptr_Function_int Function %20 @@ -90,68 +88,58 @@ SKIP: FAILED %43 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_1 %44 = OpLoad %int %43 %45 = OpSLessThan %bool %42 %44 - OpSelectionMerge %46 None - OpBranchConditional %45 %47 %48 - %47 = OpLabel - OpBranch %46 - %48 = OpLabel - OpBranch %27 - %46 = OpLabel - OpBranch %26 + OpBranchConditional %45 %26 %27 %27 = OpLabel - %49 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_0 - %50 = OpLoad %int %49 - OpReturnValue %50 + %46 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_0 + %47 = OpLoad %int %46 + OpReturnValue %47 OpFunctionEnd - %main_1 = OpFunction %void None %51 - %54 = OpLabel - %55 = OpFunctionCall %int %func_ - %56 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 - %57 = OpLoad %int %56 - %58 = OpIEqual %bool %55 %57 - OpSelectionMerge %59 None - OpBranchConditional %58 %60 %61 - %60 = OpLabel - %62 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 - %63 = OpLoad %int %62 - %64 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_0 - %65 = OpLoad %int %64 - %66 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_0 - %67 = OpLoad %int %66 - %68 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 - %69 = OpLoad %int %68 - %70 = OpConvertSToF %float %63 - %71 = OpConvertSToF %float %65 - %72 = OpConvertSToF %float %67 - %73 = OpConvertSToF %float %69 - %74 = OpCompositeConstruct %v4float %70 %71 %72 %73 - OpStore %x_GLF_color %74 - OpBranch %59 - %61 = OpLabel - %75 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_0 - %76 = OpLoad %int %75 - %77 = OpConvertSToF %float %76 - %78 = OpCompositeConstruct %v4float %77 %77 %77 %77 - OpStore %x_GLF_color %78 - OpBranch %59 - %59 = OpLabel + %main_1 = OpFunction %void None %48 + %51 = OpLabel + %52 = OpFunctionCall %int %func_ + %53 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 + %54 = OpLoad %int %53 + %55 = OpIEqual %bool %52 %54 + OpSelectionMerge %56 None + OpBranchConditional %55 %57 %58 + %57 = OpLabel + %59 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 + %60 = OpLoad %int %59 + %61 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_0 + %62 = OpLoad %int %61 + %63 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_0 + %64 = OpLoad %int %63 + %65 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 + %66 = OpLoad %int %65 + %67 = OpConvertSToF %float %60 + %68 = OpConvertSToF %float %62 + %69 = OpConvertSToF %float %64 + %70 = OpConvertSToF %float %66 + %71 = OpCompositeConstruct %v4float %67 %68 %69 %70 + OpStore %x_GLF_color %71 + OpBranch %56 + %58 = OpLabel + %72 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_0 + %73 = OpLoad %int %72 + %74 = OpConvertSToF %float %73 + %75 = OpCompositeConstruct %v4float %74 %74 %74 %74 + OpStore %x_GLF_color %75 + OpBranch %56 + %56 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %79 +%tint_symbol_2 = OpFunction %void None %76 %tint_symbol = OpFunctionParameter %main_out + %80 = OpLabel + %81 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %81 + OpReturn + OpFunctionEnd + %main = OpFunction %void None %48 %83 = OpLabel - %84 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %84 + %84 = OpFunctionCall %void %main_1 + %86 = OpLoad %v4float %x_GLF_color + %87 = OpCompositeConstruct %main_out %86 + %85 = OpFunctionCall %void %tint_symbol_2 %87 OpReturn OpFunctionEnd - %main = OpFunction %void None %51 - %86 = OpLabel - %87 = OpFunctionCall %void %main_1 - %89 = OpLoad %v4float %x_GLF_color - %90 = OpCompositeConstruct %main_out %89 - %88 = OpFunctionCall %void %tint_symbol_2 %90 - OpReturn - OpFunctionEnd -1:1: The continue construct with the continue target 28[%28] is not post dominated by the back-edge block 46[%46] - %46 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.wgsl.expected.spvasm index ef74140ffc..781fc1ef0f 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 91 +; Bound: 88 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -55,9 +53,9 @@ SKIP: FAILED %true = OpConstantTrue %bool %int_2 = OpConstant %int 2 %void = OpTypeVoid - %51 = OpTypeFunction %void + %48 = OpTypeFunction %void %main_out = OpTypeStruct %v4float - %79 = OpTypeFunction %void %main_out + %76 = OpTypeFunction %void %main_out %func_ = OpFunction %int None %15 %17 = OpLabel %i = OpVariable %_ptr_Function_int Function %20 @@ -90,68 +88,58 @@ SKIP: FAILED %43 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_1 %44 = OpLoad %int %43 %45 = OpSLessThan %bool %42 %44 - OpSelectionMerge %46 None - OpBranchConditional %45 %47 %48 - %47 = OpLabel - OpBranch %46 - %48 = OpLabel - OpBranch %27 - %46 = OpLabel - OpBranch %26 + OpBranchConditional %45 %26 %27 %27 = OpLabel - %49 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_0 - %50 = OpLoad %int %49 - OpReturnValue %50 + %46 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_0 + %47 = OpLoad %int %46 + OpReturnValue %47 OpFunctionEnd - %main_1 = OpFunction %void None %51 - %54 = OpLabel - %55 = OpFunctionCall %int %func_ - %56 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 - %57 = OpLoad %int %56 - %58 = OpIEqual %bool %55 %57 - OpSelectionMerge %59 None - OpBranchConditional %58 %60 %61 - %60 = OpLabel - %62 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 - %63 = OpLoad %int %62 - %64 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_0 - %65 = OpLoad %int %64 - %66 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_0 - %67 = OpLoad %int %66 - %68 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 - %69 = OpLoad %int %68 - %70 = OpConvertSToF %float %63 - %71 = OpConvertSToF %float %65 - %72 = OpConvertSToF %float %67 - %73 = OpConvertSToF %float %69 - %74 = OpCompositeConstruct %v4float %70 %71 %72 %73 - OpStore %x_GLF_color %74 - OpBranch %59 - %61 = OpLabel - %75 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_0 - %76 = OpLoad %int %75 - %77 = OpConvertSToF %float %76 - %78 = OpCompositeConstruct %v4float %77 %77 %77 %77 - OpStore %x_GLF_color %78 - OpBranch %59 - %59 = OpLabel + %main_1 = OpFunction %void None %48 + %51 = OpLabel + %52 = OpFunctionCall %int %func_ + %53 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 + %54 = OpLoad %int %53 + %55 = OpIEqual %bool %52 %54 + OpSelectionMerge %56 None + OpBranchConditional %55 %57 %58 + %57 = OpLabel + %59 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 + %60 = OpLoad %int %59 + %61 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_0 + %62 = OpLoad %int %61 + %63 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_0 + %64 = OpLoad %int %63 + %65 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 + %66 = OpLoad %int %65 + %67 = OpConvertSToF %float %60 + %68 = OpConvertSToF %float %62 + %69 = OpConvertSToF %float %64 + %70 = OpConvertSToF %float %66 + %71 = OpCompositeConstruct %v4float %67 %68 %69 %70 + OpStore %x_GLF_color %71 + OpBranch %56 + %58 = OpLabel + %72 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_0 + %73 = OpLoad %int %72 + %74 = OpConvertSToF %float %73 + %75 = OpCompositeConstruct %v4float %74 %74 %74 %74 + OpStore %x_GLF_color %75 + OpBranch %56 + %56 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %79 +%tint_symbol_2 = OpFunction %void None %76 %tint_symbol = OpFunctionParameter %main_out + %80 = OpLabel + %81 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %81 + OpReturn + OpFunctionEnd + %main = OpFunction %void None %48 %83 = OpLabel - %84 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %84 + %84 = OpFunctionCall %void %main_1 + %86 = OpLoad %v4float %x_GLF_color + %87 = OpCompositeConstruct %main_out %86 + %85 = OpFunctionCall %void %tint_symbol_2 %87 OpReturn OpFunctionEnd - %main = OpFunction %void None %51 - %86 = OpLabel - %87 = OpFunctionCall %void %main_1 - %89 = OpLoad %v4float %x_GLF_color - %90 = OpCompositeConstruct %main_out %89 - %88 = OpFunctionCall %void %tint_symbol_2 %90 - OpReturn - OpFunctionEnd -1:1: The continue construct with the continue target 28[%28] is not post dominated by the back-edge block 46[%46] - %46 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.spvasm index 5285dcf6a0..66e7a564d8 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 64 +; Bound: 59 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -48,10 +46,10 @@ SKIP: FAILED %false = OpConstantFalse %bool %int_3 = OpConstant %int 3 %float_1 = OpConstant %float 1 - %49 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 - %50 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 + %44 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %45 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 %main_out = OpTypeStruct %v4float - %51 = OpTypeFunction %void %main_out + %46 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %11 %14 = OpLabel %i = OpVariable %_ptr_Function_int Function %18 @@ -69,51 +67,36 @@ SKIP: FAILED %30 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0 %31 = OpLoad %float %30 %33 = OpFOrdGreaterThanEqual %bool %31 %float_0 - OpSelectionMerge %35 None - OpBranchConditional %33 %36 %35 - %36 = OpLabel - OpBranch %35 - %35 = OpLabel - %38 = OpPhi %bool %33 %22 %false %36 - OpSelectionMerge %39 None - OpBranchConditional %38 %40 %41 - %40 = OpLabel - OpBranch %39 - %41 = OpLabel - OpBranch %21 - %39 = OpLabel - OpBranch %20 + %36 = OpLogicalAnd %bool %33 %false + OpBranchConditional %36 %20 %21 %21 = OpLabel - %42 = OpLoad %int %i - %44 = OpIEqual %bool %42 %int_3 - OpSelectionMerge %45 None - OpBranchConditional %44 %46 %47 - %46 = OpLabel - OpStore %x_GLF_color %49 - OpBranch %45 - %47 = OpLabel - OpStore %x_GLF_color %50 - OpBranch %45 - %45 = OpLabel + %37 = OpLoad %int %i + %39 = OpIEqual %bool %37 %int_3 + OpSelectionMerge %40 None + OpBranchConditional %39 %41 %42 + %41 = OpLabel + OpStore %x_GLF_color %44 + OpBranch %40 + %42 = OpLabel + OpStore %x_GLF_color %45 + OpBranch %40 + %40 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %51 +%tint_symbol_3 = OpFunction %void None %46 %tint_symbol_1 = OpFunctionParameter %main_out - %55 = OpLabel - %56 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %56 + %50 = OpLabel + %51 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %51 OpReturn OpFunctionEnd %main = OpFunction %void None %11 - %58 = OpLabel - %59 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %59 - %60 = OpFunctionCall %void %main_1 - %62 = OpLoad %v4float %x_GLF_color - %63 = OpCompositeConstruct %main_out %62 - %61 = OpFunctionCall %void %tint_symbol_3 %63 + %53 = OpLabel + %54 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %54 + %55 = OpFunctionCall %void %main_1 + %57 = OpLoad %v4float %x_GLF_color + %58 = OpCompositeConstruct %main_out %57 + %56 = OpFunctionCall %void %tint_symbol_3 %58 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 22[%22] is not post dominated by the back-edge block 39[%39] - %39 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.wgsl.expected.spvasm index 5285dcf6a0..5375739c5b 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 64 +; Bound: 61 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -48,10 +46,10 @@ SKIP: FAILED %false = OpConstantFalse %bool %int_3 = OpConstant %int 3 %float_1 = OpConstant %float 1 - %49 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 - %50 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 + %46 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %47 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 %main_out = OpTypeStruct %v4float - %51 = OpTypeFunction %void %main_out + %48 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %11 %14 = OpLabel %i = OpVariable %_ptr_Function_int Function %18 @@ -75,45 +73,35 @@ SKIP: FAILED OpBranch %35 %35 = OpLabel %38 = OpPhi %bool %33 %22 %false %36 - OpSelectionMerge %39 None - OpBranchConditional %38 %40 %41 - %40 = OpLabel - OpBranch %39 - %41 = OpLabel - OpBranch %21 - %39 = OpLabel - OpBranch %20 + OpBranchConditional %38 %20 %21 %21 = OpLabel - %42 = OpLoad %int %i - %44 = OpIEqual %bool %42 %int_3 - OpSelectionMerge %45 None - OpBranchConditional %44 %46 %47 - %46 = OpLabel - OpStore %x_GLF_color %49 - OpBranch %45 - %47 = OpLabel - OpStore %x_GLF_color %50 - OpBranch %45 - %45 = OpLabel + %39 = OpLoad %int %i + %41 = OpIEqual %bool %39 %int_3 + OpSelectionMerge %42 None + OpBranchConditional %41 %43 %44 + %43 = OpLabel + OpStore %x_GLF_color %46 + OpBranch %42 + %44 = OpLabel + OpStore %x_GLF_color %47 + OpBranch %42 + %42 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %51 +%tint_symbol_3 = OpFunction %void None %48 %tint_symbol_1 = OpFunctionParameter %main_out - %55 = OpLabel - %56 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %56 + %52 = OpLabel + %53 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %53 OpReturn OpFunctionEnd %main = OpFunction %void None %11 - %58 = OpLabel - %59 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %59 - %60 = OpFunctionCall %void %main_1 - %62 = OpLoad %v4float %x_GLF_color - %63 = OpCompositeConstruct %main_out %62 - %61 = OpFunctionCall %void %tint_symbol_3 %63 + %55 = OpLabel + %56 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %56 + %57 = OpFunctionCall %void %main_1 + %59 = OpLoad %v4float %x_GLF_color + %60 = OpCompositeConstruct %main_out %59 + %58 = OpFunctionCall %void %tint_symbol_3 %60 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 22[%22] is not post dominated by the back-edge block 39[%39] - %39 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.spvasm.expected.spvasm index 9b5b3abd0d..10d16c9d16 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 64 +; Bound: 61 ; Schema: 0 OpCapability Shader %35 = OpExtInstImport "GLSL.std.450" @@ -52,10 +50,10 @@ SKIP: FAILED %float_9 = OpConstant %float 9 %bool = OpTypeBool %float_0 = OpConstant %float 0 - %50 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 - %51 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 + %47 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %48 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 %main_out = OpTypeStruct %v4float - %52 = OpTypeFunction %void %main_out + %49 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %11 %14 = OpLabel %f = OpVariable %_ptr_Function_float Function %17 @@ -78,43 +76,33 @@ SKIP: FAILED %38 = OpFAdd %float %float_9 %32 %34 = OpExtInst %float %35 NClamp %30 %float_8 %38 %39 = OpFOrdGreaterThan %bool %float_10 %34 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %43 - %42 = OpLabel - OpBranch %41 - %43 = OpLabel - OpBranch %20 - %41 = OpLabel - OpBranch %19 + OpBranchConditional %39 %19 %20 %20 = OpLabel - %44 = OpLoad %float %f - %45 = OpFOrdEqual %bool %44 %float_10 - OpSelectionMerge %46 None - OpBranchConditional %45 %47 %48 - %47 = OpLabel - OpStore %x_GLF_color %50 - OpBranch %46 - %48 = OpLabel - OpStore %x_GLF_color %51 - OpBranch %46 - %46 = OpLabel + %41 = OpLoad %float %f + %42 = OpFOrdEqual %bool %41 %float_10 + OpSelectionMerge %43 None + OpBranchConditional %42 %44 %45 + %44 = OpLabel + OpStore %x_GLF_color %47 + OpBranch %43 + %45 = OpLabel + OpStore %x_GLF_color %48 + OpBranch %43 + %43 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %52 +%tint_symbol_2 = OpFunction %void None %49 %tint_symbol = OpFunctionParameter %main_out - %56 = OpLabel - %57 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %57 + %53 = OpLabel + %54 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %54 OpReturn OpFunctionEnd %main = OpFunction %void None %11 - %59 = OpLabel - %60 = OpFunctionCall %void %main_1 - %62 = OpLoad %v4float %x_GLF_color - %63 = OpCompositeConstruct %main_out %62 - %61 = OpFunctionCall %void %tint_symbol_2 %63 + %56 = OpLabel + %57 = OpFunctionCall %void %main_1 + %59 = OpLoad %v4float %x_GLF_color + %60 = OpCompositeConstruct %main_out %59 + %58 = OpFunctionCall %void %tint_symbol_2 %60 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 21[%21] is not post dominated by the back-edge block 41[%41] - %41 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.wgsl.expected.spvasm index 9b5b3abd0d..10d16c9d16 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 64 +; Bound: 61 ; Schema: 0 OpCapability Shader %35 = OpExtInstImport "GLSL.std.450" @@ -52,10 +50,10 @@ SKIP: FAILED %float_9 = OpConstant %float 9 %bool = OpTypeBool %float_0 = OpConstant %float 0 - %50 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 - %51 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 + %47 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %48 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 %main_out = OpTypeStruct %v4float - %52 = OpTypeFunction %void %main_out + %49 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %11 %14 = OpLabel %f = OpVariable %_ptr_Function_float Function %17 @@ -78,43 +76,33 @@ SKIP: FAILED %38 = OpFAdd %float %float_9 %32 %34 = OpExtInst %float %35 NClamp %30 %float_8 %38 %39 = OpFOrdGreaterThan %bool %float_10 %34 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %43 - %42 = OpLabel - OpBranch %41 - %43 = OpLabel - OpBranch %20 - %41 = OpLabel - OpBranch %19 + OpBranchConditional %39 %19 %20 %20 = OpLabel - %44 = OpLoad %float %f - %45 = OpFOrdEqual %bool %44 %float_10 - OpSelectionMerge %46 None - OpBranchConditional %45 %47 %48 - %47 = OpLabel - OpStore %x_GLF_color %50 - OpBranch %46 - %48 = OpLabel - OpStore %x_GLF_color %51 - OpBranch %46 - %46 = OpLabel + %41 = OpLoad %float %f + %42 = OpFOrdEqual %bool %41 %float_10 + OpSelectionMerge %43 None + OpBranchConditional %42 %44 %45 + %44 = OpLabel + OpStore %x_GLF_color %47 + OpBranch %43 + %45 = OpLabel + OpStore %x_GLF_color %48 + OpBranch %43 + %43 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %52 +%tint_symbol_2 = OpFunction %void None %49 %tint_symbol = OpFunctionParameter %main_out - %56 = OpLabel - %57 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %57 + %53 = OpLabel + %54 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %54 OpReturn OpFunctionEnd %main = OpFunction %void None %11 - %59 = OpLabel - %60 = OpFunctionCall %void %main_1 - %62 = OpLoad %v4float %x_GLF_color - %63 = OpCompositeConstruct %main_out %62 - %61 = OpFunctionCall %void %tint_symbol_2 %63 + %56 = OpLabel + %57 = OpFunctionCall %void %main_1 + %59 = OpLoad %v4float %x_GLF_color + %60 = OpCompositeConstruct %main_out %59 + %58 = OpFunctionCall %void %tint_symbol_2 %60 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 21[%21] is not post dominated by the back-edge block 41[%41] - %41 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.spvasm.expected.spvasm index 855bbda0d9..7b6efef4aa 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 134 +; Bound: 128 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -78,11 +76,11 @@ SKIP: FAILED %int_1 = OpConstant %int 1 %int_0 = OpConstant %int 0 %void = OpTypeVoid - %87 = OpTypeFunction %void - %92 = OpConstantNull %float + %81 = OpTypeFunction %void + %86 = OpConstantNull %float %_ptr_Uniform_int = OpTypePointer Uniform %int %main_out = OpTypeStruct %v4float - %121 = OpTypeFunction %void %main_out + %115 = OpTypeFunction %void %main_out %func_f1_ = OpFunction %float None %23 %x = OpFunctionParameter %_ptr_Function_float %27 = OpLabel @@ -123,107 +121,90 @@ SKIP: FAILED %59 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_2 %60 = OpLoad %float %59 %61 = OpFOrdLessThan %bool %58 %60 - OpSelectionMerge %62 None - OpBranchConditional %61 %63 %64 - %63 = OpLabel - OpBranch %62 - %64 = OpLabel - OpBranch %54 - %62 = OpLabel - OpBranch %53 + OpBranchConditional %61 %53 %54 %54 = OpLabel OpBranch %51 %51 = OpLabel - %66 = OpLoad %float %x - %68 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_3 - %69 = OpLoad %float %68 - %70 = OpFOrdLessThan %bool %66 %69 - OpSelectionMerge %71 None - OpBranchConditional %70 %72 %71 - %72 = OpLabel - %74 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_1 - %75 = OpLoad %float %74 - OpReturnValue %75 - %71 = OpLabel + %63 = OpLoad %float %x + %65 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_3 + %66 = OpLoad %float %65 + %67 = OpFOrdLessThan %bool %63 %66 + OpSelectionMerge %68 None + OpBranchConditional %67 %69 %68 + %69 = OpLabel + %71 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_1 + %72 = OpLoad %float %71 + OpReturnValue %72 + %68 = OpLabel OpBranch %39 %39 = OpLabel - %76 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %77 = OpLoad %float %76 - %78 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_2 - %79 = OpLoad %float %78 - %80 = OpFOrdLessThan %bool %77 %79 - OpSelectionMerge %81 None - OpBranchConditional %80 %82 %83 - %82 = OpLabel - OpBranch %81 - %83 = OpLabel - OpBranch %38 - %81 = OpLabel - OpBranch %37 + %73 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %74 = OpLoad %float %73 + %75 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_2 + %76 = OpLoad %float %75 + %77 = OpFOrdLessThan %bool %74 %76 + OpBranchConditional %77 %37 %38 %38 = OpLabel OpBranch %30 %30 = OpLabel OpBranch %28 %29 = OpLabel - %85 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0 - %86 = OpLoad %float %85 - OpReturnValue %86 + %79 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0 + %80 = OpLoad %float %79 + OpReturnValue %80 OpFunctionEnd - %main_1 = OpFunction %void None %87 - %90 = OpLabel - %param = OpVariable %_ptr_Function_float Function %92 - %93 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0 - %94 = OpLoad %float %93 - OpStore %param %94 - %95 = OpFunctionCall %float %func_f1_ %param - %97 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_1 - %98 = OpLoad %float %97 - %99 = OpFOrdEqual %bool %95 %98 - OpSelectionMerge %100 None - OpBranchConditional %99 %101 %102 - %101 = OpLabel + %main_1 = OpFunction %void None %81 + %84 = OpLabel + %param = OpVariable %_ptr_Function_float Function %86 + %87 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0 + %88 = OpLoad %float %87 + OpStore %param %88 + %89 = OpFunctionCall %float %func_f1_ %param + %91 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_1 + %92 = OpLoad %float %91 + %93 = OpFOrdEqual %bool %89 %92 + OpSelectionMerge %94 None + OpBranchConditional %93 %95 %96 + %95 = OpLabel + %98 = OpAccessChain %_ptr_Uniform_int %x_11 %uint_0 %int_0 + %99 = OpLoad %int %98 + %100 = OpAccessChain %_ptr_Uniform_int %x_11 %uint_0 %int_1 + %101 = OpLoad %int %100 + %102 = OpAccessChain %_ptr_Uniform_int %x_11 %uint_0 %int_1 + %103 = OpLoad %int %102 %104 = OpAccessChain %_ptr_Uniform_int %x_11 %uint_0 %int_0 %105 = OpLoad %int %104 - %106 = OpAccessChain %_ptr_Uniform_int %x_11 %uint_0 %int_1 - %107 = OpLoad %int %106 - %108 = OpAccessChain %_ptr_Uniform_int %x_11 %uint_0 %int_1 - %109 = OpLoad %int %108 - %110 = OpAccessChain %_ptr_Uniform_int %x_11 %uint_0 %int_0 - %111 = OpLoad %int %110 - %112 = OpConvertSToF %float %105 - %113 = OpConvertSToF %float %107 - %114 = OpConvertSToF %float %109 - %115 = OpConvertSToF %float %111 - %116 = OpCompositeConstruct %v4float %112 %113 %114 %115 - OpStore %x_GLF_color %116 - OpBranch %100 - %102 = OpLabel - %117 = OpAccessChain %_ptr_Uniform_int %x_11 %uint_0 %int_1 - %118 = OpLoad %int %117 - %119 = OpConvertSToF %float %118 - %120 = OpCompositeConstruct %v4float %119 %119 %119 %119 - OpStore %x_GLF_color %120 - OpBranch %100 - %100 = OpLabel + %106 = OpConvertSToF %float %99 + %107 = OpConvertSToF %float %101 + %108 = OpConvertSToF %float %103 + %109 = OpConvertSToF %float %105 + %110 = OpCompositeConstruct %v4float %106 %107 %108 %109 + OpStore %x_GLF_color %110 + OpBranch %94 + %96 = OpLabel + %111 = OpAccessChain %_ptr_Uniform_int %x_11 %uint_0 %int_1 + %112 = OpLoad %int %111 + %113 = OpConvertSToF %float %112 + %114 = OpCompositeConstruct %v4float %113 %113 %113 %113 + OpStore %x_GLF_color %114 + OpBranch %94 + %94 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %121 +%tint_symbol_3 = OpFunction %void None %115 %tint_symbol_1 = OpFunctionParameter %main_out - %125 = OpLabel - %126 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %126 + %119 = OpLabel + %120 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %120 OpReturn OpFunctionEnd - %main = OpFunction %void None %87 - %128 = OpLabel - %129 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %129 - %130 = OpFunctionCall %void %main_1 - %132 = OpLoad %v4float %x_GLF_color - %133 = OpCompositeConstruct %main_out %132 - %131 = OpFunctionCall %void %tint_symbol_3 %133 + %main = OpFunction %void None %81 + %122 = OpLabel + %123 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %123 + %124 = OpFunctionCall %void %main_1 + %126 = OpLoad %v4float %x_GLF_color + %127 = OpCompositeConstruct %main_out %126 + %125 = OpFunctionCall %void %tint_symbol_3 %127 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 39[%39] is not post dominated by the back-edge block 81[%81] - %81 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.wgsl.expected.spvasm index 855bbda0d9..7b6efef4aa 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 134 +; Bound: 128 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -78,11 +76,11 @@ SKIP: FAILED %int_1 = OpConstant %int 1 %int_0 = OpConstant %int 0 %void = OpTypeVoid - %87 = OpTypeFunction %void - %92 = OpConstantNull %float + %81 = OpTypeFunction %void + %86 = OpConstantNull %float %_ptr_Uniform_int = OpTypePointer Uniform %int %main_out = OpTypeStruct %v4float - %121 = OpTypeFunction %void %main_out + %115 = OpTypeFunction %void %main_out %func_f1_ = OpFunction %float None %23 %x = OpFunctionParameter %_ptr_Function_float %27 = OpLabel @@ -123,107 +121,90 @@ SKIP: FAILED %59 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_2 %60 = OpLoad %float %59 %61 = OpFOrdLessThan %bool %58 %60 - OpSelectionMerge %62 None - OpBranchConditional %61 %63 %64 - %63 = OpLabel - OpBranch %62 - %64 = OpLabel - OpBranch %54 - %62 = OpLabel - OpBranch %53 + OpBranchConditional %61 %53 %54 %54 = OpLabel OpBranch %51 %51 = OpLabel - %66 = OpLoad %float %x - %68 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_3 - %69 = OpLoad %float %68 - %70 = OpFOrdLessThan %bool %66 %69 - OpSelectionMerge %71 None - OpBranchConditional %70 %72 %71 - %72 = OpLabel - %74 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_1 - %75 = OpLoad %float %74 - OpReturnValue %75 - %71 = OpLabel + %63 = OpLoad %float %x + %65 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_3 + %66 = OpLoad %float %65 + %67 = OpFOrdLessThan %bool %63 %66 + OpSelectionMerge %68 None + OpBranchConditional %67 %69 %68 + %69 = OpLabel + %71 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_1 + %72 = OpLoad %float %71 + OpReturnValue %72 + %68 = OpLabel OpBranch %39 %39 = OpLabel - %76 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %77 = OpLoad %float %76 - %78 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_2 - %79 = OpLoad %float %78 - %80 = OpFOrdLessThan %bool %77 %79 - OpSelectionMerge %81 None - OpBranchConditional %80 %82 %83 - %82 = OpLabel - OpBranch %81 - %83 = OpLabel - OpBranch %38 - %81 = OpLabel - OpBranch %37 + %73 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %74 = OpLoad %float %73 + %75 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_2 + %76 = OpLoad %float %75 + %77 = OpFOrdLessThan %bool %74 %76 + OpBranchConditional %77 %37 %38 %38 = OpLabel OpBranch %30 %30 = OpLabel OpBranch %28 %29 = OpLabel - %85 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0 - %86 = OpLoad %float %85 - OpReturnValue %86 + %79 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0 + %80 = OpLoad %float %79 + OpReturnValue %80 OpFunctionEnd - %main_1 = OpFunction %void None %87 - %90 = OpLabel - %param = OpVariable %_ptr_Function_float Function %92 - %93 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0 - %94 = OpLoad %float %93 - OpStore %param %94 - %95 = OpFunctionCall %float %func_f1_ %param - %97 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_1 - %98 = OpLoad %float %97 - %99 = OpFOrdEqual %bool %95 %98 - OpSelectionMerge %100 None - OpBranchConditional %99 %101 %102 - %101 = OpLabel + %main_1 = OpFunction %void None %81 + %84 = OpLabel + %param = OpVariable %_ptr_Function_float Function %86 + %87 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0 + %88 = OpLoad %float %87 + OpStore %param %88 + %89 = OpFunctionCall %float %func_f1_ %param + %91 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_1 + %92 = OpLoad %float %91 + %93 = OpFOrdEqual %bool %89 %92 + OpSelectionMerge %94 None + OpBranchConditional %93 %95 %96 + %95 = OpLabel + %98 = OpAccessChain %_ptr_Uniform_int %x_11 %uint_0 %int_0 + %99 = OpLoad %int %98 + %100 = OpAccessChain %_ptr_Uniform_int %x_11 %uint_0 %int_1 + %101 = OpLoad %int %100 + %102 = OpAccessChain %_ptr_Uniform_int %x_11 %uint_0 %int_1 + %103 = OpLoad %int %102 %104 = OpAccessChain %_ptr_Uniform_int %x_11 %uint_0 %int_0 %105 = OpLoad %int %104 - %106 = OpAccessChain %_ptr_Uniform_int %x_11 %uint_0 %int_1 - %107 = OpLoad %int %106 - %108 = OpAccessChain %_ptr_Uniform_int %x_11 %uint_0 %int_1 - %109 = OpLoad %int %108 - %110 = OpAccessChain %_ptr_Uniform_int %x_11 %uint_0 %int_0 - %111 = OpLoad %int %110 - %112 = OpConvertSToF %float %105 - %113 = OpConvertSToF %float %107 - %114 = OpConvertSToF %float %109 - %115 = OpConvertSToF %float %111 - %116 = OpCompositeConstruct %v4float %112 %113 %114 %115 - OpStore %x_GLF_color %116 - OpBranch %100 - %102 = OpLabel - %117 = OpAccessChain %_ptr_Uniform_int %x_11 %uint_0 %int_1 - %118 = OpLoad %int %117 - %119 = OpConvertSToF %float %118 - %120 = OpCompositeConstruct %v4float %119 %119 %119 %119 - OpStore %x_GLF_color %120 - OpBranch %100 - %100 = OpLabel + %106 = OpConvertSToF %float %99 + %107 = OpConvertSToF %float %101 + %108 = OpConvertSToF %float %103 + %109 = OpConvertSToF %float %105 + %110 = OpCompositeConstruct %v4float %106 %107 %108 %109 + OpStore %x_GLF_color %110 + OpBranch %94 + %96 = OpLabel + %111 = OpAccessChain %_ptr_Uniform_int %x_11 %uint_0 %int_1 + %112 = OpLoad %int %111 + %113 = OpConvertSToF %float %112 + %114 = OpCompositeConstruct %v4float %113 %113 %113 %113 + OpStore %x_GLF_color %114 + OpBranch %94 + %94 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %121 +%tint_symbol_3 = OpFunction %void None %115 %tint_symbol_1 = OpFunctionParameter %main_out - %125 = OpLabel - %126 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %126 + %119 = OpLabel + %120 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %120 OpReturn OpFunctionEnd - %main = OpFunction %void None %87 - %128 = OpLabel - %129 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %129 - %130 = OpFunctionCall %void %main_1 - %132 = OpLoad %v4float %x_GLF_color - %133 = OpCompositeConstruct %main_out %132 - %131 = OpFunctionCall %void %tint_symbol_3 %133 + %main = OpFunction %void None %81 + %122 = OpLabel + %123 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %123 + %124 = OpFunctionCall %void %main_1 + %126 = OpLoad %v4float %x_GLF_color + %127 = OpCompositeConstruct %main_out %126 + %125 = OpFunctionCall %void %tint_symbol_3 %127 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 39[%39] is not post dominated by the back-edge block 81[%81] - %81 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.spvasm index e2beca5db3..53d2926503 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 104 +; Bound: 99 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -62,7 +60,7 @@ SKIP: FAILED %false = OpConstantFalse %bool %true = OpConstantTrue %bool %main_out = OpTypeStruct %v4float - %92 = OpTypeFunction %void %main_out + %87 = OpTypeFunction %void %main_out %func_ = OpFunction %int None %18 %20 = OpLabel OpBranch %21 @@ -112,71 +110,56 @@ SKIP: FAILED OpBranch %51 %51 = OpLabel %58 = OpLoad %int %x_GLF_global_loop_count - OpSelectionMerge %60 None - OpBranchConditional %true %61 %60 - %61 = OpLabel - %62 = OpSLessThan %bool %58 %int_100 - OpBranch %60 - %60 = OpLabel - %63 = OpPhi %bool %true %51 %62 %61 - OpSelectionMerge %64 None - OpBranchConditional %63 %65 %66 - %65 = OpLabel - OpBranch %64 - %66 = OpLabel - OpBranch %50 - %64 = OpLabel - OpBranch %49 + %60 = OpSLessThan %bool %58 %int_100 + %61 = OpLogicalAnd %bool %true %60 + OpBranchConditional %61 %49 %50 %50 = OpLabel - %67 = OpFunctionCall %int %func_ - OpStore %a %67 - %68 = OpLoad %int %a - %69 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 - %70 = OpLoad %int %69 - %71 = OpIEqual %bool %68 %70 - OpSelectionMerge %72 None - OpBranchConditional %71 %73 %74 - %73 = OpLabel - %75 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_0 - %76 = OpLoad %int %75 - %77 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_1 - %78 = OpLoad %int %77 - %79 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_1 - %80 = OpLoad %int %79 - %81 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_0 - %82 = OpLoad %int %81 - %83 = OpConvertSToF %float %76 - %84 = OpConvertSToF %float %78 - %85 = OpConvertSToF %float %80 - %86 = OpConvertSToF %float %82 - %87 = OpCompositeConstruct %v4float %83 %84 %85 %86 - OpStore %x_GLF_color %87 - OpBranch %72 - %74 = OpLabel - %88 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_1 - %89 = OpLoad %int %88 - %90 = OpConvertSToF %float %89 - %91 = OpCompositeConstruct %v4float %90 %90 %90 %90 - OpStore %x_GLF_color %91 - OpBranch %72 - %72 = OpLabel + %62 = OpFunctionCall %int %func_ + OpStore %a %62 + %63 = OpLoad %int %a + %64 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 + %65 = OpLoad %int %64 + %66 = OpIEqual %bool %63 %65 + OpSelectionMerge %67 None + OpBranchConditional %66 %68 %69 + %68 = OpLabel + %70 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_0 + %71 = OpLoad %int %70 + %72 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_1 + %73 = OpLoad %int %72 + %74 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_1 + %75 = OpLoad %int %74 + %76 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_0 + %77 = OpLoad %int %76 + %78 = OpConvertSToF %float %71 + %79 = OpConvertSToF %float %73 + %80 = OpConvertSToF %float %75 + %81 = OpConvertSToF %float %77 + %82 = OpCompositeConstruct %v4float %78 %79 %80 %81 + OpStore %x_GLF_color %82 + OpBranch %67 + %69 = OpLabel + %83 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_1 + %84 = OpLoad %int %83 + %85 = OpConvertSToF %float %84 + %86 = OpCompositeConstruct %v4float %85 %85 %85 %85 + OpStore %x_GLF_color %86 + OpBranch %67 + %67 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %92 +%tint_symbol_2 = OpFunction %void None %87 %tint_symbol = OpFunctionParameter %main_out - %96 = OpLabel - %97 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %97 + %91 = OpLabel + %92 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %92 OpReturn OpFunctionEnd %main = OpFunction %void None %43 - %99 = OpLabel - %100 = OpFunctionCall %void %main_1 - %102 = OpLoad %v4float %x_GLF_color - %103 = OpCompositeConstruct %main_out %102 - %101 = OpFunctionCall %void %tint_symbol_2 %103 + %94 = OpLabel + %95 = OpFunctionCall %void %main_1 + %97 = OpLoad %v4float %x_GLF_color + %98 = OpCompositeConstruct %main_out %97 + %96 = OpFunctionCall %void %tint_symbol_2 %98 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 51[%51] is not post dominated by the back-edge block 64[%64] - %64 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.wgsl.expected.spvasm index e2beca5db3..db5634e1bb 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 104 +; Bound: 101 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -62,7 +60,7 @@ SKIP: FAILED %false = OpConstantFalse %bool %true = OpConstantTrue %bool %main_out = OpTypeStruct %v4float - %92 = OpTypeFunction %void %main_out + %89 = OpTypeFunction %void %main_out %func_ = OpFunction %int None %18 %20 = OpLabel OpBranch %21 @@ -119,64 +117,54 @@ SKIP: FAILED OpBranch %60 %60 = OpLabel %63 = OpPhi %bool %true %51 %62 %61 - OpSelectionMerge %64 None - OpBranchConditional %63 %65 %66 - %65 = OpLabel - OpBranch %64 - %66 = OpLabel - OpBranch %50 - %64 = OpLabel - OpBranch %49 + OpBranchConditional %63 %49 %50 %50 = OpLabel - %67 = OpFunctionCall %int %func_ - OpStore %a %67 - %68 = OpLoad %int %a - %69 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 - %70 = OpLoad %int %69 - %71 = OpIEqual %bool %68 %70 - OpSelectionMerge %72 None - OpBranchConditional %71 %73 %74 - %73 = OpLabel - %75 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_0 - %76 = OpLoad %int %75 - %77 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_1 - %78 = OpLoad %int %77 - %79 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_1 - %80 = OpLoad %int %79 - %81 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_0 - %82 = OpLoad %int %81 - %83 = OpConvertSToF %float %76 - %84 = OpConvertSToF %float %78 - %85 = OpConvertSToF %float %80 - %86 = OpConvertSToF %float %82 - %87 = OpCompositeConstruct %v4float %83 %84 %85 %86 - OpStore %x_GLF_color %87 - OpBranch %72 - %74 = OpLabel - %88 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_1 - %89 = OpLoad %int %88 - %90 = OpConvertSToF %float %89 - %91 = OpCompositeConstruct %v4float %90 %90 %90 %90 - OpStore %x_GLF_color %91 - OpBranch %72 - %72 = OpLabel + %64 = OpFunctionCall %int %func_ + OpStore %a %64 + %65 = OpLoad %int %a + %66 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 + %67 = OpLoad %int %66 + %68 = OpIEqual %bool %65 %67 + OpSelectionMerge %69 None + OpBranchConditional %68 %70 %71 + %70 = OpLabel + %72 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_0 + %73 = OpLoad %int %72 + %74 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_1 + %75 = OpLoad %int %74 + %76 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_1 + %77 = OpLoad %int %76 + %78 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_0 + %79 = OpLoad %int %78 + %80 = OpConvertSToF %float %73 + %81 = OpConvertSToF %float %75 + %82 = OpConvertSToF %float %77 + %83 = OpConvertSToF %float %79 + %84 = OpCompositeConstruct %v4float %80 %81 %82 %83 + OpStore %x_GLF_color %84 + OpBranch %69 + %71 = OpLabel + %85 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_1 + %86 = OpLoad %int %85 + %87 = OpConvertSToF %float %86 + %88 = OpCompositeConstruct %v4float %87 %87 %87 %87 + OpStore %x_GLF_color %88 + OpBranch %69 + %69 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %92 +%tint_symbol_2 = OpFunction %void None %89 %tint_symbol = OpFunctionParameter %main_out - %96 = OpLabel - %97 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %97 + %93 = OpLabel + %94 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %94 OpReturn OpFunctionEnd %main = OpFunction %void None %43 - %99 = OpLabel - %100 = OpFunctionCall %void %main_1 - %102 = OpLoad %v4float %x_GLF_color - %103 = OpCompositeConstruct %main_out %102 - %101 = OpFunctionCall %void %tint_symbol_2 %103 + %96 = OpLabel + %97 = OpFunctionCall %void %main_1 + %99 = OpLoad %v4float %x_GLF_color + %100 = OpCompositeConstruct %main_out %99 + %98 = OpFunctionCall %void %tint_symbol_2 %100 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 51[%51] is not post dominated by the back-edge block 64[%64] - %64 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.spvasm.expected.spvasm index d01a3ec2b0..03697ab7bf 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 79 +; Bound: 76 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -55,7 +53,7 @@ SKIP: FAILED %true = OpConstantTrue %bool %float_1 = OpConstant %float 1 %main_out = OpTypeStruct %v4float - %67 = OpTypeFunction %void %main_out + %64 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %15 %18 = OpLabel %a = OpVariable %_ptr_Function_int Function %21 @@ -86,57 +84,47 @@ SKIP: FAILED %25 = OpLabel %42 = OpLoad %int %a %43 = OpINotEqual %bool %42 %int_1 - OpSelectionMerge %44 None - OpBranchConditional %43 %45 %46 - %45 = OpLabel - OpBranch %44 - %46 = OpLabel - OpBranch %24 - %44 = OpLabel - OpBranch %23 + OpBranchConditional %43 %23 %24 %24 = OpLabel - %47 = OpLoad %int %a - %48 = OpIEqual %bool %47 %int_1 - OpSelectionMerge %49 None - OpBranchConditional %48 %50 %51 - %50 = OpLabel - %52 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0 - %53 = OpLoad %int %52 - %54 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0 - %55 = OpLoad %int %54 - %56 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1 - %57 = OpLoad %int %56 - %59 = OpConvertSToF %float %53 - %60 = OpConvertSToF %float %55 - %61 = OpConvertSToF %float %57 - %62 = OpCompositeConstruct %v4float %float_1 %59 %60 %61 - OpStore %x_GLF_color %62 - OpBranch %49 - %51 = OpLabel - %63 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0 - %64 = OpLoad %int %63 - %65 = OpConvertSToF %float %64 - %66 = OpCompositeConstruct %v4float %65 %65 %65 %65 - OpStore %x_GLF_color %66 - OpBranch %49 - %49 = OpLabel + %44 = OpLoad %int %a + %45 = OpIEqual %bool %44 %int_1 + OpSelectionMerge %46 None + OpBranchConditional %45 %47 %48 + %47 = OpLabel + %49 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0 + %50 = OpLoad %int %49 + %51 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0 + %52 = OpLoad %int %51 + %53 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1 + %54 = OpLoad %int %53 + %56 = OpConvertSToF %float %50 + %57 = OpConvertSToF %float %52 + %58 = OpConvertSToF %float %54 + %59 = OpCompositeConstruct %v4float %float_1 %56 %57 %58 + OpStore %x_GLF_color %59 + OpBranch %46 + %48 = OpLabel + %60 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0 + %61 = OpLoad %int %60 + %62 = OpConvertSToF %float %61 + %63 = OpCompositeConstruct %v4float %62 %62 %62 %62 + OpStore %x_GLF_color %63 + OpBranch %46 + %46 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %67 +%tint_symbol_2 = OpFunction %void None %64 %tint_symbol = OpFunctionParameter %main_out - %71 = OpLabel - %72 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %72 + %68 = OpLabel + %69 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %69 OpReturn OpFunctionEnd %main = OpFunction %void None %15 - %74 = OpLabel - %75 = OpFunctionCall %void %main_1 - %77 = OpLoad %v4float %x_GLF_color - %78 = OpCompositeConstruct %main_out %77 - %76 = OpFunctionCall %void %tint_symbol_2 %78 + %71 = OpLabel + %72 = OpFunctionCall %void %main_1 + %74 = OpLoad %v4float %x_GLF_color + %75 = OpCompositeConstruct %main_out %74 + %73 = OpFunctionCall %void %tint_symbol_2 %75 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 25[%25] is not post dominated by the back-edge block 44[%44] - %44 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.wgsl.expected.spvasm index d01a3ec2b0..03697ab7bf 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 79 +; Bound: 76 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -55,7 +53,7 @@ SKIP: FAILED %true = OpConstantTrue %bool %float_1 = OpConstant %float 1 %main_out = OpTypeStruct %v4float - %67 = OpTypeFunction %void %main_out + %64 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %15 %18 = OpLabel %a = OpVariable %_ptr_Function_int Function %21 @@ -86,57 +84,47 @@ SKIP: FAILED %25 = OpLabel %42 = OpLoad %int %a %43 = OpINotEqual %bool %42 %int_1 - OpSelectionMerge %44 None - OpBranchConditional %43 %45 %46 - %45 = OpLabel - OpBranch %44 - %46 = OpLabel - OpBranch %24 - %44 = OpLabel - OpBranch %23 + OpBranchConditional %43 %23 %24 %24 = OpLabel - %47 = OpLoad %int %a - %48 = OpIEqual %bool %47 %int_1 - OpSelectionMerge %49 None - OpBranchConditional %48 %50 %51 - %50 = OpLabel - %52 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0 - %53 = OpLoad %int %52 - %54 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0 - %55 = OpLoad %int %54 - %56 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1 - %57 = OpLoad %int %56 - %59 = OpConvertSToF %float %53 - %60 = OpConvertSToF %float %55 - %61 = OpConvertSToF %float %57 - %62 = OpCompositeConstruct %v4float %float_1 %59 %60 %61 - OpStore %x_GLF_color %62 - OpBranch %49 - %51 = OpLabel - %63 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0 - %64 = OpLoad %int %63 - %65 = OpConvertSToF %float %64 - %66 = OpCompositeConstruct %v4float %65 %65 %65 %65 - OpStore %x_GLF_color %66 - OpBranch %49 - %49 = OpLabel + %44 = OpLoad %int %a + %45 = OpIEqual %bool %44 %int_1 + OpSelectionMerge %46 None + OpBranchConditional %45 %47 %48 + %47 = OpLabel + %49 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0 + %50 = OpLoad %int %49 + %51 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0 + %52 = OpLoad %int %51 + %53 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1 + %54 = OpLoad %int %53 + %56 = OpConvertSToF %float %50 + %57 = OpConvertSToF %float %52 + %58 = OpConvertSToF %float %54 + %59 = OpCompositeConstruct %v4float %float_1 %56 %57 %58 + OpStore %x_GLF_color %59 + OpBranch %46 + %48 = OpLabel + %60 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0 + %61 = OpLoad %int %60 + %62 = OpConvertSToF %float %61 + %63 = OpCompositeConstruct %v4float %62 %62 %62 %62 + OpStore %x_GLF_color %63 + OpBranch %46 + %46 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %67 +%tint_symbol_2 = OpFunction %void None %64 %tint_symbol = OpFunctionParameter %main_out - %71 = OpLabel - %72 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %72 + %68 = OpLabel + %69 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %69 OpReturn OpFunctionEnd %main = OpFunction %void None %15 - %74 = OpLabel - %75 = OpFunctionCall %void %main_1 - %77 = OpLoad %v4float %x_GLF_color - %78 = OpCompositeConstruct %main_out %77 - %76 = OpFunctionCall %void %tint_symbol_2 %78 + %71 = OpLabel + %72 = OpFunctionCall %void %main_1 + %74 = OpLoad %v4float %x_GLF_color + %75 = OpCompositeConstruct %main_out %74 + %73 = OpFunctionCall %void %tint_symbol_2 %75 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 25[%25] is not post dominated by the back-edge block 44[%44] - %44 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.spvasm.expected.spvasm index bc45980b6d..f71209367e 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 83 +; Bound: 80 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -62,9 +60,9 @@ SKIP: FAILED %48 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 %49 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 %void = OpTypeVoid - %59 = OpTypeFunction %void + %56 = OpTypeFunction %void %main_out = OpTypeStruct %v4float - %71 = OpTypeFunction %void %main_out + %68 = OpTypeFunction %void %main_out %returnRed_ = OpFunction %v4float None %12 %14 = OpLabel %x_33 = OpVariable %_ptr_Function_bool Function %19 @@ -103,25 +101,18 @@ SKIP: FAILED %34 = OpLabel OpStore %x_48_phi %49 OpStore %x_49_phi %false - OpSelectionMerge %50 None - OpBranchConditional %false %51 %52 - %51 = OpLabel - OpBranch %50 - %52 = OpLabel - OpBranch %33 - %50 = OpLabel - OpBranch %32 + OpBranchConditional %false %32 %33 %33 = OpLabel - %53 = OpLoad %v4float %x_48_phi - OpStore %x_48 %53 - %54 = OpLoad %bool %x_49_phi - %55 = OpLoad %v4float %x_48 - OpStore %x_51_phi %55 - OpSelectionMerge %56 None - OpBranchConditional %54 %57 %56 - %57 = OpLabel + %50 = OpLoad %v4float %x_48_phi + OpStore %x_48 %50 + %51 = OpLoad %bool %x_49_phi + %52 = OpLoad %v4float %x_48 + OpStore %x_51_phi %52 + OpSelectionMerge %53 None + OpBranchConditional %51 %54 %53 + %54 = OpLabel OpBranch %26 - %56 = OpLabel + %53 = OpLabel OpStore %x_33 %true OpStore %x_34 %48 OpStore %x_51_phi %48 @@ -130,46 +121,43 @@ SKIP: FAILED OpStore %x_36_phi %false OpBranch %25 %26 = OpLabel - %58 = OpLoad %v4float %x_51_phi - OpReturnValue %58 + %55 = OpLoad %v4float %x_51_phi + OpReturnValue %55 OpFunctionEnd - %main_1 = OpFunction %void None %59 - %62 = OpLabel + %main_1 = OpFunction %void None %56 + %59 = OpLabel + OpBranch %60 + %60 = OpLabel + OpLoopMerge %61 %62 None OpBranch %63 %63 = OpLabel - OpLoopMerge %64 %65 None - OpBranch %66 + %64 = OpFunctionCall %v4float %returnRed_ + OpStore %x_GLF_color %64 + OpSelectionMerge %65 None + OpBranchConditional %false %66 %67 %66 = OpLabel - %67 = OpFunctionCall %v4float %returnRed_ - OpStore %x_GLF_color %67 - OpSelectionMerge %68 None - OpBranchConditional %false %69 %70 - %69 = OpLabel - OpBranch %68 - %70 = OpLabel - OpBranch %64 - %68 = OpLabel OpBranch %65 + %67 = OpLabel + OpBranch %61 %65 = OpLabel - OpBranch %63 - %64 = OpLabel + OpBranch %62 + %62 = OpLabel + OpBranch %60 + %61 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %71 +%tint_symbol_2 = OpFunction %void None %68 %tint_symbol = OpFunctionParameter %main_out + %72 = OpLabel + %73 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %73 + OpReturn + OpFunctionEnd + %main = OpFunction %void None %56 %75 = OpLabel - %76 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %76 + %76 = OpFunctionCall %void %main_1 + %78 = OpLoad %v4float %x_GLF_color + %79 = OpCompositeConstruct %main_out %78 + %77 = OpFunctionCall %void %tint_symbol_2 %79 OpReturn OpFunctionEnd - %main = OpFunction %void None %59 - %78 = OpLabel - %79 = OpFunctionCall %void %main_1 - %81 = OpLoad %v4float %x_GLF_color - %82 = OpCompositeConstruct %main_out %81 - %80 = OpFunctionCall %void %tint_symbol_2 %82 - OpReturn - OpFunctionEnd -1:1: The continue construct with the continue target 34[%34] is not post dominated by the back-edge block 50[%50] - %50 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.wgsl.expected.spvasm index bc45980b6d..f71209367e 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 83 +; Bound: 80 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -62,9 +60,9 @@ SKIP: FAILED %48 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 %49 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 %void = OpTypeVoid - %59 = OpTypeFunction %void + %56 = OpTypeFunction %void %main_out = OpTypeStruct %v4float - %71 = OpTypeFunction %void %main_out + %68 = OpTypeFunction %void %main_out %returnRed_ = OpFunction %v4float None %12 %14 = OpLabel %x_33 = OpVariable %_ptr_Function_bool Function %19 @@ -103,25 +101,18 @@ SKIP: FAILED %34 = OpLabel OpStore %x_48_phi %49 OpStore %x_49_phi %false - OpSelectionMerge %50 None - OpBranchConditional %false %51 %52 - %51 = OpLabel - OpBranch %50 - %52 = OpLabel - OpBranch %33 - %50 = OpLabel - OpBranch %32 + OpBranchConditional %false %32 %33 %33 = OpLabel - %53 = OpLoad %v4float %x_48_phi - OpStore %x_48 %53 - %54 = OpLoad %bool %x_49_phi - %55 = OpLoad %v4float %x_48 - OpStore %x_51_phi %55 - OpSelectionMerge %56 None - OpBranchConditional %54 %57 %56 - %57 = OpLabel + %50 = OpLoad %v4float %x_48_phi + OpStore %x_48 %50 + %51 = OpLoad %bool %x_49_phi + %52 = OpLoad %v4float %x_48 + OpStore %x_51_phi %52 + OpSelectionMerge %53 None + OpBranchConditional %51 %54 %53 + %54 = OpLabel OpBranch %26 - %56 = OpLabel + %53 = OpLabel OpStore %x_33 %true OpStore %x_34 %48 OpStore %x_51_phi %48 @@ -130,46 +121,43 @@ SKIP: FAILED OpStore %x_36_phi %false OpBranch %25 %26 = OpLabel - %58 = OpLoad %v4float %x_51_phi - OpReturnValue %58 + %55 = OpLoad %v4float %x_51_phi + OpReturnValue %55 OpFunctionEnd - %main_1 = OpFunction %void None %59 - %62 = OpLabel + %main_1 = OpFunction %void None %56 + %59 = OpLabel + OpBranch %60 + %60 = OpLabel + OpLoopMerge %61 %62 None OpBranch %63 %63 = OpLabel - OpLoopMerge %64 %65 None - OpBranch %66 + %64 = OpFunctionCall %v4float %returnRed_ + OpStore %x_GLF_color %64 + OpSelectionMerge %65 None + OpBranchConditional %false %66 %67 %66 = OpLabel - %67 = OpFunctionCall %v4float %returnRed_ - OpStore %x_GLF_color %67 - OpSelectionMerge %68 None - OpBranchConditional %false %69 %70 - %69 = OpLabel - OpBranch %68 - %70 = OpLabel - OpBranch %64 - %68 = OpLabel OpBranch %65 + %67 = OpLabel + OpBranch %61 %65 = OpLabel - OpBranch %63 - %64 = OpLabel + OpBranch %62 + %62 = OpLabel + OpBranch %60 + %61 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %71 +%tint_symbol_2 = OpFunction %void None %68 %tint_symbol = OpFunctionParameter %main_out + %72 = OpLabel + %73 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %73 + OpReturn + OpFunctionEnd + %main = OpFunction %void None %56 %75 = OpLabel - %76 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %76 + %76 = OpFunctionCall %void %main_1 + %78 = OpLoad %v4float %x_GLF_color + %79 = OpCompositeConstruct %main_out %78 + %77 = OpFunctionCall %void %tint_symbol_2 %79 OpReturn OpFunctionEnd - %main = OpFunction %void None %59 - %78 = OpLabel - %79 = OpFunctionCall %void %main_1 - %81 = OpLoad %v4float %x_GLF_color - %82 = OpCompositeConstruct %main_out %81 - %80 = OpFunctionCall %void %tint_symbol_2 %82 - OpReturn - OpFunctionEnd -1:1: The continue construct with the continue target 34[%34] is not post dominated by the back-edge block 50[%50] - %50 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-returns-behind-true-and-false/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-loop-returns-behind-true-and-false/0-opt.spvasm.expected.spvasm index 39748f22ad..d9c850ab3c 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-loop-returns-behind-true-and-false/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-returns-behind-true-and-false/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 90 +; Bound: 87 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -57,7 +55,7 @@ SKIP: FAILED %false = OpConstantFalse %bool %int_100 = OpConstant %int 100 %main_out = OpTypeStruct %v4float - %78 = OpTypeFunction %void %main_out + %75 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %18 %21 = OpLabel OpStore %x_GLF_global_loop_count %int_0 @@ -125,14 +123,7 @@ SKIP: FAILED %64 = OpLabel %72 = OpLoad %int %x_GLF_global_loop_count %74 = OpSLessThan %bool %72 %int_100 - OpSelectionMerge %75 None - OpBranchConditional %74 %76 %77 - %76 = OpLabel - OpBranch %75 - %77 = OpLabel - OpBranch %63 - %75 = OpLabel - OpBranch %62 + OpBranchConditional %74 %62 %63 %63 = OpLabel OpBranch %56 %56 = OpLabel @@ -144,21 +135,18 @@ SKIP: FAILED %27 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %78 +%tint_symbol_2 = OpFunction %void None %75 %tint_symbol = OpFunctionParameter %main_out - %82 = OpLabel - %83 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %83 + %79 = OpLabel + %80 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %80 OpReturn OpFunctionEnd %main = OpFunction %void None %18 - %85 = OpLabel - %86 = OpFunctionCall %void %main_1 - %88 = OpLoad %v4float %x_GLF_color - %89 = OpCompositeConstruct %main_out %88 - %87 = OpFunctionCall %void %tint_symbol_2 %89 + %82 = OpLabel + %83 = OpFunctionCall %void %main_1 + %85 = OpLoad %v4float %x_GLF_color + %86 = OpCompositeConstruct %main_out %85 + %84 = OpFunctionCall %void %tint_symbol_2 %86 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 64[%64] is not post dominated by the back-edge block 75[%75] - %75 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-returns-behind-true-and-false/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-loop-returns-behind-true-and-false/0-opt.wgsl.expected.spvasm index 39748f22ad..d9c850ab3c 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-loop-returns-behind-true-and-false/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-returns-behind-true-and-false/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 90 +; Bound: 87 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -57,7 +55,7 @@ SKIP: FAILED %false = OpConstantFalse %bool %int_100 = OpConstant %int 100 %main_out = OpTypeStruct %v4float - %78 = OpTypeFunction %void %main_out + %75 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %18 %21 = OpLabel OpStore %x_GLF_global_loop_count %int_0 @@ -125,14 +123,7 @@ SKIP: FAILED %64 = OpLabel %72 = OpLoad %int %x_GLF_global_loop_count %74 = OpSLessThan %bool %72 %int_100 - OpSelectionMerge %75 None - OpBranchConditional %74 %76 %77 - %76 = OpLabel - OpBranch %75 - %77 = OpLabel - OpBranch %63 - %75 = OpLabel - OpBranch %62 + OpBranchConditional %74 %62 %63 %63 = OpLabel OpBranch %56 %56 = OpLabel @@ -144,21 +135,18 @@ SKIP: FAILED %27 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %78 +%tint_symbol_2 = OpFunction %void None %75 %tint_symbol = OpFunctionParameter %main_out - %82 = OpLabel - %83 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %83 + %79 = OpLabel + %80 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %80 OpReturn OpFunctionEnd %main = OpFunction %void None %18 - %85 = OpLabel - %86 = OpFunctionCall %void %main_1 - %88 = OpLoad %v4float %x_GLF_color - %89 = OpCompositeConstruct %main_out %88 - %87 = OpFunctionCall %void %tint_symbol_2 %89 + %82 = OpLabel + %83 = OpFunctionCall %void %main_1 + %85 = OpLoad %v4float %x_GLF_color + %86 = OpCompositeConstruct %main_out %85 + %84 = OpFunctionCall %void %tint_symbol_2 %86 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 64[%64] is not post dominated by the back-edge block 75[%75] - %75 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.spvasm.expected.spvasm index 22d860b918..5b579f16de 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 71 +; Bound: 68 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -54,11 +52,11 @@ SKIP: FAILED %float_1 = OpConstant %float 1 %false = OpConstantFalse %bool %void = OpTypeVoid - %48 = OpTypeFunction %void - %57 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 - %58 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 + %45 = OpTypeFunction %void + %54 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %55 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 %main_out = OpTypeStruct %v4float - %59 = OpTypeFunction %void %main_out + %56 = OpTypeFunction %void %main_out %func_ = OpFunction %float None %11 %13 = OpLabel %b = OpVariable %_ptr_Function_float Function %16 @@ -97,48 +95,38 @@ SKIP: FAILED %23 = OpLabel OpStore %x_34_phi %float_1 OpStore %x_48_phi %float_1 - OpSelectionMerge %44 None - OpBranchConditional %false %45 %46 - %45 = OpLabel - OpBranch %44 - %46 = OpLabel - OpBranch %22 - %44 = OpLabel - OpBranch %21 + OpBranchConditional %false %21 %22 %22 = OpLabel - %47 = OpLoad %float %x_48_phi - OpReturnValue %47 + %44 = OpLoad %float %x_48_phi + OpReturnValue %44 OpFunctionEnd - %main_1 = OpFunction %void None %48 + %main_1 = OpFunction %void None %45 + %48 = OpLabel + %49 = OpFunctionCall %float %func_ + %50 = OpFOrdEqual %bool %49 %float_1 + OpSelectionMerge %51 None + OpBranchConditional %50 %52 %53 + %52 = OpLabel + OpStore %x_GLF_color %54 + OpBranch %51 + %53 = OpLabel + OpStore %x_GLF_color %55 + OpBranch %51 %51 = OpLabel - %52 = OpFunctionCall %float %func_ - %53 = OpFOrdEqual %bool %52 %float_1 - OpSelectionMerge %54 None - OpBranchConditional %53 %55 %56 - %55 = OpLabel - OpStore %x_GLF_color %57 - OpBranch %54 - %56 = OpLabel - OpStore %x_GLF_color %58 - OpBranch %54 - %54 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %59 +%tint_symbol_2 = OpFunction %void None %56 %tint_symbol = OpFunctionParameter %main_out + %60 = OpLabel + %61 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %61 + OpReturn + OpFunctionEnd + %main = OpFunction %void None %45 %63 = OpLabel - %64 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %64 + %64 = OpFunctionCall %void %main_1 + %66 = OpLoad %v4float %x_GLF_color + %67 = OpCompositeConstruct %main_out %66 + %65 = OpFunctionCall %void %tint_symbol_2 %67 OpReturn OpFunctionEnd - %main = OpFunction %void None %48 - %66 = OpLabel - %67 = OpFunctionCall %void %main_1 - %69 = OpLoad %v4float %x_GLF_color - %70 = OpCompositeConstruct %main_out %69 - %68 = OpFunctionCall %void %tint_symbol_2 %70 - OpReturn - OpFunctionEnd -1:1: The continue construct with the continue target 23[%23] is not post dominated by the back-edge block 44[%44] - %44 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.wgsl.expected.spvasm index 22d860b918..5b579f16de 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 71 +; Bound: 68 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -54,11 +52,11 @@ SKIP: FAILED %float_1 = OpConstant %float 1 %false = OpConstantFalse %bool %void = OpTypeVoid - %48 = OpTypeFunction %void - %57 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 - %58 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 + %45 = OpTypeFunction %void + %54 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %55 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 %main_out = OpTypeStruct %v4float - %59 = OpTypeFunction %void %main_out + %56 = OpTypeFunction %void %main_out %func_ = OpFunction %float None %11 %13 = OpLabel %b = OpVariable %_ptr_Function_float Function %16 @@ -97,48 +95,38 @@ SKIP: FAILED %23 = OpLabel OpStore %x_34_phi %float_1 OpStore %x_48_phi %float_1 - OpSelectionMerge %44 None - OpBranchConditional %false %45 %46 - %45 = OpLabel - OpBranch %44 - %46 = OpLabel - OpBranch %22 - %44 = OpLabel - OpBranch %21 + OpBranchConditional %false %21 %22 %22 = OpLabel - %47 = OpLoad %float %x_48_phi - OpReturnValue %47 + %44 = OpLoad %float %x_48_phi + OpReturnValue %44 OpFunctionEnd - %main_1 = OpFunction %void None %48 + %main_1 = OpFunction %void None %45 + %48 = OpLabel + %49 = OpFunctionCall %float %func_ + %50 = OpFOrdEqual %bool %49 %float_1 + OpSelectionMerge %51 None + OpBranchConditional %50 %52 %53 + %52 = OpLabel + OpStore %x_GLF_color %54 + OpBranch %51 + %53 = OpLabel + OpStore %x_GLF_color %55 + OpBranch %51 %51 = OpLabel - %52 = OpFunctionCall %float %func_ - %53 = OpFOrdEqual %bool %52 %float_1 - OpSelectionMerge %54 None - OpBranchConditional %53 %55 %56 - %55 = OpLabel - OpStore %x_GLF_color %57 - OpBranch %54 - %56 = OpLabel - OpStore %x_GLF_color %58 - OpBranch %54 - %54 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %59 +%tint_symbol_2 = OpFunction %void None %56 %tint_symbol = OpFunctionParameter %main_out + %60 = OpLabel + %61 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %61 + OpReturn + OpFunctionEnd + %main = OpFunction %void None %45 %63 = OpLabel - %64 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %64 + %64 = OpFunctionCall %void %main_1 + %66 = OpLoad %v4float %x_GLF_color + %67 = OpCompositeConstruct %main_out %66 + %65 = OpFunctionCall %void %tint_symbol_2 %67 OpReturn OpFunctionEnd - %main = OpFunction %void None %48 - %66 = OpLabel - %67 = OpFunctionCall %void %main_1 - %69 = OpLoad %v4float %x_GLF_color - %70 = OpCompositeConstruct %main_out %69 - %68 = OpFunctionCall %void %tint_symbol_2 %70 - OpReturn - OpFunctionEnd -1:1: The continue construct with the continue target 23[%23] is not post dominated by the back-edge block 44[%44] - %44 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.spvasm.expected.spvasm index eb0445442e..5b0ff4d6b3 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 636 +; Bound: 633 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -129,9 +127,9 @@ SKIP: FAILED %float_1 = OpConstant %float 1 %int_100 = OpConstant %int 100 %float_8 = OpConstant %float 8 - %623 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %620 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 %main_out = OpTypeStruct %v4float - %624 = OpTypeFunction %void %main_out + %621 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %12 %15 = OpLabel %m23 = OpVariable %_ptr_Function_mat2v3float Function %20 @@ -773,415 +771,405 @@ SKIP: FAILED %452 = OpLabel %456 = OpLoad %int %x_GLF_global_loop_count %458 = OpSLessThan %bool %456 %int_98 - OpSelectionMerge %459 None - OpBranchConditional %458 %460 %461 - %460 = OpLabel - OpBranch %459 - %461 = OpLabel - OpBranch %451 - %459 = OpLabel - OpBranch %450 + OpBranchConditional %458 %450 %451 %451 = OpLabel - %462 = OpLoad %int %i_37 + %459 = OpLoad %int %i_37 + %460 = OpLoad %int %i_37 + %461 = OpAccessChain %_ptr_Function_float %m23 %459 %460 + OpStore %461 %float_1 %463 = OpLoad %int %i_37 - %464 = OpAccessChain %_ptr_Function_float %m23 %462 %463 - OpStore %464 %float_1 + %464 = OpLoad %int %i_37 + %465 = OpAccessChain %_ptr_Function_float %m24 %463 %464 + OpStore %465 %float_1 %466 = OpLoad %int %i_37 %467 = OpLoad %int %i_37 - %468 = OpAccessChain %_ptr_Function_float %m24 %466 %467 + %468 = OpAccessChain %_ptr_Function_float %m32 %466 %467 OpStore %468 %float_1 %469 = OpLoad %int %i_37 %470 = OpLoad %int %i_37 - %471 = OpAccessChain %_ptr_Function_float %m32 %469 %470 + %471 = OpAccessChain %_ptr_Function_float %m33 %469 %470 OpStore %471 %float_1 %472 = OpLoad %int %i_37 %473 = OpLoad %int %i_37 - %474 = OpAccessChain %_ptr_Function_float %m33 %472 %473 + %474 = OpAccessChain %_ptr_Function_float %m34 %472 %473 OpStore %474 %float_1 %475 = OpLoad %int %i_37 %476 = OpLoad %int %i_37 - %477 = OpAccessChain %_ptr_Function_float %m34 %475 %476 + %477 = OpAccessChain %_ptr_Function_float %m42 %475 %476 OpStore %477 %float_1 %478 = OpLoad %int %i_37 %479 = OpLoad %int %i_37 - %480 = OpAccessChain %_ptr_Function_float %m42 %478 %479 + %480 = OpAccessChain %_ptr_Function_float %m43 %478 %479 OpStore %480 %float_1 %481 = OpLoad %int %i_37 %482 = OpLoad %int %i_37 - %483 = OpAccessChain %_ptr_Function_float %m43 %481 %482 + %483 = OpAccessChain %_ptr_Function_float %m44 %481 %482 OpStore %483 %float_1 - %484 = OpLoad %int %i_37 - %485 = OpLoad %int %i_37 - %486 = OpAccessChain %_ptr_Function_float %m44 %484 %485 - OpStore %486 %float_1 OpBranch %443 %443 = OpLabel - %487 = OpLoad %int %i_37 - %488 = OpIAdd %int %487 %int_1 - OpStore %i_37 %488 + %484 = OpLoad %int %i_37 + %485 = OpIAdd %int %484 %int_1 + OpStore %i_37 %485 OpBranch %441 %442 = OpLabel OpBranch %434 %434 = OpLabel - %489 = OpLoad %int %i_36 - %490 = OpIAdd %int %489 %int_1 - OpStore %i_36 %490 + %486 = OpLoad %int %i_36 + %487 = OpIAdd %int %486 %int_1 + OpStore %i_36 %487 OpBranch %432 %433 = OpLabel OpBranch %425 %425 = OpLabel - %491 = OpLoad %int %i_35 - %492 = OpIAdd %int %491 %int_1 - OpStore %i_35 %492 + %488 = OpLoad %int %i_35 + %489 = OpIAdd %int %488 %int_1 + OpStore %i_35 %489 OpBranch %423 %424 = OpLabel OpBranch %416 %416 = OpLabel - %493 = OpLoad %int %i_34 - %494 = OpIAdd %int %493 %int_1 - OpStore %i_34 %494 + %490 = OpLoad %int %i_34 + %491 = OpIAdd %int %490 %int_1 + OpStore %i_34 %491 OpBranch %414 %415 = OpLabel OpBranch %407 %407 = OpLabel - %495 = OpLoad %int %i_33 - %496 = OpIAdd %int %495 %int_1 - OpStore %i_33 %496 + %492 = OpLoad %int %i_33 + %493 = OpIAdd %int %492 %int_1 + OpStore %i_33 %493 OpBranch %405 %406 = OpLabel OpBranch %398 %398 = OpLabel - %497 = OpLoad %int %i_32 - %498 = OpIAdd %int %497 %int_1 - OpStore %i_32 %498 + %494 = OpLoad %int %i_32 + %495 = OpIAdd %int %494 %int_1 + OpStore %i_32 %495 OpBranch %396 %397 = OpLabel OpBranch %389 %389 = OpLabel - %499 = OpLoad %int %i_31 - %500 = OpIAdd %int %499 %int_1 - OpStore %i_31 %500 + %496 = OpLoad %int %i_31 + %497 = OpIAdd %int %496 %int_1 + OpStore %i_31 %497 OpBranch %387 %388 = OpLabel OpBranch %380 %380 = OpLabel - %501 = OpLoad %int %i_30 - %502 = OpIAdd %int %501 %int_1 - OpStore %i_30 %502 + %498 = OpLoad %int %i_30 + %499 = OpIAdd %int %498 %int_1 + OpStore %i_30 %499 OpBranch %378 %379 = OpLabel OpBranch %371 %371 = OpLabel - %503 = OpLoad %int %i_29 - %504 = OpIAdd %int %503 %int_1 - OpStore %i_29 %504 + %500 = OpLoad %int %i_29 + %501 = OpIAdd %int %500 %int_1 + OpStore %i_29 %501 OpBranch %369 %370 = OpLabel OpBranch %362 %362 = OpLabel - %505 = OpLoad %int %i_28 - %506 = OpIAdd %int %505 %int_1 - OpStore %i_28 %506 + %502 = OpLoad %int %i_28 + %503 = OpIAdd %int %502 %int_1 + OpStore %i_28 %503 OpBranch %360 %361 = OpLabel OpBranch %353 %353 = OpLabel - %507 = OpLoad %int %i_27 - %508 = OpIAdd %int %507 %int_1 - OpStore %i_27 %508 + %504 = OpLoad %int %i_27 + %505 = OpIAdd %int %504 %int_1 + OpStore %i_27 %505 OpBranch %351 %352 = OpLabel OpBranch %344 %344 = OpLabel - %509 = OpLoad %int %i_26 - %510 = OpIAdd %int %509 %int_1 - OpStore %i_26 %510 + %506 = OpLoad %int %i_26 + %507 = OpIAdd %int %506 %int_1 + OpStore %i_26 %507 OpBranch %342 %343 = OpLabel OpBranch %335 %335 = OpLabel - %511 = OpLoad %int %i_25 - %512 = OpIAdd %int %511 %int_1 - OpStore %i_25 %512 + %508 = OpLoad %int %i_25 + %509 = OpIAdd %int %508 %int_1 + OpStore %i_25 %509 OpBranch %333 %334 = OpLabel OpBranch %326 %326 = OpLabel - %513 = OpLoad %int %i_24 - %514 = OpIAdd %int %513 %int_1 - OpStore %i_24 %514 + %510 = OpLoad %int %i_24 + %511 = OpIAdd %int %510 %int_1 + OpStore %i_24 %511 OpBranch %324 %325 = OpLabel OpBranch %317 %317 = OpLabel - %515 = OpLoad %int %i_23 - %516 = OpIAdd %int %515 %int_1 - OpStore %i_23 %516 + %512 = OpLoad %int %i_23 + %513 = OpIAdd %int %512 %int_1 + OpStore %i_23 %513 OpBranch %315 %316 = OpLabel OpBranch %308 %308 = OpLabel - %517 = OpLoad %int %i_22 - %518 = OpIAdd %int %517 %int_1 - OpStore %i_22 %518 + %514 = OpLoad %int %i_22 + %515 = OpIAdd %int %514 %int_1 + OpStore %i_22 %515 OpBranch %306 %307 = OpLabel OpBranch %299 %299 = OpLabel - %519 = OpLoad %int %i_21 - %520 = OpIAdd %int %519 %int_1 - OpStore %i_21 %520 + %516 = OpLoad %int %i_21 + %517 = OpIAdd %int %516 %int_1 + OpStore %i_21 %517 OpBranch %297 %298 = OpLabel OpBranch %290 %290 = OpLabel - %521 = OpLoad %int %i_20 - %522 = OpIAdd %int %521 %int_1 - OpStore %i_20 %522 + %518 = OpLoad %int %i_20 + %519 = OpIAdd %int %518 %int_1 + OpStore %i_20 %519 OpBranch %288 %289 = OpLabel OpBranch %281 %281 = OpLabel - %523 = OpLoad %int %i_19 - %524 = OpIAdd %int %523 %int_1 - OpStore %i_19 %524 + %520 = OpLoad %int %i_19 + %521 = OpIAdd %int %520 %int_1 + OpStore %i_19 %521 OpBranch %279 %280 = OpLabel OpBranch %272 %272 = OpLabel - %525 = OpLoad %int %i_18 - %526 = OpIAdd %int %525 %int_1 - OpStore %i_18 %526 + %522 = OpLoad %int %i_18 + %523 = OpIAdd %int %522 %int_1 + OpStore %i_18 %523 OpBranch %270 %271 = OpLabel OpBranch %263 %263 = OpLabel - %527 = OpLoad %int %i_17 - %528 = OpIAdd %int %527 %int_1 - OpStore %i_17 %528 + %524 = OpLoad %int %i_17 + %525 = OpIAdd %int %524 %int_1 + OpStore %i_17 %525 OpBranch %261 %262 = OpLabel OpBranch %254 %254 = OpLabel - %529 = OpLoad %int %i_16 - %530 = OpIAdd %int %529 %int_1 - OpStore %i_16 %530 + %526 = OpLoad %int %i_16 + %527 = OpIAdd %int %526 %int_1 + OpStore %i_16 %527 OpBranch %252 %253 = OpLabel OpBranch %245 %245 = OpLabel - %531 = OpLoad %int %i_15 - %532 = OpIAdd %int %531 %int_1 - OpStore %i_15 %532 + %528 = OpLoad %int %i_15 + %529 = OpIAdd %int %528 %int_1 + OpStore %i_15 %529 OpBranch %243 %244 = OpLabel OpBranch %236 %236 = OpLabel - %533 = OpLoad %int %i_14 - %534 = OpIAdd %int %533 %int_1 - OpStore %i_14 %534 + %530 = OpLoad %int %i_14 + %531 = OpIAdd %int %530 %int_1 + OpStore %i_14 %531 OpBranch %234 %235 = OpLabel OpBranch %227 %227 = OpLabel - %535 = OpLoad %int %i_13 - %536 = OpIAdd %int %535 %int_1 - OpStore %i_13 %536 + %532 = OpLoad %int %i_13 + %533 = OpIAdd %int %532 %int_1 + OpStore %i_13 %533 OpBranch %225 %226 = OpLabel OpBranch %218 %218 = OpLabel - %537 = OpLoad %int %i_12 - %538 = OpIAdd %int %537 %int_1 - OpStore %i_12 %538 + %534 = OpLoad %int %i_12 + %535 = OpIAdd %int %534 %int_1 + OpStore %i_12 %535 OpBranch %216 %217 = OpLabel OpBranch %209 %209 = OpLabel - %539 = OpLoad %int %i_11 - %540 = OpIAdd %int %539 %int_1 - OpStore %i_11 %540 + %536 = OpLoad %int %i_11 + %537 = OpIAdd %int %536 %int_1 + OpStore %i_11 %537 OpBranch %207 %208 = OpLabel OpBranch %200 %200 = OpLabel - %541 = OpLoad %int %i_10 - %542 = OpIAdd %int %541 %int_1 - OpStore %i_10 %542 + %538 = OpLoad %int %i_10 + %539 = OpIAdd %int %538 %int_1 + OpStore %i_10 %539 OpBranch %198 %199 = OpLabel OpBranch %191 %191 = OpLabel - %543 = OpLoad %int %i_9 - %544 = OpIAdd %int %543 %int_1 - OpStore %i_9 %544 + %540 = OpLoad %int %i_9 + %541 = OpIAdd %int %540 %int_1 + OpStore %i_9 %541 OpBranch %189 %190 = OpLabel OpBranch %182 %182 = OpLabel - %545 = OpLoad %int %i_8 - %546 = OpIAdd %int %545 %int_1 - OpStore %i_8 %546 + %542 = OpLoad %int %i_8 + %543 = OpIAdd %int %542 %int_1 + OpStore %i_8 %543 OpBranch %180 %181 = OpLabel OpBranch %173 %173 = OpLabel - %547 = OpLoad %int %i_7 - %548 = OpIAdd %int %547 %int_1 - OpStore %i_7 %548 + %544 = OpLoad %int %i_7 + %545 = OpIAdd %int %544 %int_1 + OpStore %i_7 %545 OpBranch %171 %172 = OpLabel OpBranch %164 %164 = OpLabel - %549 = OpLoad %int %i_6 - %550 = OpIAdd %int %549 %int_1 - OpStore %i_6 %550 + %546 = OpLoad %int %i_6 + %547 = OpIAdd %int %546 %int_1 + OpStore %i_6 %547 OpBranch %162 %163 = OpLabel OpBranch %155 %155 = OpLabel - %551 = OpLoad %int %i_5 - %552 = OpIAdd %int %551 %int_1 - OpStore %i_5 %552 + %548 = OpLoad %int %i_5 + %549 = OpIAdd %int %548 %int_1 + OpStore %i_5 %549 OpBranch %153 %154 = OpLabel OpBranch %146 %146 = OpLabel - %553 = OpLoad %int %i_4 - %554 = OpIAdd %int %553 %int_1 - OpStore %i_4 %554 + %550 = OpLoad %int %i_4 + %551 = OpIAdd %int %550 %int_1 + OpStore %i_4 %551 OpBranch %144 %145 = OpLabel OpBranch %137 %137 = OpLabel - %555 = OpLoad %int %i_3 - %556 = OpIAdd %int %555 %int_1 - OpStore %i_3 %556 + %552 = OpLoad %int %i_3 + %553 = OpIAdd %int %552 %int_1 + OpStore %i_3 %553 OpBranch %135 %136 = OpLabel OpBranch %128 %128 = OpLabel - %557 = OpLoad %int %i_2 - %558 = OpIAdd %int %557 %int_1 - OpStore %i_2 %558 + %554 = OpLoad %int %i_2 + %555 = OpIAdd %int %554 %int_1 + OpStore %i_2 %555 OpBranch %126 %127 = OpLabel OpBranch %119 %119 = OpLabel - %559 = OpLoad %int %i_1 - %560 = OpIAdd %int %559 %int_1 - OpStore %i_1 %560 + %556 = OpLoad %int %i_1 + %557 = OpIAdd %int %556 %int_1 + OpStore %i_1 %557 OpBranch %117 %118 = OpLabel OpBranch %108 %108 = OpLabel - %561 = OpLoad %int %i - %562 = OpIAdd %int %561 %int_1 - OpStore %i %562 + %558 = OpLoad %int %i + %559 = OpIAdd %int %558 %int_1 + OpStore %i %559 OpBranch %106 %107 = OpLabel OpStore %sum %float_0 OpStore %r %int_0 + OpBranch %560 + %560 = OpLabel + OpLoopMerge %561 %562 None OpBranch %563 %563 = OpLabel - OpLoopMerge %564 %565 None - OpBranch %566 - %566 = OpLabel - %567 = OpLoad %int %x_GLF_global_loop_count - %569 = OpSLessThan %bool %567 %int_100 - OpSelectionMerge %570 None - OpBranchConditional %569 %571 %572 - %571 = OpLabel - OpBranch %570 - %572 = OpLabel - OpBranch %564 - %570 = OpLabel - %573 = OpLoad %int %x_GLF_global_loop_count - %574 = OpIAdd %int %573 %int_1 - OpStore %x_GLF_global_loop_count %574 - %575 = OpLoad %int %r - %576 = OpAccessChain %_ptr_Function_float %m23 %int_0 %575 - %577 = OpLoad %float %576 - %578 = OpLoad %float %sum - %579 = OpFAdd %float %578 %577 - OpStore %sum %579 - %580 = OpLoad %int %r - %581 = OpAccessChain %_ptr_Function_float %m24 %int_0 %580 - %582 = OpLoad %float %581 - %583 = OpLoad %float %sum - %584 = OpFAdd %float %583 %582 - OpStore %sum %584 - %585 = OpLoad %int %r - %586 = OpAccessChain %_ptr_Function_float %m32 %int_0 %585 - %587 = OpLoad %float %586 - %588 = OpLoad %float %sum - %589 = OpFAdd %float %588 %587 - OpStore %sum %589 - %590 = OpLoad %int %r - %591 = OpAccessChain %_ptr_Function_float %m33 %int_0 %590 - %592 = OpLoad %float %591 - %593 = OpLoad %float %sum - %594 = OpFAdd %float %593 %592 - OpStore %sum %594 - %595 = OpLoad %int %r - %596 = OpAccessChain %_ptr_Function_float %m34 %int_0 %595 - %597 = OpLoad %float %596 - %598 = OpLoad %float %sum - %599 = OpFAdd %float %598 %597 - OpStore %sum %599 - %600 = OpLoad %int %r - %601 = OpAccessChain %_ptr_Function_float %m42 %int_0 %600 - %602 = OpLoad %float %601 - %603 = OpLoad %float %sum - %604 = OpFAdd %float %603 %602 - OpStore %sum %604 - %605 = OpLoad %int %r - %606 = OpAccessChain %_ptr_Function_float %m43 %int_0 %605 - %607 = OpLoad %float %606 - %608 = OpLoad %float %sum - %609 = OpFAdd %float %608 %607 - OpStore %sum %609 - %610 = OpLoad %int %r - %611 = OpAccessChain %_ptr_Function_float %m44 %int_0 %610 - %612 = OpLoad %float %611 - %613 = OpLoad %float %sum - %614 = OpFAdd %float %613 %612 - OpStore %sum %614 - OpBranch %565 - %565 = OpLabel - %615 = OpLoad %int %r - %616 = OpIAdd %int %615 %int_1 - OpStore %r %616 - OpBranch %563 - %564 = OpLabel - %617 = OpLoad %float %sum - %619 = OpFOrdEqual %bool %617 %float_8 - OpSelectionMerge %620 None - OpBranchConditional %619 %621 %622 - %621 = OpLabel - OpStore %x_GLF_color %623 - OpBranch %620 - %622 = OpLabel + %564 = OpLoad %int %x_GLF_global_loop_count + %566 = OpSLessThan %bool %564 %int_100 + OpSelectionMerge %567 None + OpBranchConditional %566 %568 %569 + %568 = OpLabel + OpBranch %567 + %569 = OpLabel + OpBranch %561 + %567 = OpLabel + %570 = OpLoad %int %x_GLF_global_loop_count + %571 = OpIAdd %int %570 %int_1 + OpStore %x_GLF_global_loop_count %571 + %572 = OpLoad %int %r + %573 = OpAccessChain %_ptr_Function_float %m23 %int_0 %572 + %574 = OpLoad %float %573 + %575 = OpLoad %float %sum + %576 = OpFAdd %float %575 %574 + OpStore %sum %576 + %577 = OpLoad %int %r + %578 = OpAccessChain %_ptr_Function_float %m24 %int_0 %577 + %579 = OpLoad %float %578 + %580 = OpLoad %float %sum + %581 = OpFAdd %float %580 %579 + OpStore %sum %581 + %582 = OpLoad %int %r + %583 = OpAccessChain %_ptr_Function_float %m32 %int_0 %582 + %584 = OpLoad %float %583 + %585 = OpLoad %float %sum + %586 = OpFAdd %float %585 %584 + OpStore %sum %586 + %587 = OpLoad %int %r + %588 = OpAccessChain %_ptr_Function_float %m33 %int_0 %587 + %589 = OpLoad %float %588 + %590 = OpLoad %float %sum + %591 = OpFAdd %float %590 %589 + OpStore %sum %591 + %592 = OpLoad %int %r + %593 = OpAccessChain %_ptr_Function_float %m34 %int_0 %592 + %594 = OpLoad %float %593 + %595 = OpLoad %float %sum + %596 = OpFAdd %float %595 %594 + OpStore %sum %596 + %597 = OpLoad %int %r + %598 = OpAccessChain %_ptr_Function_float %m42 %int_0 %597 + %599 = OpLoad %float %598 + %600 = OpLoad %float %sum + %601 = OpFAdd %float %600 %599 + OpStore %sum %601 + %602 = OpLoad %int %r + %603 = OpAccessChain %_ptr_Function_float %m43 %int_0 %602 + %604 = OpLoad %float %603 + %605 = OpLoad %float %sum + %606 = OpFAdd %float %605 %604 + OpStore %sum %606 + %607 = OpLoad %int %r + %608 = OpAccessChain %_ptr_Function_float %m44 %int_0 %607 + %609 = OpLoad %float %608 + %610 = OpLoad %float %sum + %611 = OpFAdd %float %610 %609 + OpStore %sum %611 + OpBranch %562 + %562 = OpLabel + %612 = OpLoad %int %r + %613 = OpIAdd %int %612 %int_1 + OpStore %r %613 + OpBranch %560 + %561 = OpLabel + %614 = OpLoad %float %sum + %616 = OpFOrdEqual %bool %614 %float_8 + OpSelectionMerge %617 None + OpBranchConditional %616 %618 %619 + %618 = OpLabel + OpStore %x_GLF_color %620 + OpBranch %617 + %619 = OpLabel OpStore %x_GLF_color %97 - OpBranch %620 - %620 = OpLabel + OpBranch %617 + %617 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %624 +%tint_symbol_2 = OpFunction %void None %621 %tint_symbol = OpFunctionParameter %main_out - %628 = OpLabel - %629 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %629 + %625 = OpLabel + %626 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %626 OpReturn OpFunctionEnd %main = OpFunction %void None %12 - %631 = OpLabel - %632 = OpFunctionCall %void %main_1 - %634 = OpLoad %v4float %x_GLF_color - %635 = OpCompositeConstruct %main_out %634 - %633 = OpFunctionCall %void %tint_symbol_2 %635 + %628 = OpLabel + %629 = OpFunctionCall %void %main_1 + %631 = OpLoad %v4float %x_GLF_color + %632 = OpCompositeConstruct %main_out %631 + %630 = OpFunctionCall %void %tint_symbol_2 %632 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 452[%452] is not post dominated by the back-edge block 459[%459] - %459 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.wgsl.expected.spvasm index eb0445442e..5b0ff4d6b3 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 636 +; Bound: 633 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -129,9 +127,9 @@ SKIP: FAILED %float_1 = OpConstant %float 1 %int_100 = OpConstant %int 100 %float_8 = OpConstant %float 8 - %623 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %620 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 %main_out = OpTypeStruct %v4float - %624 = OpTypeFunction %void %main_out + %621 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %12 %15 = OpLabel %m23 = OpVariable %_ptr_Function_mat2v3float Function %20 @@ -773,415 +771,405 @@ SKIP: FAILED %452 = OpLabel %456 = OpLoad %int %x_GLF_global_loop_count %458 = OpSLessThan %bool %456 %int_98 - OpSelectionMerge %459 None - OpBranchConditional %458 %460 %461 - %460 = OpLabel - OpBranch %459 - %461 = OpLabel - OpBranch %451 - %459 = OpLabel - OpBranch %450 + OpBranchConditional %458 %450 %451 %451 = OpLabel - %462 = OpLoad %int %i_37 + %459 = OpLoad %int %i_37 + %460 = OpLoad %int %i_37 + %461 = OpAccessChain %_ptr_Function_float %m23 %459 %460 + OpStore %461 %float_1 %463 = OpLoad %int %i_37 - %464 = OpAccessChain %_ptr_Function_float %m23 %462 %463 - OpStore %464 %float_1 + %464 = OpLoad %int %i_37 + %465 = OpAccessChain %_ptr_Function_float %m24 %463 %464 + OpStore %465 %float_1 %466 = OpLoad %int %i_37 %467 = OpLoad %int %i_37 - %468 = OpAccessChain %_ptr_Function_float %m24 %466 %467 + %468 = OpAccessChain %_ptr_Function_float %m32 %466 %467 OpStore %468 %float_1 %469 = OpLoad %int %i_37 %470 = OpLoad %int %i_37 - %471 = OpAccessChain %_ptr_Function_float %m32 %469 %470 + %471 = OpAccessChain %_ptr_Function_float %m33 %469 %470 OpStore %471 %float_1 %472 = OpLoad %int %i_37 %473 = OpLoad %int %i_37 - %474 = OpAccessChain %_ptr_Function_float %m33 %472 %473 + %474 = OpAccessChain %_ptr_Function_float %m34 %472 %473 OpStore %474 %float_1 %475 = OpLoad %int %i_37 %476 = OpLoad %int %i_37 - %477 = OpAccessChain %_ptr_Function_float %m34 %475 %476 + %477 = OpAccessChain %_ptr_Function_float %m42 %475 %476 OpStore %477 %float_1 %478 = OpLoad %int %i_37 %479 = OpLoad %int %i_37 - %480 = OpAccessChain %_ptr_Function_float %m42 %478 %479 + %480 = OpAccessChain %_ptr_Function_float %m43 %478 %479 OpStore %480 %float_1 %481 = OpLoad %int %i_37 %482 = OpLoad %int %i_37 - %483 = OpAccessChain %_ptr_Function_float %m43 %481 %482 + %483 = OpAccessChain %_ptr_Function_float %m44 %481 %482 OpStore %483 %float_1 - %484 = OpLoad %int %i_37 - %485 = OpLoad %int %i_37 - %486 = OpAccessChain %_ptr_Function_float %m44 %484 %485 - OpStore %486 %float_1 OpBranch %443 %443 = OpLabel - %487 = OpLoad %int %i_37 - %488 = OpIAdd %int %487 %int_1 - OpStore %i_37 %488 + %484 = OpLoad %int %i_37 + %485 = OpIAdd %int %484 %int_1 + OpStore %i_37 %485 OpBranch %441 %442 = OpLabel OpBranch %434 %434 = OpLabel - %489 = OpLoad %int %i_36 - %490 = OpIAdd %int %489 %int_1 - OpStore %i_36 %490 + %486 = OpLoad %int %i_36 + %487 = OpIAdd %int %486 %int_1 + OpStore %i_36 %487 OpBranch %432 %433 = OpLabel OpBranch %425 %425 = OpLabel - %491 = OpLoad %int %i_35 - %492 = OpIAdd %int %491 %int_1 - OpStore %i_35 %492 + %488 = OpLoad %int %i_35 + %489 = OpIAdd %int %488 %int_1 + OpStore %i_35 %489 OpBranch %423 %424 = OpLabel OpBranch %416 %416 = OpLabel - %493 = OpLoad %int %i_34 - %494 = OpIAdd %int %493 %int_1 - OpStore %i_34 %494 + %490 = OpLoad %int %i_34 + %491 = OpIAdd %int %490 %int_1 + OpStore %i_34 %491 OpBranch %414 %415 = OpLabel OpBranch %407 %407 = OpLabel - %495 = OpLoad %int %i_33 - %496 = OpIAdd %int %495 %int_1 - OpStore %i_33 %496 + %492 = OpLoad %int %i_33 + %493 = OpIAdd %int %492 %int_1 + OpStore %i_33 %493 OpBranch %405 %406 = OpLabel OpBranch %398 %398 = OpLabel - %497 = OpLoad %int %i_32 - %498 = OpIAdd %int %497 %int_1 - OpStore %i_32 %498 + %494 = OpLoad %int %i_32 + %495 = OpIAdd %int %494 %int_1 + OpStore %i_32 %495 OpBranch %396 %397 = OpLabel OpBranch %389 %389 = OpLabel - %499 = OpLoad %int %i_31 - %500 = OpIAdd %int %499 %int_1 - OpStore %i_31 %500 + %496 = OpLoad %int %i_31 + %497 = OpIAdd %int %496 %int_1 + OpStore %i_31 %497 OpBranch %387 %388 = OpLabel OpBranch %380 %380 = OpLabel - %501 = OpLoad %int %i_30 - %502 = OpIAdd %int %501 %int_1 - OpStore %i_30 %502 + %498 = OpLoad %int %i_30 + %499 = OpIAdd %int %498 %int_1 + OpStore %i_30 %499 OpBranch %378 %379 = OpLabel OpBranch %371 %371 = OpLabel - %503 = OpLoad %int %i_29 - %504 = OpIAdd %int %503 %int_1 - OpStore %i_29 %504 + %500 = OpLoad %int %i_29 + %501 = OpIAdd %int %500 %int_1 + OpStore %i_29 %501 OpBranch %369 %370 = OpLabel OpBranch %362 %362 = OpLabel - %505 = OpLoad %int %i_28 - %506 = OpIAdd %int %505 %int_1 - OpStore %i_28 %506 + %502 = OpLoad %int %i_28 + %503 = OpIAdd %int %502 %int_1 + OpStore %i_28 %503 OpBranch %360 %361 = OpLabel OpBranch %353 %353 = OpLabel - %507 = OpLoad %int %i_27 - %508 = OpIAdd %int %507 %int_1 - OpStore %i_27 %508 + %504 = OpLoad %int %i_27 + %505 = OpIAdd %int %504 %int_1 + OpStore %i_27 %505 OpBranch %351 %352 = OpLabel OpBranch %344 %344 = OpLabel - %509 = OpLoad %int %i_26 - %510 = OpIAdd %int %509 %int_1 - OpStore %i_26 %510 + %506 = OpLoad %int %i_26 + %507 = OpIAdd %int %506 %int_1 + OpStore %i_26 %507 OpBranch %342 %343 = OpLabel OpBranch %335 %335 = OpLabel - %511 = OpLoad %int %i_25 - %512 = OpIAdd %int %511 %int_1 - OpStore %i_25 %512 + %508 = OpLoad %int %i_25 + %509 = OpIAdd %int %508 %int_1 + OpStore %i_25 %509 OpBranch %333 %334 = OpLabel OpBranch %326 %326 = OpLabel - %513 = OpLoad %int %i_24 - %514 = OpIAdd %int %513 %int_1 - OpStore %i_24 %514 + %510 = OpLoad %int %i_24 + %511 = OpIAdd %int %510 %int_1 + OpStore %i_24 %511 OpBranch %324 %325 = OpLabel OpBranch %317 %317 = OpLabel - %515 = OpLoad %int %i_23 - %516 = OpIAdd %int %515 %int_1 - OpStore %i_23 %516 + %512 = OpLoad %int %i_23 + %513 = OpIAdd %int %512 %int_1 + OpStore %i_23 %513 OpBranch %315 %316 = OpLabel OpBranch %308 %308 = OpLabel - %517 = OpLoad %int %i_22 - %518 = OpIAdd %int %517 %int_1 - OpStore %i_22 %518 + %514 = OpLoad %int %i_22 + %515 = OpIAdd %int %514 %int_1 + OpStore %i_22 %515 OpBranch %306 %307 = OpLabel OpBranch %299 %299 = OpLabel - %519 = OpLoad %int %i_21 - %520 = OpIAdd %int %519 %int_1 - OpStore %i_21 %520 + %516 = OpLoad %int %i_21 + %517 = OpIAdd %int %516 %int_1 + OpStore %i_21 %517 OpBranch %297 %298 = OpLabel OpBranch %290 %290 = OpLabel - %521 = OpLoad %int %i_20 - %522 = OpIAdd %int %521 %int_1 - OpStore %i_20 %522 + %518 = OpLoad %int %i_20 + %519 = OpIAdd %int %518 %int_1 + OpStore %i_20 %519 OpBranch %288 %289 = OpLabel OpBranch %281 %281 = OpLabel - %523 = OpLoad %int %i_19 - %524 = OpIAdd %int %523 %int_1 - OpStore %i_19 %524 + %520 = OpLoad %int %i_19 + %521 = OpIAdd %int %520 %int_1 + OpStore %i_19 %521 OpBranch %279 %280 = OpLabel OpBranch %272 %272 = OpLabel - %525 = OpLoad %int %i_18 - %526 = OpIAdd %int %525 %int_1 - OpStore %i_18 %526 + %522 = OpLoad %int %i_18 + %523 = OpIAdd %int %522 %int_1 + OpStore %i_18 %523 OpBranch %270 %271 = OpLabel OpBranch %263 %263 = OpLabel - %527 = OpLoad %int %i_17 - %528 = OpIAdd %int %527 %int_1 - OpStore %i_17 %528 + %524 = OpLoad %int %i_17 + %525 = OpIAdd %int %524 %int_1 + OpStore %i_17 %525 OpBranch %261 %262 = OpLabel OpBranch %254 %254 = OpLabel - %529 = OpLoad %int %i_16 - %530 = OpIAdd %int %529 %int_1 - OpStore %i_16 %530 + %526 = OpLoad %int %i_16 + %527 = OpIAdd %int %526 %int_1 + OpStore %i_16 %527 OpBranch %252 %253 = OpLabel OpBranch %245 %245 = OpLabel - %531 = OpLoad %int %i_15 - %532 = OpIAdd %int %531 %int_1 - OpStore %i_15 %532 + %528 = OpLoad %int %i_15 + %529 = OpIAdd %int %528 %int_1 + OpStore %i_15 %529 OpBranch %243 %244 = OpLabel OpBranch %236 %236 = OpLabel - %533 = OpLoad %int %i_14 - %534 = OpIAdd %int %533 %int_1 - OpStore %i_14 %534 + %530 = OpLoad %int %i_14 + %531 = OpIAdd %int %530 %int_1 + OpStore %i_14 %531 OpBranch %234 %235 = OpLabel OpBranch %227 %227 = OpLabel - %535 = OpLoad %int %i_13 - %536 = OpIAdd %int %535 %int_1 - OpStore %i_13 %536 + %532 = OpLoad %int %i_13 + %533 = OpIAdd %int %532 %int_1 + OpStore %i_13 %533 OpBranch %225 %226 = OpLabel OpBranch %218 %218 = OpLabel - %537 = OpLoad %int %i_12 - %538 = OpIAdd %int %537 %int_1 - OpStore %i_12 %538 + %534 = OpLoad %int %i_12 + %535 = OpIAdd %int %534 %int_1 + OpStore %i_12 %535 OpBranch %216 %217 = OpLabel OpBranch %209 %209 = OpLabel - %539 = OpLoad %int %i_11 - %540 = OpIAdd %int %539 %int_1 - OpStore %i_11 %540 + %536 = OpLoad %int %i_11 + %537 = OpIAdd %int %536 %int_1 + OpStore %i_11 %537 OpBranch %207 %208 = OpLabel OpBranch %200 %200 = OpLabel - %541 = OpLoad %int %i_10 - %542 = OpIAdd %int %541 %int_1 - OpStore %i_10 %542 + %538 = OpLoad %int %i_10 + %539 = OpIAdd %int %538 %int_1 + OpStore %i_10 %539 OpBranch %198 %199 = OpLabel OpBranch %191 %191 = OpLabel - %543 = OpLoad %int %i_9 - %544 = OpIAdd %int %543 %int_1 - OpStore %i_9 %544 + %540 = OpLoad %int %i_9 + %541 = OpIAdd %int %540 %int_1 + OpStore %i_9 %541 OpBranch %189 %190 = OpLabel OpBranch %182 %182 = OpLabel - %545 = OpLoad %int %i_8 - %546 = OpIAdd %int %545 %int_1 - OpStore %i_8 %546 + %542 = OpLoad %int %i_8 + %543 = OpIAdd %int %542 %int_1 + OpStore %i_8 %543 OpBranch %180 %181 = OpLabel OpBranch %173 %173 = OpLabel - %547 = OpLoad %int %i_7 - %548 = OpIAdd %int %547 %int_1 - OpStore %i_7 %548 + %544 = OpLoad %int %i_7 + %545 = OpIAdd %int %544 %int_1 + OpStore %i_7 %545 OpBranch %171 %172 = OpLabel OpBranch %164 %164 = OpLabel - %549 = OpLoad %int %i_6 - %550 = OpIAdd %int %549 %int_1 - OpStore %i_6 %550 + %546 = OpLoad %int %i_6 + %547 = OpIAdd %int %546 %int_1 + OpStore %i_6 %547 OpBranch %162 %163 = OpLabel OpBranch %155 %155 = OpLabel - %551 = OpLoad %int %i_5 - %552 = OpIAdd %int %551 %int_1 - OpStore %i_5 %552 + %548 = OpLoad %int %i_5 + %549 = OpIAdd %int %548 %int_1 + OpStore %i_5 %549 OpBranch %153 %154 = OpLabel OpBranch %146 %146 = OpLabel - %553 = OpLoad %int %i_4 - %554 = OpIAdd %int %553 %int_1 - OpStore %i_4 %554 + %550 = OpLoad %int %i_4 + %551 = OpIAdd %int %550 %int_1 + OpStore %i_4 %551 OpBranch %144 %145 = OpLabel OpBranch %137 %137 = OpLabel - %555 = OpLoad %int %i_3 - %556 = OpIAdd %int %555 %int_1 - OpStore %i_3 %556 + %552 = OpLoad %int %i_3 + %553 = OpIAdd %int %552 %int_1 + OpStore %i_3 %553 OpBranch %135 %136 = OpLabel OpBranch %128 %128 = OpLabel - %557 = OpLoad %int %i_2 - %558 = OpIAdd %int %557 %int_1 - OpStore %i_2 %558 + %554 = OpLoad %int %i_2 + %555 = OpIAdd %int %554 %int_1 + OpStore %i_2 %555 OpBranch %126 %127 = OpLabel OpBranch %119 %119 = OpLabel - %559 = OpLoad %int %i_1 - %560 = OpIAdd %int %559 %int_1 - OpStore %i_1 %560 + %556 = OpLoad %int %i_1 + %557 = OpIAdd %int %556 %int_1 + OpStore %i_1 %557 OpBranch %117 %118 = OpLabel OpBranch %108 %108 = OpLabel - %561 = OpLoad %int %i - %562 = OpIAdd %int %561 %int_1 - OpStore %i %562 + %558 = OpLoad %int %i + %559 = OpIAdd %int %558 %int_1 + OpStore %i %559 OpBranch %106 %107 = OpLabel OpStore %sum %float_0 OpStore %r %int_0 + OpBranch %560 + %560 = OpLabel + OpLoopMerge %561 %562 None OpBranch %563 %563 = OpLabel - OpLoopMerge %564 %565 None - OpBranch %566 - %566 = OpLabel - %567 = OpLoad %int %x_GLF_global_loop_count - %569 = OpSLessThan %bool %567 %int_100 - OpSelectionMerge %570 None - OpBranchConditional %569 %571 %572 - %571 = OpLabel - OpBranch %570 - %572 = OpLabel - OpBranch %564 - %570 = OpLabel - %573 = OpLoad %int %x_GLF_global_loop_count - %574 = OpIAdd %int %573 %int_1 - OpStore %x_GLF_global_loop_count %574 - %575 = OpLoad %int %r - %576 = OpAccessChain %_ptr_Function_float %m23 %int_0 %575 - %577 = OpLoad %float %576 - %578 = OpLoad %float %sum - %579 = OpFAdd %float %578 %577 - OpStore %sum %579 - %580 = OpLoad %int %r - %581 = OpAccessChain %_ptr_Function_float %m24 %int_0 %580 - %582 = OpLoad %float %581 - %583 = OpLoad %float %sum - %584 = OpFAdd %float %583 %582 - OpStore %sum %584 - %585 = OpLoad %int %r - %586 = OpAccessChain %_ptr_Function_float %m32 %int_0 %585 - %587 = OpLoad %float %586 - %588 = OpLoad %float %sum - %589 = OpFAdd %float %588 %587 - OpStore %sum %589 - %590 = OpLoad %int %r - %591 = OpAccessChain %_ptr_Function_float %m33 %int_0 %590 - %592 = OpLoad %float %591 - %593 = OpLoad %float %sum - %594 = OpFAdd %float %593 %592 - OpStore %sum %594 - %595 = OpLoad %int %r - %596 = OpAccessChain %_ptr_Function_float %m34 %int_0 %595 - %597 = OpLoad %float %596 - %598 = OpLoad %float %sum - %599 = OpFAdd %float %598 %597 - OpStore %sum %599 - %600 = OpLoad %int %r - %601 = OpAccessChain %_ptr_Function_float %m42 %int_0 %600 - %602 = OpLoad %float %601 - %603 = OpLoad %float %sum - %604 = OpFAdd %float %603 %602 - OpStore %sum %604 - %605 = OpLoad %int %r - %606 = OpAccessChain %_ptr_Function_float %m43 %int_0 %605 - %607 = OpLoad %float %606 - %608 = OpLoad %float %sum - %609 = OpFAdd %float %608 %607 - OpStore %sum %609 - %610 = OpLoad %int %r - %611 = OpAccessChain %_ptr_Function_float %m44 %int_0 %610 - %612 = OpLoad %float %611 - %613 = OpLoad %float %sum - %614 = OpFAdd %float %613 %612 - OpStore %sum %614 - OpBranch %565 - %565 = OpLabel - %615 = OpLoad %int %r - %616 = OpIAdd %int %615 %int_1 - OpStore %r %616 - OpBranch %563 - %564 = OpLabel - %617 = OpLoad %float %sum - %619 = OpFOrdEqual %bool %617 %float_8 - OpSelectionMerge %620 None - OpBranchConditional %619 %621 %622 - %621 = OpLabel - OpStore %x_GLF_color %623 - OpBranch %620 - %622 = OpLabel + %564 = OpLoad %int %x_GLF_global_loop_count + %566 = OpSLessThan %bool %564 %int_100 + OpSelectionMerge %567 None + OpBranchConditional %566 %568 %569 + %568 = OpLabel + OpBranch %567 + %569 = OpLabel + OpBranch %561 + %567 = OpLabel + %570 = OpLoad %int %x_GLF_global_loop_count + %571 = OpIAdd %int %570 %int_1 + OpStore %x_GLF_global_loop_count %571 + %572 = OpLoad %int %r + %573 = OpAccessChain %_ptr_Function_float %m23 %int_0 %572 + %574 = OpLoad %float %573 + %575 = OpLoad %float %sum + %576 = OpFAdd %float %575 %574 + OpStore %sum %576 + %577 = OpLoad %int %r + %578 = OpAccessChain %_ptr_Function_float %m24 %int_0 %577 + %579 = OpLoad %float %578 + %580 = OpLoad %float %sum + %581 = OpFAdd %float %580 %579 + OpStore %sum %581 + %582 = OpLoad %int %r + %583 = OpAccessChain %_ptr_Function_float %m32 %int_0 %582 + %584 = OpLoad %float %583 + %585 = OpLoad %float %sum + %586 = OpFAdd %float %585 %584 + OpStore %sum %586 + %587 = OpLoad %int %r + %588 = OpAccessChain %_ptr_Function_float %m33 %int_0 %587 + %589 = OpLoad %float %588 + %590 = OpLoad %float %sum + %591 = OpFAdd %float %590 %589 + OpStore %sum %591 + %592 = OpLoad %int %r + %593 = OpAccessChain %_ptr_Function_float %m34 %int_0 %592 + %594 = OpLoad %float %593 + %595 = OpLoad %float %sum + %596 = OpFAdd %float %595 %594 + OpStore %sum %596 + %597 = OpLoad %int %r + %598 = OpAccessChain %_ptr_Function_float %m42 %int_0 %597 + %599 = OpLoad %float %598 + %600 = OpLoad %float %sum + %601 = OpFAdd %float %600 %599 + OpStore %sum %601 + %602 = OpLoad %int %r + %603 = OpAccessChain %_ptr_Function_float %m43 %int_0 %602 + %604 = OpLoad %float %603 + %605 = OpLoad %float %sum + %606 = OpFAdd %float %605 %604 + OpStore %sum %606 + %607 = OpLoad %int %r + %608 = OpAccessChain %_ptr_Function_float %m44 %int_0 %607 + %609 = OpLoad %float %608 + %610 = OpLoad %float %sum + %611 = OpFAdd %float %610 %609 + OpStore %sum %611 + OpBranch %562 + %562 = OpLabel + %612 = OpLoad %int %r + %613 = OpIAdd %int %612 %int_1 + OpStore %r %613 + OpBranch %560 + %561 = OpLabel + %614 = OpLoad %float %sum + %616 = OpFOrdEqual %bool %614 %float_8 + OpSelectionMerge %617 None + OpBranchConditional %616 %618 %619 + %618 = OpLabel + OpStore %x_GLF_color %620 + OpBranch %617 + %619 = OpLabel OpStore %x_GLF_color %97 - OpBranch %620 - %620 = OpLabel + OpBranch %617 + %617 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %624 +%tint_symbol_2 = OpFunction %void None %621 %tint_symbol = OpFunctionParameter %main_out - %628 = OpLabel - %629 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %629 + %625 = OpLabel + %626 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %626 OpReturn OpFunctionEnd %main = OpFunction %void None %12 - %631 = OpLabel - %632 = OpFunctionCall %void %main_1 - %634 = OpLoad %v4float %x_GLF_color - %635 = OpCompositeConstruct %main_out %634 - %633 = OpFunctionCall %void %tint_symbol_2 %635 + %628 = OpLabel + %629 = OpFunctionCall %void %main_1 + %631 = OpLoad %v4float %x_GLF_color + %632 = OpCompositeConstruct %main_out %631 + %630 = OpFunctionCall %void %tint_symbol_2 %632 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 452[%452] is not post dominated by the back-edge block 459[%459] - %459 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.spvasm.expected.spvasm index 8003194ff8..c8c4a1eb23 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 358 +; Bound: 355 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -93,7 +91,7 @@ SKIP: FAILED %int_3 = OpConstant %int 3 %int_100 = OpConstant %int 100 %main_out = OpTypeStruct %v4float - %346 = OpTypeFunction %void %main_out + %343 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %23 %26 = OpLabel %f = OpVariable %_ptr_Function_float Function %29 @@ -418,206 +416,196 @@ SKIP: FAILED %261 = OpLoad %int %260 %263 = OpISub %int %int_100 %261 %264 = OpSLessThan %bool %258 %263 - OpSelectionMerge %265 None - OpBranchConditional %264 %266 %267 - %266 = OpLabel - OpBranch %265 - %267 = OpLabel - OpBranch %253 - %265 = OpLabel - OpBranch %252 + OpBranchConditional %264 %252 %253 %253 = OpLabel - %268 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 %int_0 - %269 = OpLoad %float %268 - %270 = OpLoad %float %f - %271 = OpFAdd %float %270 %269 - OpStore %f %271 + %265 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 %int_0 + %266 = OpLoad %float %265 + %267 = OpLoad %float %f + %268 = OpFAdd %float %267 %266 + OpStore %f %268 OpBranch %243 %243 = OpLabel - %272 = OpLoad %int %i_14 - %273 = OpIAdd %int %272 %int_1 - OpStore %i_14 %273 + %269 = OpLoad %int %i_14 + %270 = OpIAdd %int %269 %int_1 + OpStore %i_14 %270 OpBranch %241 %242 = OpLabel OpBranch %230 %230 = OpLabel - %274 = OpLoad %int %i_13 - %275 = OpIAdd %int %274 %int_1 - OpStore %i_13 %275 + %271 = OpLoad %int %i_13 + %272 = OpIAdd %int %271 %int_1 + OpStore %i_13 %272 OpBranch %228 %229 = OpLabel OpBranch %217 %217 = OpLabel - %276 = OpLoad %int %i_12 - %277 = OpIAdd %int %276 %int_1 - OpStore %i_12 %277 + %273 = OpLoad %int %i_12 + %274 = OpIAdd %int %273 %int_1 + OpStore %i_12 %274 OpBranch %215 %216 = OpLabel OpBranch %203 %203 = OpLabel - %278 = OpLoad %int %i_11 - %279 = OpIAdd %int %278 %int_1 - OpStore %i_11 %279 + %275 = OpLoad %int %i_11 + %276 = OpIAdd %int %275 %int_1 + OpStore %i_11 %276 OpBranch %201 %202 = OpLabel OpBranch %190 %190 = OpLabel - %280 = OpLoad %int %i_10 - %281 = OpIAdd %int %280 %int_1 - OpStore %i_10 %281 + %277 = OpLoad %int %i_10 + %278 = OpIAdd %int %277 %int_1 + OpStore %i_10 %278 OpBranch %188 %189 = OpLabel OpBranch %177 %177 = OpLabel - %282 = OpLoad %int %i_9 - %283 = OpIAdd %int %282 %int_1 - OpStore %i_9 %283 + %279 = OpLoad %int %i_9 + %280 = OpIAdd %int %279 %int_1 + OpStore %i_9 %280 OpBranch %175 %176 = OpLabel OpBranch %164 %164 = OpLabel - %284 = OpLoad %int %i_8 - %285 = OpIAdd %int %284 %int_1 - OpStore %i_8 %285 + %281 = OpLoad %int %i_8 + %282 = OpIAdd %int %281 %int_1 + OpStore %i_8 %282 OpBranch %162 %163 = OpLabel OpBranch %151 %151 = OpLabel - %286 = OpLoad %int %i_7 - %287 = OpIAdd %int %286 %int_1 - OpStore %i_7 %287 + %283 = OpLoad %int %i_7 + %284 = OpIAdd %int %283 %int_1 + OpStore %i_7 %284 OpBranch %149 %150 = OpLabel OpBranch %138 %138 = OpLabel - %288 = OpLoad %int %i_6 - %289 = OpIAdd %int %288 %int_1 - OpStore %i_6 %289 + %285 = OpLoad %int %i_6 + %286 = OpIAdd %int %285 %int_1 + OpStore %i_6 %286 OpBranch %136 %137 = OpLabel OpBranch %125 %125 = OpLabel - %290 = OpLoad %int %i_5 - %291 = OpIAdd %int %290 %int_1 - OpStore %i_5 %291 + %287 = OpLoad %int %i_5 + %288 = OpIAdd %int %287 %int_1 + OpStore %i_5 %288 OpBranch %123 %124 = OpLabel OpBranch %112 %112 = OpLabel - %292 = OpLoad %int %i_4 - %293 = OpIAdd %int %292 %int_1 - OpStore %i_4 %293 + %289 = OpLoad %int %i_4 + %290 = OpIAdd %int %289 %int_1 + OpStore %i_4 %290 OpBranch %110 %111 = OpLabel OpBranch %99 %99 = OpLabel - %294 = OpLoad %int %i_3 - %295 = OpIAdd %int %294 %int_1 - OpStore %i_3 %295 + %291 = OpLoad %int %i_3 + %292 = OpIAdd %int %291 %int_1 + OpStore %i_3 %292 OpBranch %97 %98 = OpLabel OpBranch %86 %86 = OpLabel - %296 = OpLoad %int %i_2 - %297 = OpIAdd %int %296 %int_1 - OpStore %i_2 %297 + %293 = OpLoad %int %i_2 + %294 = OpIAdd %int %293 %int_1 + OpStore %i_2 %294 OpBranch %84 %85 = OpLabel OpBranch %73 %73 = OpLabel - %298 = OpLoad %int %i_1 - %299 = OpIAdd %int %298 %int_1 - OpStore %i_1 %299 + %295 = OpLoad %int %i_1 + %296 = OpIAdd %int %295 %int_1 + OpStore %i_1 %296 OpBranch %71 %72 = OpLabel OpBranch %59 %59 = OpLabel - %300 = OpLoad %int %i - %301 = OpIAdd %int %300 %int_1 - OpStore %i %301 + %297 = OpLoad %int %i + %298 = OpIAdd %int %297 %int_1 + OpStore %i %298 OpBranch %57 %58 = OpLabel - %302 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 %int_1 - %303 = OpLoad %float %302 - OpStore %sum %303 - %304 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_1 - %305 = OpLoad %int %304 - OpStore %r %305 + %299 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 %int_1 + %300 = OpLoad %float %299 + OpStore %sum %300 + %301 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_1 + %302 = OpLoad %int %301 + OpStore %r %302 + OpBranch %303 + %303 = OpLabel + OpLoopMerge %304 %305 None OpBranch %306 %306 = OpLabel - OpLoopMerge %307 %308 None + %307 = OpLoad %int %x_GLF_global_loop_count + %308 = OpSLessThan %bool %307 %int_100 + OpSelectionMerge %309 None + OpBranchConditional %308 %310 %311 + %310 = OpLabel OpBranch %309 + %311 = OpLabel + OpBranch %304 %309 = OpLabel - %310 = OpLoad %int %x_GLF_global_loop_count - %311 = OpSLessThan %bool %310 %int_100 - OpSelectionMerge %312 None - OpBranchConditional %311 %313 %314 - %313 = OpLabel - OpBranch %312 - %314 = OpLabel - OpBranch %307 - %312 = OpLabel - %315 = OpLoad %int %x_GLF_global_loop_count - %316 = OpIAdd %int %315 %int_1 - OpStore %x_GLF_global_loop_count %316 - %317 = OpLoad %float %f - %318 = OpLoad %float %sum - %319 = OpFAdd %float %318 %317 - OpStore %sum %319 - OpBranch %308 - %308 = OpLabel - %320 = OpLoad %int %r - %321 = OpIAdd %int %320 %int_1 - OpStore %r %321 - OpBranch %306 - %307 = OpLabel - %322 = OpLoad %float %sum - %323 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 %int_2 - %324 = OpLoad %float %323 - %325 = OpFOrdEqual %bool %322 %324 - OpSelectionMerge %326 None - OpBranchConditional %325 %327 %328 - %327 = OpLabel - %329 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_0 - %330 = OpLoad %int %329 - %331 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_1 - %332 = OpLoad %int %331 - %333 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_1 - %334 = OpLoad %int %333 - %335 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_0 - %336 = OpLoad %int %335 - %337 = OpConvertSToF %float %330 - %338 = OpConvertSToF %float %332 - %339 = OpConvertSToF %float %334 - %340 = OpConvertSToF %float %336 - %341 = OpCompositeConstruct %v4float %337 %338 %339 %340 - OpStore %x_GLF_color %341 - OpBranch %326 - %328 = OpLabel - %342 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_1 - %343 = OpLoad %int %342 - %344 = OpConvertSToF %float %343 - %345 = OpCompositeConstruct %v4float %344 %344 %344 %344 - OpStore %x_GLF_color %345 - OpBranch %326 - %326 = OpLabel + %312 = OpLoad %int %x_GLF_global_loop_count + %313 = OpIAdd %int %312 %int_1 + OpStore %x_GLF_global_loop_count %313 + %314 = OpLoad %float %f + %315 = OpLoad %float %sum + %316 = OpFAdd %float %315 %314 + OpStore %sum %316 + OpBranch %305 + %305 = OpLabel + %317 = OpLoad %int %r + %318 = OpIAdd %int %317 %int_1 + OpStore %r %318 + OpBranch %303 + %304 = OpLabel + %319 = OpLoad %float %sum + %320 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 %int_2 + %321 = OpLoad %float %320 + %322 = OpFOrdEqual %bool %319 %321 + OpSelectionMerge %323 None + OpBranchConditional %322 %324 %325 + %324 = OpLabel + %326 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_0 + %327 = OpLoad %int %326 + %328 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_1 + %329 = OpLoad %int %328 + %330 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_1 + %331 = OpLoad %int %330 + %332 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_0 + %333 = OpLoad %int %332 + %334 = OpConvertSToF %float %327 + %335 = OpConvertSToF %float %329 + %336 = OpConvertSToF %float %331 + %337 = OpConvertSToF %float %333 + %338 = OpCompositeConstruct %v4float %334 %335 %336 %337 + OpStore %x_GLF_color %338 + OpBranch %323 + %325 = OpLabel + %339 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_1 + %340 = OpLoad %int %339 + %341 = OpConvertSToF %float %340 + %342 = OpCompositeConstruct %v4float %341 %341 %341 %341 + OpStore %x_GLF_color %342 + OpBranch %323 + %323 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %346 +%tint_symbol_2 = OpFunction %void None %343 %tint_symbol = OpFunctionParameter %main_out - %350 = OpLabel - %351 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %351 + %347 = OpLabel + %348 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %348 OpReturn OpFunctionEnd %main = OpFunction %void None %23 - %353 = OpLabel - %354 = OpFunctionCall %void %main_1 - %356 = OpLoad %v4float %x_GLF_color - %357 = OpCompositeConstruct %main_out %356 - %355 = OpFunctionCall %void %tint_symbol_2 %357 + %350 = OpLabel + %351 = OpFunctionCall %void %main_1 + %353 = OpLoad %v4float %x_GLF_color + %354 = OpCompositeConstruct %main_out %353 + %352 = OpFunctionCall %void %tint_symbol_2 %354 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 254[%254] is not post dominated by the back-edge block 265[%265] - %265 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.wgsl.expected.spvasm index 8003194ff8..c8c4a1eb23 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 358 +; Bound: 355 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -93,7 +91,7 @@ SKIP: FAILED %int_3 = OpConstant %int 3 %int_100 = OpConstant %int 100 %main_out = OpTypeStruct %v4float - %346 = OpTypeFunction %void %main_out + %343 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %23 %26 = OpLabel %f = OpVariable %_ptr_Function_float Function %29 @@ -418,206 +416,196 @@ SKIP: FAILED %261 = OpLoad %int %260 %263 = OpISub %int %int_100 %261 %264 = OpSLessThan %bool %258 %263 - OpSelectionMerge %265 None - OpBranchConditional %264 %266 %267 - %266 = OpLabel - OpBranch %265 - %267 = OpLabel - OpBranch %253 - %265 = OpLabel - OpBranch %252 + OpBranchConditional %264 %252 %253 %253 = OpLabel - %268 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 %int_0 - %269 = OpLoad %float %268 - %270 = OpLoad %float %f - %271 = OpFAdd %float %270 %269 - OpStore %f %271 + %265 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 %int_0 + %266 = OpLoad %float %265 + %267 = OpLoad %float %f + %268 = OpFAdd %float %267 %266 + OpStore %f %268 OpBranch %243 %243 = OpLabel - %272 = OpLoad %int %i_14 - %273 = OpIAdd %int %272 %int_1 - OpStore %i_14 %273 + %269 = OpLoad %int %i_14 + %270 = OpIAdd %int %269 %int_1 + OpStore %i_14 %270 OpBranch %241 %242 = OpLabel OpBranch %230 %230 = OpLabel - %274 = OpLoad %int %i_13 - %275 = OpIAdd %int %274 %int_1 - OpStore %i_13 %275 + %271 = OpLoad %int %i_13 + %272 = OpIAdd %int %271 %int_1 + OpStore %i_13 %272 OpBranch %228 %229 = OpLabel OpBranch %217 %217 = OpLabel - %276 = OpLoad %int %i_12 - %277 = OpIAdd %int %276 %int_1 - OpStore %i_12 %277 + %273 = OpLoad %int %i_12 + %274 = OpIAdd %int %273 %int_1 + OpStore %i_12 %274 OpBranch %215 %216 = OpLabel OpBranch %203 %203 = OpLabel - %278 = OpLoad %int %i_11 - %279 = OpIAdd %int %278 %int_1 - OpStore %i_11 %279 + %275 = OpLoad %int %i_11 + %276 = OpIAdd %int %275 %int_1 + OpStore %i_11 %276 OpBranch %201 %202 = OpLabel OpBranch %190 %190 = OpLabel - %280 = OpLoad %int %i_10 - %281 = OpIAdd %int %280 %int_1 - OpStore %i_10 %281 + %277 = OpLoad %int %i_10 + %278 = OpIAdd %int %277 %int_1 + OpStore %i_10 %278 OpBranch %188 %189 = OpLabel OpBranch %177 %177 = OpLabel - %282 = OpLoad %int %i_9 - %283 = OpIAdd %int %282 %int_1 - OpStore %i_9 %283 + %279 = OpLoad %int %i_9 + %280 = OpIAdd %int %279 %int_1 + OpStore %i_9 %280 OpBranch %175 %176 = OpLabel OpBranch %164 %164 = OpLabel - %284 = OpLoad %int %i_8 - %285 = OpIAdd %int %284 %int_1 - OpStore %i_8 %285 + %281 = OpLoad %int %i_8 + %282 = OpIAdd %int %281 %int_1 + OpStore %i_8 %282 OpBranch %162 %163 = OpLabel OpBranch %151 %151 = OpLabel - %286 = OpLoad %int %i_7 - %287 = OpIAdd %int %286 %int_1 - OpStore %i_7 %287 + %283 = OpLoad %int %i_7 + %284 = OpIAdd %int %283 %int_1 + OpStore %i_7 %284 OpBranch %149 %150 = OpLabel OpBranch %138 %138 = OpLabel - %288 = OpLoad %int %i_6 - %289 = OpIAdd %int %288 %int_1 - OpStore %i_6 %289 + %285 = OpLoad %int %i_6 + %286 = OpIAdd %int %285 %int_1 + OpStore %i_6 %286 OpBranch %136 %137 = OpLabel OpBranch %125 %125 = OpLabel - %290 = OpLoad %int %i_5 - %291 = OpIAdd %int %290 %int_1 - OpStore %i_5 %291 + %287 = OpLoad %int %i_5 + %288 = OpIAdd %int %287 %int_1 + OpStore %i_5 %288 OpBranch %123 %124 = OpLabel OpBranch %112 %112 = OpLabel - %292 = OpLoad %int %i_4 - %293 = OpIAdd %int %292 %int_1 - OpStore %i_4 %293 + %289 = OpLoad %int %i_4 + %290 = OpIAdd %int %289 %int_1 + OpStore %i_4 %290 OpBranch %110 %111 = OpLabel OpBranch %99 %99 = OpLabel - %294 = OpLoad %int %i_3 - %295 = OpIAdd %int %294 %int_1 - OpStore %i_3 %295 + %291 = OpLoad %int %i_3 + %292 = OpIAdd %int %291 %int_1 + OpStore %i_3 %292 OpBranch %97 %98 = OpLabel OpBranch %86 %86 = OpLabel - %296 = OpLoad %int %i_2 - %297 = OpIAdd %int %296 %int_1 - OpStore %i_2 %297 + %293 = OpLoad %int %i_2 + %294 = OpIAdd %int %293 %int_1 + OpStore %i_2 %294 OpBranch %84 %85 = OpLabel OpBranch %73 %73 = OpLabel - %298 = OpLoad %int %i_1 - %299 = OpIAdd %int %298 %int_1 - OpStore %i_1 %299 + %295 = OpLoad %int %i_1 + %296 = OpIAdd %int %295 %int_1 + OpStore %i_1 %296 OpBranch %71 %72 = OpLabel OpBranch %59 %59 = OpLabel - %300 = OpLoad %int %i - %301 = OpIAdd %int %300 %int_1 - OpStore %i %301 + %297 = OpLoad %int %i + %298 = OpIAdd %int %297 %int_1 + OpStore %i %298 OpBranch %57 %58 = OpLabel - %302 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 %int_1 - %303 = OpLoad %float %302 - OpStore %sum %303 - %304 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_1 - %305 = OpLoad %int %304 - OpStore %r %305 + %299 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 %int_1 + %300 = OpLoad %float %299 + OpStore %sum %300 + %301 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_1 + %302 = OpLoad %int %301 + OpStore %r %302 + OpBranch %303 + %303 = OpLabel + OpLoopMerge %304 %305 None OpBranch %306 %306 = OpLabel - OpLoopMerge %307 %308 None + %307 = OpLoad %int %x_GLF_global_loop_count + %308 = OpSLessThan %bool %307 %int_100 + OpSelectionMerge %309 None + OpBranchConditional %308 %310 %311 + %310 = OpLabel OpBranch %309 + %311 = OpLabel + OpBranch %304 %309 = OpLabel - %310 = OpLoad %int %x_GLF_global_loop_count - %311 = OpSLessThan %bool %310 %int_100 - OpSelectionMerge %312 None - OpBranchConditional %311 %313 %314 - %313 = OpLabel - OpBranch %312 - %314 = OpLabel - OpBranch %307 - %312 = OpLabel - %315 = OpLoad %int %x_GLF_global_loop_count - %316 = OpIAdd %int %315 %int_1 - OpStore %x_GLF_global_loop_count %316 - %317 = OpLoad %float %f - %318 = OpLoad %float %sum - %319 = OpFAdd %float %318 %317 - OpStore %sum %319 - OpBranch %308 - %308 = OpLabel - %320 = OpLoad %int %r - %321 = OpIAdd %int %320 %int_1 - OpStore %r %321 - OpBranch %306 - %307 = OpLabel - %322 = OpLoad %float %sum - %323 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 %int_2 - %324 = OpLoad %float %323 - %325 = OpFOrdEqual %bool %322 %324 - OpSelectionMerge %326 None - OpBranchConditional %325 %327 %328 - %327 = OpLabel - %329 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_0 - %330 = OpLoad %int %329 - %331 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_1 - %332 = OpLoad %int %331 - %333 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_1 - %334 = OpLoad %int %333 - %335 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_0 - %336 = OpLoad %int %335 - %337 = OpConvertSToF %float %330 - %338 = OpConvertSToF %float %332 - %339 = OpConvertSToF %float %334 - %340 = OpConvertSToF %float %336 - %341 = OpCompositeConstruct %v4float %337 %338 %339 %340 - OpStore %x_GLF_color %341 - OpBranch %326 - %328 = OpLabel - %342 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_1 - %343 = OpLoad %int %342 - %344 = OpConvertSToF %float %343 - %345 = OpCompositeConstruct %v4float %344 %344 %344 %344 - OpStore %x_GLF_color %345 - OpBranch %326 - %326 = OpLabel + %312 = OpLoad %int %x_GLF_global_loop_count + %313 = OpIAdd %int %312 %int_1 + OpStore %x_GLF_global_loop_count %313 + %314 = OpLoad %float %f + %315 = OpLoad %float %sum + %316 = OpFAdd %float %315 %314 + OpStore %sum %316 + OpBranch %305 + %305 = OpLabel + %317 = OpLoad %int %r + %318 = OpIAdd %int %317 %int_1 + OpStore %r %318 + OpBranch %303 + %304 = OpLabel + %319 = OpLoad %float %sum + %320 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 %int_2 + %321 = OpLoad %float %320 + %322 = OpFOrdEqual %bool %319 %321 + OpSelectionMerge %323 None + OpBranchConditional %322 %324 %325 + %324 = OpLabel + %326 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_0 + %327 = OpLoad %int %326 + %328 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_1 + %329 = OpLoad %int %328 + %330 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_1 + %331 = OpLoad %int %330 + %332 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_0 + %333 = OpLoad %int %332 + %334 = OpConvertSToF %float %327 + %335 = OpConvertSToF %float %329 + %336 = OpConvertSToF %float %331 + %337 = OpConvertSToF %float %333 + %338 = OpCompositeConstruct %v4float %334 %335 %336 %337 + OpStore %x_GLF_color %338 + OpBranch %323 + %325 = OpLabel + %339 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_1 + %340 = OpLoad %int %339 + %341 = OpConvertSToF %float %340 + %342 = OpCompositeConstruct %v4float %341 %341 %341 %341 + OpStore %x_GLF_color %342 + OpBranch %323 + %323 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %346 +%tint_symbol_2 = OpFunction %void None %343 %tint_symbol = OpFunctionParameter %main_out - %350 = OpLabel - %351 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %351 + %347 = OpLabel + %348 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %348 OpReturn OpFunctionEnd %main = OpFunction %void None %23 - %353 = OpLabel - %354 = OpFunctionCall %void %main_1 - %356 = OpLoad %v4float %x_GLF_color - %357 = OpCompositeConstruct %main_out %356 - %355 = OpFunctionCall %void %tint_symbol_2 %357 + %350 = OpLabel + %351 = OpFunctionCall %void %main_1 + %353 = OpLoad %v4float %x_GLF_color + %354 = OpCompositeConstruct %main_out %353 + %352 = OpFunctionCall %void %tint_symbol_2 %354 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 254[%254] is not post dominated by the back-edge block 265[%265] - %265 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.spvasm.expected.spvasm index caa85e8876..d45e7544e4 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 107 +; Bound: 104 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -69,7 +67,7 @@ SKIP: FAILED %float_0 = OpConstant %float 0 %_ptr_Uniform_int = OpTypePointer Uniform %int %main_out = OpTypeStruct %v4float - %95 = OpTypeFunction %void %main_out + %92 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %19 %22 = OpLabel %a = OpVariable %_ptr_Function_float Function %25 @@ -137,46 +135,36 @@ SKIP: FAILED %75 = OpLoad %float %a %77 = OpFOrdEqual %bool %75 %float_0 %76 = OpLogicalNot %bool %77 - OpSelectionMerge %78 None - OpBranchConditional %76 %79 %80 - %79 = OpLabel - OpBranch %78 - %80 = OpLabel - OpBranch %36 - %78 = OpLabel - OpBranch %35 + OpBranchConditional %76 %35 %36 %36 = OpLabel - %82 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_1 - %83 = OpLoad %int %82 - %84 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0 - %85 = OpLoad %int %84 - %86 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0 - %87 = OpLoad %int %86 - %88 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_1 - %89 = OpLoad %int %88 - %90 = OpConvertSToF %float %83 - %91 = OpConvertSToF %float %85 - %92 = OpConvertSToF %float %87 - %93 = OpConvertSToF %float %89 - %94 = OpCompositeConstruct %v4float %90 %91 %92 %93 - OpStore %x_GLF_color %94 + %79 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_1 + %80 = OpLoad %int %79 + %81 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0 + %82 = OpLoad %int %81 + %83 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0 + %84 = OpLoad %int %83 + %85 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_1 + %86 = OpLoad %int %85 + %87 = OpConvertSToF %float %80 + %88 = OpConvertSToF %float %82 + %89 = OpConvertSToF %float %84 + %90 = OpConvertSToF %float %86 + %91 = OpCompositeConstruct %v4float %87 %88 %89 %90 + OpStore %x_GLF_color %91 OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %95 +%tint_symbol_2 = OpFunction %void None %92 %tint_symbol = OpFunctionParameter %main_out - %99 = OpLabel - %100 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %100 + %96 = OpLabel + %97 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %97 OpReturn OpFunctionEnd %main = OpFunction %void None %19 - %102 = OpLabel - %103 = OpFunctionCall %void %main_1 - %105 = OpLoad %v4float %x_GLF_color - %106 = OpCompositeConstruct %main_out %105 - %104 = OpFunctionCall %void %tint_symbol_2 %106 + %99 = OpLabel + %100 = OpFunctionCall %void %main_1 + %102 = OpLoad %v4float %x_GLF_color + %103 = OpCompositeConstruct %main_out %102 + %101 = OpFunctionCall %void %tint_symbol_2 %103 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 37[%37] is not post dominated by the back-edge block 78[%78] - %78 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.wgsl.expected.spvasm index caa85e8876..d45e7544e4 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 107 +; Bound: 104 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -69,7 +67,7 @@ SKIP: FAILED %float_0 = OpConstant %float 0 %_ptr_Uniform_int = OpTypePointer Uniform %int %main_out = OpTypeStruct %v4float - %95 = OpTypeFunction %void %main_out + %92 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %19 %22 = OpLabel %a = OpVariable %_ptr_Function_float Function %25 @@ -137,46 +135,36 @@ SKIP: FAILED %75 = OpLoad %float %a %77 = OpFOrdEqual %bool %75 %float_0 %76 = OpLogicalNot %bool %77 - OpSelectionMerge %78 None - OpBranchConditional %76 %79 %80 - %79 = OpLabel - OpBranch %78 - %80 = OpLabel - OpBranch %36 - %78 = OpLabel - OpBranch %35 + OpBranchConditional %76 %35 %36 %36 = OpLabel - %82 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_1 - %83 = OpLoad %int %82 - %84 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0 - %85 = OpLoad %int %84 - %86 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0 - %87 = OpLoad %int %86 - %88 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_1 - %89 = OpLoad %int %88 - %90 = OpConvertSToF %float %83 - %91 = OpConvertSToF %float %85 - %92 = OpConvertSToF %float %87 - %93 = OpConvertSToF %float %89 - %94 = OpCompositeConstruct %v4float %90 %91 %92 %93 - OpStore %x_GLF_color %94 + %79 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_1 + %80 = OpLoad %int %79 + %81 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0 + %82 = OpLoad %int %81 + %83 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0 + %84 = OpLoad %int %83 + %85 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_1 + %86 = OpLoad %int %85 + %87 = OpConvertSToF %float %80 + %88 = OpConvertSToF %float %82 + %89 = OpConvertSToF %float %84 + %90 = OpConvertSToF %float %86 + %91 = OpCompositeConstruct %v4float %87 %88 %89 %90 + OpStore %x_GLF_color %91 OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %95 +%tint_symbol_2 = OpFunction %void None %92 %tint_symbol = OpFunctionParameter %main_out - %99 = OpLabel - %100 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %100 + %96 = OpLabel + %97 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %97 OpReturn OpFunctionEnd %main = OpFunction %void None %19 - %102 = OpLabel - %103 = OpFunctionCall %void %main_1 - %105 = OpLoad %v4float %x_GLF_color - %106 = OpCompositeConstruct %main_out %105 - %104 = OpFunctionCall %void %tint_symbol_2 %106 + %99 = OpLabel + %100 = OpFunctionCall %void %main_1 + %102 = OpLoad %v4float %x_GLF_color + %103 = OpCompositeConstruct %main_out %102 + %101 = OpFunctionCall %void %tint_symbol_2 %103 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 37[%37] is not post dominated by the back-edge block 78[%78] - %78 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.spvasm.expected.spvasm index 84ab7f4ddf..acba4e0860 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 134 +; Bound: 131 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -78,7 +76,7 @@ SKIP: FAILED %_ptr_Private_float = OpTypePointer Private %float %_ptr_Uniform_float = OpTypePointer Uniform %float %main_out = OpTypeStruct %v4float - %121 = OpTypeFunction %void %main_out + %118 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %23 %26 = OpLabel %a = OpVariable %_ptr_Function_int Function %29 @@ -149,86 +147,76 @@ SKIP: FAILED %82 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_1 %83 = OpLoad %int %82 %84 = OpSLessThan %bool %81 %83 - OpSelectionMerge %85 None - OpBranchConditional %84 %86 %87 - %86 = OpLabel - OpBranch %85 - %87 = OpLabel - OpBranch %66 - %85 = OpLabel - OpBranch %65 + OpBranchConditional %84 %65 %66 %66 = OpLabel - %88 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %89 = OpLoad %float %88 - %90 = OpAccessChain %_ptr_Uniform_float %x_11 %uint_0 %int_0 - %91 = OpLoad %float %90 - %92 = OpFOrdLessThan %bool %89 %91 - OpSelectionMerge %93 None - OpBranchConditional %92 %94 %93 - %94 = OpLabel + %85 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %86 = OpLoad %float %85 + %87 = OpAccessChain %_ptr_Uniform_float %x_11 %uint_0 %int_0 + %88 = OpLoad %float %87 + %89 = OpFOrdLessThan %bool %86 %88 + OpSelectionMerge %90 None + OpBranchConditional %89 %91 %90 + %91 = OpLabel OpBranch %55 - %93 = OpLabel + %90 = OpLabel OpBranch %56 %56 = OpLabel - %95 = OpLoad %int %j - %96 = OpIAdd %int %95 %int_1 - OpStore %j %96 + %92 = OpLoad %int %j + %93 = OpIAdd %int %92 %int_1 + OpStore %j %93 OpBranch %54 %55 = OpLabel OpBranch %41 %41 = OpLabel - %97 = OpLoad %int %i - %98 = OpIAdd %int %97 %int_1 - OpStore %i %98 + %94 = OpLoad %int %i + %95 = OpIAdd %int %94 %int_1 + OpStore %i %95 OpBranch %39 %40 = OpLabel - %99 = OpLoad %int %a - %100 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_1 - %101 = OpLoad %int %100 - %102 = OpIEqual %bool %99 %101 - OpSelectionMerge %103 None - OpBranchConditional %102 %104 %105 - %104 = OpLabel - %106 = OpLoad %int %a - %107 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 - %108 = OpLoad %int %107 - %109 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 - %110 = OpLoad %int %109 - %111 = OpLoad %int %a - %112 = OpConvertSToF %float %106 - %113 = OpConvertSToF %float %108 - %114 = OpConvertSToF %float %110 - %115 = OpConvertSToF %float %111 - %116 = OpCompositeConstruct %v4float %112 %113 %114 %115 - OpStore %x_GLF_color %116 - OpBranch %103 - %105 = OpLabel - %117 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 - %118 = OpLoad %int %117 - %119 = OpConvertSToF %float %118 - %120 = OpCompositeConstruct %v4float %119 %119 %119 %119 - OpStore %x_GLF_color %120 - OpBranch %103 - %103 = OpLabel + %96 = OpLoad %int %a + %97 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_1 + %98 = OpLoad %int %97 + %99 = OpIEqual %bool %96 %98 + OpSelectionMerge %100 None + OpBranchConditional %99 %101 %102 + %101 = OpLabel + %103 = OpLoad %int %a + %104 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 + %105 = OpLoad %int %104 + %106 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 + %107 = OpLoad %int %106 + %108 = OpLoad %int %a + %109 = OpConvertSToF %float %103 + %110 = OpConvertSToF %float %105 + %111 = OpConvertSToF %float %107 + %112 = OpConvertSToF %float %108 + %113 = OpCompositeConstruct %v4float %109 %110 %111 %112 + OpStore %x_GLF_color %113 + OpBranch %100 + %102 = OpLabel + %114 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 + %115 = OpLoad %int %114 + %116 = OpConvertSToF %float %115 + %117 = OpCompositeConstruct %v4float %116 %116 %116 %116 + OpStore %x_GLF_color %117 + OpBranch %100 + %100 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %121 +%tint_symbol_3 = OpFunction %void None %118 %tint_symbol_1 = OpFunctionParameter %main_out - %125 = OpLabel - %126 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %126 + %122 = OpLabel + %123 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %123 OpReturn OpFunctionEnd %main = OpFunction %void None %23 - %128 = OpLabel - %129 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %129 - %130 = OpFunctionCall %void %main_1 - %132 = OpLoad %v4float %x_GLF_color - %133 = OpCompositeConstruct %main_out %132 - %131 = OpFunctionCall %void %tint_symbol_3 %133 + %125 = OpLabel + %126 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %126 + %127 = OpFunctionCall %void %main_1 + %129 = OpLoad %v4float %x_GLF_color + %130 = OpCompositeConstruct %main_out %129 + %128 = OpFunctionCall %void %tint_symbol_3 %130 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 67[%67] is not post dominated by the back-edge block 85[%85] - %85 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.wgsl.expected.spvasm index 84ab7f4ddf..acba4e0860 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 134 +; Bound: 131 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -78,7 +76,7 @@ SKIP: FAILED %_ptr_Private_float = OpTypePointer Private %float %_ptr_Uniform_float = OpTypePointer Uniform %float %main_out = OpTypeStruct %v4float - %121 = OpTypeFunction %void %main_out + %118 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %23 %26 = OpLabel %a = OpVariable %_ptr_Function_int Function %29 @@ -149,86 +147,76 @@ SKIP: FAILED %82 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_1 %83 = OpLoad %int %82 %84 = OpSLessThan %bool %81 %83 - OpSelectionMerge %85 None - OpBranchConditional %84 %86 %87 - %86 = OpLabel - OpBranch %85 - %87 = OpLabel - OpBranch %66 - %85 = OpLabel - OpBranch %65 + OpBranchConditional %84 %65 %66 %66 = OpLabel - %88 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %89 = OpLoad %float %88 - %90 = OpAccessChain %_ptr_Uniform_float %x_11 %uint_0 %int_0 - %91 = OpLoad %float %90 - %92 = OpFOrdLessThan %bool %89 %91 - OpSelectionMerge %93 None - OpBranchConditional %92 %94 %93 - %94 = OpLabel + %85 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %86 = OpLoad %float %85 + %87 = OpAccessChain %_ptr_Uniform_float %x_11 %uint_0 %int_0 + %88 = OpLoad %float %87 + %89 = OpFOrdLessThan %bool %86 %88 + OpSelectionMerge %90 None + OpBranchConditional %89 %91 %90 + %91 = OpLabel OpBranch %55 - %93 = OpLabel + %90 = OpLabel OpBranch %56 %56 = OpLabel - %95 = OpLoad %int %j - %96 = OpIAdd %int %95 %int_1 - OpStore %j %96 + %92 = OpLoad %int %j + %93 = OpIAdd %int %92 %int_1 + OpStore %j %93 OpBranch %54 %55 = OpLabel OpBranch %41 %41 = OpLabel - %97 = OpLoad %int %i - %98 = OpIAdd %int %97 %int_1 - OpStore %i %98 + %94 = OpLoad %int %i + %95 = OpIAdd %int %94 %int_1 + OpStore %i %95 OpBranch %39 %40 = OpLabel - %99 = OpLoad %int %a - %100 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_1 - %101 = OpLoad %int %100 - %102 = OpIEqual %bool %99 %101 - OpSelectionMerge %103 None - OpBranchConditional %102 %104 %105 - %104 = OpLabel - %106 = OpLoad %int %a - %107 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 - %108 = OpLoad %int %107 - %109 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 - %110 = OpLoad %int %109 - %111 = OpLoad %int %a - %112 = OpConvertSToF %float %106 - %113 = OpConvertSToF %float %108 - %114 = OpConvertSToF %float %110 - %115 = OpConvertSToF %float %111 - %116 = OpCompositeConstruct %v4float %112 %113 %114 %115 - OpStore %x_GLF_color %116 - OpBranch %103 - %105 = OpLabel - %117 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 - %118 = OpLoad %int %117 - %119 = OpConvertSToF %float %118 - %120 = OpCompositeConstruct %v4float %119 %119 %119 %119 - OpStore %x_GLF_color %120 - OpBranch %103 - %103 = OpLabel + %96 = OpLoad %int %a + %97 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_1 + %98 = OpLoad %int %97 + %99 = OpIEqual %bool %96 %98 + OpSelectionMerge %100 None + OpBranchConditional %99 %101 %102 + %101 = OpLabel + %103 = OpLoad %int %a + %104 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 + %105 = OpLoad %int %104 + %106 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 + %107 = OpLoad %int %106 + %108 = OpLoad %int %a + %109 = OpConvertSToF %float %103 + %110 = OpConvertSToF %float %105 + %111 = OpConvertSToF %float %107 + %112 = OpConvertSToF %float %108 + %113 = OpCompositeConstruct %v4float %109 %110 %111 %112 + OpStore %x_GLF_color %113 + OpBranch %100 + %102 = OpLabel + %114 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_2 + %115 = OpLoad %int %114 + %116 = OpConvertSToF %float %115 + %117 = OpCompositeConstruct %v4float %116 %116 %116 %116 + OpStore %x_GLF_color %117 + OpBranch %100 + %100 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %121 +%tint_symbol_3 = OpFunction %void None %118 %tint_symbol_1 = OpFunctionParameter %main_out - %125 = OpLabel - %126 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %126 + %122 = OpLabel + %123 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %123 OpReturn OpFunctionEnd %main = OpFunction %void None %23 - %128 = OpLabel - %129 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %129 - %130 = OpFunctionCall %void %main_1 - %132 = OpLoad %v4float %x_GLF_color - %133 = OpCompositeConstruct %main_out %132 - %131 = OpFunctionCall %void %tint_symbol_3 %133 + %125 = OpLabel + %126 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %126 + %127 = OpFunctionCall %void %main_1 + %129 = OpLoad %v4float %x_GLF_color + %130 = OpCompositeConstruct %main_out %129 + %128 = OpFunctionCall %void %tint_symbol_3 %130 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 67[%67] is not post dominated by the back-edge block 85[%85] - %85 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.spvasm.expected.spvasm index 5969228bd2..c85153e042 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 93 +; Bound: 90 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -72,10 +70,10 @@ SKIP: FAILED %float_0 = OpConstant %float 0 %false = OpConstantFalse %bool %float_1 = OpConstant %float 1 - %79 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 - %80 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 + %76 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %77 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 %main_out = OpTypeStruct %v4float - %81 = OpTypeFunction %void %main_out + %78 = OpTypeFunction %void %main_out %func_struct_S_i1_i11_ = OpFunction %void None %12 %arg = OpFunctionParameter %_ptr_Function_S %18 = OpLabel @@ -128,43 +126,33 @@ SKIP: FAILED OpStore %a %float_0 OpBranch %41 %41 = OpLabel - OpSelectionMerge %70 None - OpBranchConditional %false %71 %72 - %71 = OpLabel - OpBranch %70 - %72 = OpLabel - OpBranch %40 - %70 = OpLabel - OpBranch %39 + OpBranchConditional %false %39 %40 %40 = OpLabel - %73 = OpLoad %float %a - %74 = OpFOrdEqual %bool %73 %float_5 - OpSelectionMerge %75 None - OpBranchConditional %74 %76 %77 - %76 = OpLabel - OpStore %x_GLF_color %79 - OpBranch %75 - %77 = OpLabel - OpStore %x_GLF_color %80 - OpBranch %75 - %75 = OpLabel + %70 = OpLoad %float %a + %71 = OpFOrdEqual %bool %70 %float_5 + OpSelectionMerge %72 None + OpBranchConditional %71 %73 %74 + %73 = OpLabel + OpStore %x_GLF_color %76 + OpBranch %72 + %74 = OpLabel + OpStore %x_GLF_color %77 + OpBranch %72 + %72 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %81 +%tint_symbol_2 = OpFunction %void None %78 %tint_symbol = OpFunctionParameter %main_out - %85 = OpLabel - %86 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %86 + %82 = OpLabel + %83 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %83 OpReturn OpFunctionEnd %main = OpFunction %void None %25 - %88 = OpLabel - %89 = OpFunctionCall %void %main_1 - %91 = OpLoad %v4float %x_GLF_color - %92 = OpCompositeConstruct %main_out %91 - %90 = OpFunctionCall %void %tint_symbol_2 %92 + %85 = OpLabel + %86 = OpFunctionCall %void %main_1 + %88 = OpLoad %v4float %x_GLF_color + %89 = OpCompositeConstruct %main_out %88 + %87 = OpFunctionCall %void %tint_symbol_2 %89 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 41[%41] is not post dominated by the back-edge block 70[%70] - %70 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.wgsl.expected.spvasm index 5969228bd2..c85153e042 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 93 +; Bound: 90 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -72,10 +70,10 @@ SKIP: FAILED %float_0 = OpConstant %float 0 %false = OpConstantFalse %bool %float_1 = OpConstant %float 1 - %79 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 - %80 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 + %76 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %77 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 %main_out = OpTypeStruct %v4float - %81 = OpTypeFunction %void %main_out + %78 = OpTypeFunction %void %main_out %func_struct_S_i1_i11_ = OpFunction %void None %12 %arg = OpFunctionParameter %_ptr_Function_S %18 = OpLabel @@ -128,43 +126,33 @@ SKIP: FAILED OpStore %a %float_0 OpBranch %41 %41 = OpLabel - OpSelectionMerge %70 None - OpBranchConditional %false %71 %72 - %71 = OpLabel - OpBranch %70 - %72 = OpLabel - OpBranch %40 - %70 = OpLabel - OpBranch %39 + OpBranchConditional %false %39 %40 %40 = OpLabel - %73 = OpLoad %float %a - %74 = OpFOrdEqual %bool %73 %float_5 - OpSelectionMerge %75 None - OpBranchConditional %74 %76 %77 - %76 = OpLabel - OpStore %x_GLF_color %79 - OpBranch %75 - %77 = OpLabel - OpStore %x_GLF_color %80 - OpBranch %75 - %75 = OpLabel + %70 = OpLoad %float %a + %71 = OpFOrdEqual %bool %70 %float_5 + OpSelectionMerge %72 None + OpBranchConditional %71 %73 %74 + %73 = OpLabel + OpStore %x_GLF_color %76 + OpBranch %72 + %74 = OpLabel + OpStore %x_GLF_color %77 + OpBranch %72 + %72 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %81 +%tint_symbol_2 = OpFunction %void None %78 %tint_symbol = OpFunctionParameter %main_out - %85 = OpLabel - %86 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %86 + %82 = OpLabel + %83 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %83 OpReturn OpFunctionEnd %main = OpFunction %void None %25 - %88 = OpLabel - %89 = OpFunctionCall %void %main_1 - %91 = OpLoad %v4float %x_GLF_color - %92 = OpCompositeConstruct %main_out %91 - %90 = OpFunctionCall %void %tint_symbol_2 %92 + %85 = OpLabel + %86 = OpFunctionCall %void %main_1 + %88 = OpLoad %v4float %x_GLF_color + %89 = OpCompositeConstruct %main_out %88 + %87 = OpFunctionCall %void %tint_symbol_2 %89 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 41[%41] is not post dominated by the back-edge block 70[%70] - %70 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.spvasm.expected.spvasm index fcf0562d62..653b0a1a21 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 72 +; Bound: 69 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -50,7 +48,7 @@ SKIP: FAILED %int_1 = OpConstant %int 1 %bool = OpTypeBool %main_out = OpTypeStruct %v4float - %60 = OpTypeFunction %void %main_out + %57 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %15 %18 = OpLabel %22 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_0 @@ -92,34 +90,24 @@ SKIP: FAILED %54 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_0 %55 = OpLoad %int %54 %56 = OpSGreaterThan %bool %53 %55 - OpSelectionMerge %57 None - OpBranchConditional %56 %58 %59 - %58 = OpLabel - OpBranch %57 - %59 = OpLabel - OpBranch %45 - %57 = OpLabel - OpBranch %44 + OpBranchConditional %56 %44 %45 %45 = OpLabel OpReturn %42 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %60 +%tint_symbol_2 = OpFunction %void None %57 %tint_symbol = OpFunctionParameter %main_out - %64 = OpLabel - %65 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %65 + %61 = OpLabel + %62 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %62 OpReturn OpFunctionEnd %main = OpFunction %void None %15 - %67 = OpLabel - %68 = OpFunctionCall %void %main_1 - %70 = OpLoad %v4float %x_GLF_color - %71 = OpCompositeConstruct %main_out %70 - %69 = OpFunctionCall %void %tint_symbol_2 %71 + %64 = OpLabel + %65 = OpFunctionCall %void %main_1 + %67 = OpLoad %v4float %x_GLF_color + %68 = OpCompositeConstruct %main_out %67 + %66 = OpFunctionCall %void %tint_symbol_2 %68 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 46[%46] is not post dominated by the back-edge block 57[%57] - %57 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.wgsl.expected.spvasm index fcf0562d62..653b0a1a21 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 72 +; Bound: 69 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -50,7 +48,7 @@ SKIP: FAILED %int_1 = OpConstant %int 1 %bool = OpTypeBool %main_out = OpTypeStruct %v4float - %60 = OpTypeFunction %void %main_out + %57 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %15 %18 = OpLabel %22 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_0 @@ -92,34 +90,24 @@ SKIP: FAILED %54 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_0 %55 = OpLoad %int %54 %56 = OpSGreaterThan %bool %53 %55 - OpSelectionMerge %57 None - OpBranchConditional %56 %58 %59 - %58 = OpLabel - OpBranch %57 - %59 = OpLabel - OpBranch %45 - %57 = OpLabel - OpBranch %44 + OpBranchConditional %56 %44 %45 %45 = OpLabel OpReturn %42 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %60 +%tint_symbol_2 = OpFunction %void None %57 %tint_symbol = OpFunctionParameter %main_out - %64 = OpLabel - %65 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %65 + %61 = OpLabel + %62 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %62 OpReturn OpFunctionEnd %main = OpFunction %void None %15 - %67 = OpLabel - %68 = OpFunctionCall %void %main_1 - %70 = OpLoad %v4float %x_GLF_color - %71 = OpCompositeConstruct %main_out %70 - %69 = OpFunctionCall %void %tint_symbol_2 %71 + %64 = OpLabel + %65 = OpFunctionCall %void %main_1 + %67 = OpLoad %v4float %x_GLF_color + %68 = OpCompositeConstruct %main_out %67 + %66 = OpFunctionCall %void %tint_symbol_2 %68 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 46[%46] is not post dominated by the back-edge block 57[%57] - %57 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.spvasm.expected.spvasm index 527ce2e994..b390aed07e 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 82 +; Bound: 79 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -71,7 +69,7 @@ SKIP: FAILED %_ptr_Function_float = OpTypePointer Function %float %_ptr_Private_float = OpTypePointer Private %float %main_out = OpTypeStruct %v4float - %70 = OpTypeFunction %void %main_out + %67 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %15 %18 = OpLabel %i = OpVariable %_ptr_Function_int Function %21 @@ -110,48 +108,38 @@ SKIP: FAILED %50 = OpLabel OpBranch %44 %44 = OpLabel - OpSelectionMerge %55 None - OpBranchConditional %false %56 %57 - %56 = OpLabel - OpBranch %55 - %57 = OpLabel - OpBranch %43 - %55 = OpLabel - OpBranch %42 + OpBranchConditional %false %42 %43 %43 = OpLabel OpBranch %29 %29 = OpLabel - %58 = OpLoad %int %i - %59 = OpIAdd %int %58 %int_1 - OpStore %i %59 + %55 = OpLoad %int %i + %56 = OpIAdd %int %55 %int_1 + OpStore %i %56 OpBranch %27 %28 = OpLabel - %60 = OpAccessChain %_ptr_Uniform_int %x_9 %uint_0 - %61 = OpLoad %int %60 - %64 = OpAccessChain %_ptr_Function_float %v %uint_1 - %65 = OpConvertSToF %float %61 - OpStore %64 %65 - %66 = OpAccessChain %_ptr_Function_float %v %uint_1 - %67 = OpLoad %float %66 - %69 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_1 - OpStore %69 %67 + %57 = OpAccessChain %_ptr_Uniform_int %x_9 %uint_0 + %58 = OpLoad %int %57 + %61 = OpAccessChain %_ptr_Function_float %v %uint_1 + %62 = OpConvertSToF %float %58 + OpStore %61 %62 + %63 = OpAccessChain %_ptr_Function_float %v %uint_1 + %64 = OpLoad %float %63 + %66 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_1 + OpStore %66 %64 OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %70 +%tint_symbol_2 = OpFunction %void None %67 %tint_symbol = OpFunctionParameter %main_out - %74 = OpLabel - %75 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %75 + %71 = OpLabel + %72 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %72 OpReturn OpFunctionEnd %main = OpFunction %void None %15 - %77 = OpLabel - %78 = OpFunctionCall %void %main_1 - %80 = OpLoad %v4float %x_GLF_color - %81 = OpCompositeConstruct %main_out %80 - %79 = OpFunctionCall %void %tint_symbol_2 %81 + %74 = OpLabel + %75 = OpFunctionCall %void %main_1 + %77 = OpLoad %v4float %x_GLF_color + %78 = OpCompositeConstruct %main_out %77 + %76 = OpFunctionCall %void %tint_symbol_2 %78 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 44[%44] is not post dominated by the back-edge block 55[%55] - %55 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.wgsl.expected.spvasm index 527ce2e994..b390aed07e 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 82 +; Bound: 79 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -71,7 +69,7 @@ SKIP: FAILED %_ptr_Function_float = OpTypePointer Function %float %_ptr_Private_float = OpTypePointer Private %float %main_out = OpTypeStruct %v4float - %70 = OpTypeFunction %void %main_out + %67 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %15 %18 = OpLabel %i = OpVariable %_ptr_Function_int Function %21 @@ -110,48 +108,38 @@ SKIP: FAILED %50 = OpLabel OpBranch %44 %44 = OpLabel - OpSelectionMerge %55 None - OpBranchConditional %false %56 %57 - %56 = OpLabel - OpBranch %55 - %57 = OpLabel - OpBranch %43 - %55 = OpLabel - OpBranch %42 + OpBranchConditional %false %42 %43 %43 = OpLabel OpBranch %29 %29 = OpLabel - %58 = OpLoad %int %i - %59 = OpIAdd %int %58 %int_1 - OpStore %i %59 + %55 = OpLoad %int %i + %56 = OpIAdd %int %55 %int_1 + OpStore %i %56 OpBranch %27 %28 = OpLabel - %60 = OpAccessChain %_ptr_Uniform_int %x_9 %uint_0 - %61 = OpLoad %int %60 - %64 = OpAccessChain %_ptr_Function_float %v %uint_1 - %65 = OpConvertSToF %float %61 - OpStore %64 %65 - %66 = OpAccessChain %_ptr_Function_float %v %uint_1 - %67 = OpLoad %float %66 - %69 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_1 - OpStore %69 %67 + %57 = OpAccessChain %_ptr_Uniform_int %x_9 %uint_0 + %58 = OpLoad %int %57 + %61 = OpAccessChain %_ptr_Function_float %v %uint_1 + %62 = OpConvertSToF %float %58 + OpStore %61 %62 + %63 = OpAccessChain %_ptr_Function_float %v %uint_1 + %64 = OpLoad %float %63 + %66 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_1 + OpStore %66 %64 OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %70 +%tint_symbol_2 = OpFunction %void None %67 %tint_symbol = OpFunctionParameter %main_out - %74 = OpLabel - %75 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %75 + %71 = OpLabel + %72 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %72 OpReturn OpFunctionEnd %main = OpFunction %void None %15 - %77 = OpLabel - %78 = OpFunctionCall %void %main_1 - %80 = OpLoad %v4float %x_GLF_color - %81 = OpCompositeConstruct %main_out %80 - %79 = OpFunctionCall %void %tint_symbol_2 %81 + %74 = OpLabel + %75 = OpFunctionCall %void %main_1 + %77 = OpLoad %v4float %x_GLF_color + %78 = OpCompositeConstruct %main_out %77 + %76 = OpFunctionCall %void %tint_symbol_2 %78 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 44[%44] is not post dominated by the back-edge block 55[%55] - %55 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.spvasm index cb7829cf61..aa46334487 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 112 +; Bound: 106 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -79,7 +77,7 @@ SKIP: FAILED %true = OpConstantTrue %bool %_ptr_Uniform_int = OpTypePointer Uniform %int %main_out = OpTypeStruct %v4float - %100 = OpTypeFunction %void %main_out + %94 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %22 %25 = OpLabel %i = OpVariable %_ptr_Function_int Function %28 @@ -106,109 +104,92 @@ SKIP: FAILED OpStore %x_GLF_color %51 OpBranch %46 %46 = OpLabel - OpSelectionMerge %53 None - OpBranchConditional %true %54 %55 - %54 = OpLabel - OpBranch %53 - %55 = OpLabel - OpBranch %45 - %53 = OpLabel - OpBranch %44 + OpBranchConditional %true %44 %45 %45 = OpLabel OpBranch %41 %43 = OpLabel + OpBranch %53 + %53 = OpLabel + OpLoopMerge %54 %55 None OpBranch %56 %56 = OpLabel - OpLoopMerge %57 %58 None - OpBranch %59 - %59 = OpLabel + OpBranch %57 + %57 = OpLabel + OpLoopMerge %58 %59 None OpBranch %60 %60 = OpLabel - OpLoopMerge %61 %62 None - OpBranch %63 - %63 = OpLabel - OpSelectionMerge %64 None - OpBranchConditional %true %65 %66 - %65 = OpLabel - OpBranch %64 - %66 = OpLabel + OpSelectionMerge %61 None + OpBranchConditional %true %62 %63 + %62 = OpLabel OpBranch %61 - %64 = OpLabel - %68 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_1 - %69 = OpLoad %int %68 - OpStore %i %69 + %63 = OpLabel + OpBranch %58 + %61 = OpLabel + %65 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_1 + %66 = OpLoad %int %65 + OpStore %i %66 + OpBranch %67 + %67 = OpLabel + OpLoopMerge %68 %69 None OpBranch %70 %70 = OpLabel - OpLoopMerge %71 %72 None - OpBranch %73 - %73 = OpLabel - %74 = OpLoad %int %i - %75 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_0 - %76 = OpLoad %int %75 - %77 = OpSLessThan %bool %74 %76 - OpSelectionMerge %78 None - OpBranchConditional %77 %79 %80 - %79 = OpLabel - OpBranch %78 - %80 = OpLabel - OpBranch %71 - %78 = OpLabel - %81 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %int_1 - %82 = OpLoad %float %81 - %83 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %int_0 - %84 = OpLoad %float %83 - %85 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %int_0 - %86 = OpLoad %float %85 - %87 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %int_1 - %88 = OpLoad %float %87 - %89 = OpCompositeConstruct %v4float %82 %84 %86 %88 - OpStore %x_GLF_color %89 - OpBranch %72 - %72 = OpLabel - %90 = OpLoad %int %i - %91 = OpIAdd %int %90 %int_1 - OpStore %i %91 - OpBranch %70 - %71 = OpLabel - OpBranch %61 - %62 = OpLabel - OpBranch %60 - %61 = OpLabel + %71 = OpLoad %int %i + %72 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_0 + %73 = OpLoad %int %72 + %74 = OpSLessThan %bool %71 %73 + OpSelectionMerge %75 None + OpBranchConditional %74 %76 %77 + %76 = OpLabel + OpBranch %75 + %77 = OpLabel + OpBranch %68 + %75 = OpLabel + %78 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %int_1 + %79 = OpLoad %float %78 + %80 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %int_0 + %81 = OpLoad %float %80 + %82 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %int_0 + %83 = OpLoad %float %82 + %84 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %int_1 + %85 = OpLoad %float %84 + %86 = OpCompositeConstruct %v4float %79 %81 %83 %85 + OpStore %x_GLF_color %86 + OpBranch %69 + %69 = OpLabel + %87 = OpLoad %int %i + %88 = OpIAdd %int %87 %int_1 + OpStore %i %88 + OpBranch %67 + %68 = OpLabel OpBranch %58 - %58 = OpLabel - %92 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 - %93 = OpLoad %float %92 - %94 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %int_0 - %95 = OpLoad %float %94 - %96 = OpFOrdGreaterThan %bool %93 %95 - OpSelectionMerge %97 None - OpBranchConditional %96 %98 %99 - %98 = OpLabel - OpBranch %97 - %99 = OpLabel + %59 = OpLabel OpBranch %57 - %97 = OpLabel - OpBranch %56 - %57 = OpLabel + %58 = OpLabel + OpBranch %55 + %55 = OpLabel + %89 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 + %90 = OpLoad %float %89 + %91 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %int_0 + %92 = OpLoad %float %91 + %93 = OpFOrdGreaterThan %bool %90 %92 + OpBranchConditional %93 %53 %54 + %54 = OpLabel OpBranch %41 %41 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %100 +%tint_symbol_2 = OpFunction %void None %94 %tint_symbol = OpFunctionParameter %main_out - %104 = OpLabel - %105 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %105 + %98 = OpLabel + %99 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %99 OpReturn OpFunctionEnd %main = OpFunction %void None %22 - %107 = OpLabel - %108 = OpFunctionCall %void %main_1 - %110 = OpLoad %v4float %x_GLF_color - %111 = OpCompositeConstruct %main_out %110 - %109 = OpFunctionCall %void %tint_symbol_2 %111 + %101 = OpLabel + %102 = OpFunctionCall %void %main_1 + %104 = OpLoad %v4float %x_GLF_color + %105 = OpCompositeConstruct %main_out %104 + %103 = OpFunctionCall %void %tint_symbol_2 %105 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 46[%46] is not post dominated by the back-edge block 53[%53] - %53 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.spvasm index cb7829cf61..aa46334487 100644 --- a/test/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 112 +; Bound: 106 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -79,7 +77,7 @@ SKIP: FAILED %true = OpConstantTrue %bool %_ptr_Uniform_int = OpTypePointer Uniform %int %main_out = OpTypeStruct %v4float - %100 = OpTypeFunction %void %main_out + %94 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %22 %25 = OpLabel %i = OpVariable %_ptr_Function_int Function %28 @@ -106,109 +104,92 @@ SKIP: FAILED OpStore %x_GLF_color %51 OpBranch %46 %46 = OpLabel - OpSelectionMerge %53 None - OpBranchConditional %true %54 %55 - %54 = OpLabel - OpBranch %53 - %55 = OpLabel - OpBranch %45 - %53 = OpLabel - OpBranch %44 + OpBranchConditional %true %44 %45 %45 = OpLabel OpBranch %41 %43 = OpLabel + OpBranch %53 + %53 = OpLabel + OpLoopMerge %54 %55 None OpBranch %56 %56 = OpLabel - OpLoopMerge %57 %58 None - OpBranch %59 - %59 = OpLabel + OpBranch %57 + %57 = OpLabel + OpLoopMerge %58 %59 None OpBranch %60 %60 = OpLabel - OpLoopMerge %61 %62 None - OpBranch %63 - %63 = OpLabel - OpSelectionMerge %64 None - OpBranchConditional %true %65 %66 - %65 = OpLabel - OpBranch %64 - %66 = OpLabel + OpSelectionMerge %61 None + OpBranchConditional %true %62 %63 + %62 = OpLabel OpBranch %61 - %64 = OpLabel - %68 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_1 - %69 = OpLoad %int %68 - OpStore %i %69 + %63 = OpLabel + OpBranch %58 + %61 = OpLabel + %65 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_1 + %66 = OpLoad %int %65 + OpStore %i %66 + OpBranch %67 + %67 = OpLabel + OpLoopMerge %68 %69 None OpBranch %70 %70 = OpLabel - OpLoopMerge %71 %72 None - OpBranch %73 - %73 = OpLabel - %74 = OpLoad %int %i - %75 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_0 - %76 = OpLoad %int %75 - %77 = OpSLessThan %bool %74 %76 - OpSelectionMerge %78 None - OpBranchConditional %77 %79 %80 - %79 = OpLabel - OpBranch %78 - %80 = OpLabel - OpBranch %71 - %78 = OpLabel - %81 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %int_1 - %82 = OpLoad %float %81 - %83 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %int_0 - %84 = OpLoad %float %83 - %85 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %int_0 - %86 = OpLoad %float %85 - %87 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %int_1 - %88 = OpLoad %float %87 - %89 = OpCompositeConstruct %v4float %82 %84 %86 %88 - OpStore %x_GLF_color %89 - OpBranch %72 - %72 = OpLabel - %90 = OpLoad %int %i - %91 = OpIAdd %int %90 %int_1 - OpStore %i %91 - OpBranch %70 - %71 = OpLabel - OpBranch %61 - %62 = OpLabel - OpBranch %60 - %61 = OpLabel + %71 = OpLoad %int %i + %72 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_0 + %73 = OpLoad %int %72 + %74 = OpSLessThan %bool %71 %73 + OpSelectionMerge %75 None + OpBranchConditional %74 %76 %77 + %76 = OpLabel + OpBranch %75 + %77 = OpLabel + OpBranch %68 + %75 = OpLabel + %78 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %int_1 + %79 = OpLoad %float %78 + %80 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %int_0 + %81 = OpLoad %float %80 + %82 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %int_0 + %83 = OpLoad %float %82 + %84 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %int_1 + %85 = OpLoad %float %84 + %86 = OpCompositeConstruct %v4float %79 %81 %83 %85 + OpStore %x_GLF_color %86 + OpBranch %69 + %69 = OpLabel + %87 = OpLoad %int %i + %88 = OpIAdd %int %87 %int_1 + OpStore %i %88 + OpBranch %67 + %68 = OpLabel OpBranch %58 - %58 = OpLabel - %92 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 - %93 = OpLoad %float %92 - %94 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %int_0 - %95 = OpLoad %float %94 - %96 = OpFOrdGreaterThan %bool %93 %95 - OpSelectionMerge %97 None - OpBranchConditional %96 %98 %99 - %98 = OpLabel - OpBranch %97 - %99 = OpLabel + %59 = OpLabel OpBranch %57 - %97 = OpLabel - OpBranch %56 - %57 = OpLabel + %58 = OpLabel + OpBranch %55 + %55 = OpLabel + %89 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 + %90 = OpLoad %float %89 + %91 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %int_0 + %92 = OpLoad %float %91 + %93 = OpFOrdGreaterThan %bool %90 %92 + OpBranchConditional %93 %53 %54 + %54 = OpLabel OpBranch %41 %41 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %100 +%tint_symbol_2 = OpFunction %void None %94 %tint_symbol = OpFunctionParameter %main_out - %104 = OpLabel - %105 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %105 + %98 = OpLabel + %99 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %99 OpReturn OpFunctionEnd %main = OpFunction %void None %22 - %107 = OpLabel - %108 = OpFunctionCall %void %main_1 - %110 = OpLoad %v4float %x_GLF_color - %111 = OpCompositeConstruct %main_out %110 - %109 = OpFunctionCall %void %tint_symbol_2 %111 + %101 = OpLabel + %102 = OpFunctionCall %void %main_1 + %104 = OpLoad %v4float %x_GLF_color + %105 = OpCompositeConstruct %main_out %104 + %103 = OpFunctionCall %void %tint_symbol_2 %105 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 46[%46] is not post dominated by the back-edge block 53[%53] - %53 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.spvasm.expected.spvasm index f3b9a3acca..b6030fb19a 100644 --- a/test/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 134 +; Bound: 131 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -79,10 +77,10 @@ SKIP: FAILED %79 = OpConstantComposite %v4float %float_1 %float_1 %float_0 %float_1 %90 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_1 %_ptr_Private_float = OpTypePointer Private %float - %119 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 - %120 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 + %116 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %117 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 %main_out = OpTypeStruct %v4float - %121 = OpTypeFunction %void %main_out + %118 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %15 %18 = OpLabel %v = OpVariable %_ptr_Function_v2float Function %21 @@ -173,67 +171,57 @@ SKIP: FAILED %50 = OpLabel %93 = OpLoad %int %one %94 = OpSLessThan %bool %93 %int_0 - OpSelectionMerge %95 None - OpBranchConditional %94 %96 %97 - %96 = OpLabel - OpBranch %95 - %97 = OpLabel - OpBranch %49 - %95 = OpLabel - OpBranch %48 + OpBranchConditional %94 %48 %49 %49 = OpLabel - %101 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %102 = OpLoad %float %101 - %103 = OpFOrdGreaterThanEqual %bool %102 %float_0 - OpSelectionMerge %104 None - OpBranchConditional %103 %105 %106 - %105 = OpLabel - %107 = OpAccessChain %_ptr_Function_float %v %uint_1 - %108 = OpLoad %float %107 - %109 = OpFOrdEqual %bool %108 %float_1 - OpStore %x_103_phi %109 - OpSelectionMerge %110 None - OpBranchConditional %109 %111 %110 - %111 = OpLabel - %112 = OpAccessChain %_ptr_Function_float %floats %int_1 - %113 = OpLoad %float %112 - %114 = OpFOrdEqual %bool %113 %float_1 - OpStore %x_102 %114 - %115 = OpLoad %bool %x_102 - OpStore %x_103_phi %115 - OpBranch %110 - %110 = OpLabel - %116 = OpLoad %bool %x_103_phi - OpSelectionMerge %117 None - OpBranchConditional %116 %118 %117 - %118 = OpLabel - OpStore %x_GLF_color %119 - OpBranch %117 - %117 = OpLabel - OpBranch %104 - %106 = OpLabel - OpStore %x_GLF_color %120 - OpBranch %104 - %104 = OpLabel + %98 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %99 = OpLoad %float %98 + %100 = OpFOrdGreaterThanEqual %bool %99 %float_0 + OpSelectionMerge %101 None + OpBranchConditional %100 %102 %103 + %102 = OpLabel + %104 = OpAccessChain %_ptr_Function_float %v %uint_1 + %105 = OpLoad %float %104 + %106 = OpFOrdEqual %bool %105 %float_1 + OpStore %x_103_phi %106 + OpSelectionMerge %107 None + OpBranchConditional %106 %108 %107 + %108 = OpLabel + %109 = OpAccessChain %_ptr_Function_float %floats %int_1 + %110 = OpLoad %float %109 + %111 = OpFOrdEqual %bool %110 %float_1 + OpStore %x_102 %111 + %112 = OpLoad %bool %x_102 + OpStore %x_103_phi %112 + OpBranch %107 + %107 = OpLabel + %113 = OpLoad %bool %x_103_phi + OpSelectionMerge %114 None + OpBranchConditional %113 %115 %114 + %115 = OpLabel + OpStore %x_GLF_color %116 + OpBranch %114 + %114 = OpLabel + OpBranch %101 + %103 = OpLabel + OpStore %x_GLF_color %117 + OpBranch %101 + %101 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %121 +%tint_symbol_3 = OpFunction %void None %118 %tint_symbol_1 = OpFunctionParameter %main_out - %125 = OpLabel - %126 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %126 + %122 = OpLabel + %123 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %123 OpReturn OpFunctionEnd %main = OpFunction %void None %15 - %128 = OpLabel - %129 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %129 - %130 = OpFunctionCall %void %main_1 - %132 = OpLoad %v4float %x_GLF_color - %133 = OpCompositeConstruct %main_out %132 - %131 = OpFunctionCall %void %tint_symbol_3 %133 + %125 = OpLabel + %126 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %126 + %127 = OpFunctionCall %void %main_1 + %129 = OpLoad %v4float %x_GLF_color + %130 = OpCompositeConstruct %main_out %129 + %128 = OpFunctionCall %void %tint_symbol_3 %130 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 50[%50] is not post dominated by the back-edge block 95[%95] - %95 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.wgsl.expected.spvasm index f3b9a3acca..b6030fb19a 100644 --- a/test/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 134 +; Bound: 131 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -79,10 +77,10 @@ SKIP: FAILED %79 = OpConstantComposite %v4float %float_1 %float_1 %float_0 %float_1 %90 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_1 %_ptr_Private_float = OpTypePointer Private %float - %119 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 - %120 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 + %116 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %117 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 %main_out = OpTypeStruct %v4float - %121 = OpTypeFunction %void %main_out + %118 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %15 %18 = OpLabel %v = OpVariable %_ptr_Function_v2float Function %21 @@ -173,67 +171,57 @@ SKIP: FAILED %50 = OpLabel %93 = OpLoad %int %one %94 = OpSLessThan %bool %93 %int_0 - OpSelectionMerge %95 None - OpBranchConditional %94 %96 %97 - %96 = OpLabel - OpBranch %95 - %97 = OpLabel - OpBranch %49 - %95 = OpLabel - OpBranch %48 + OpBranchConditional %94 %48 %49 %49 = OpLabel - %101 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %102 = OpLoad %float %101 - %103 = OpFOrdGreaterThanEqual %bool %102 %float_0 - OpSelectionMerge %104 None - OpBranchConditional %103 %105 %106 - %105 = OpLabel - %107 = OpAccessChain %_ptr_Function_float %v %uint_1 - %108 = OpLoad %float %107 - %109 = OpFOrdEqual %bool %108 %float_1 - OpStore %x_103_phi %109 - OpSelectionMerge %110 None - OpBranchConditional %109 %111 %110 - %111 = OpLabel - %112 = OpAccessChain %_ptr_Function_float %floats %int_1 - %113 = OpLoad %float %112 - %114 = OpFOrdEqual %bool %113 %float_1 - OpStore %x_102 %114 - %115 = OpLoad %bool %x_102 - OpStore %x_103_phi %115 - OpBranch %110 - %110 = OpLabel - %116 = OpLoad %bool %x_103_phi - OpSelectionMerge %117 None - OpBranchConditional %116 %118 %117 - %118 = OpLabel - OpStore %x_GLF_color %119 - OpBranch %117 - %117 = OpLabel - OpBranch %104 - %106 = OpLabel - OpStore %x_GLF_color %120 - OpBranch %104 - %104 = OpLabel + %98 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %99 = OpLoad %float %98 + %100 = OpFOrdGreaterThanEqual %bool %99 %float_0 + OpSelectionMerge %101 None + OpBranchConditional %100 %102 %103 + %102 = OpLabel + %104 = OpAccessChain %_ptr_Function_float %v %uint_1 + %105 = OpLoad %float %104 + %106 = OpFOrdEqual %bool %105 %float_1 + OpStore %x_103_phi %106 + OpSelectionMerge %107 None + OpBranchConditional %106 %108 %107 + %108 = OpLabel + %109 = OpAccessChain %_ptr_Function_float %floats %int_1 + %110 = OpLoad %float %109 + %111 = OpFOrdEqual %bool %110 %float_1 + OpStore %x_102 %111 + %112 = OpLoad %bool %x_102 + OpStore %x_103_phi %112 + OpBranch %107 + %107 = OpLabel + %113 = OpLoad %bool %x_103_phi + OpSelectionMerge %114 None + OpBranchConditional %113 %115 %114 + %115 = OpLabel + OpStore %x_GLF_color %116 + OpBranch %114 + %114 = OpLabel + OpBranch %101 + %103 = OpLabel + OpStore %x_GLF_color %117 + OpBranch %101 + %101 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %121 +%tint_symbol_3 = OpFunction %void None %118 %tint_symbol_1 = OpFunctionParameter %main_out - %125 = OpLabel - %126 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %126 + %122 = OpLabel + %123 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %123 OpReturn OpFunctionEnd %main = OpFunction %void None %15 - %128 = OpLabel - %129 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %129 - %130 = OpFunctionCall %void %main_1 - %132 = OpLoad %v4float %x_GLF_color - %133 = OpCompositeConstruct %main_out %132 - %131 = OpFunctionCall %void %tint_symbol_3 %133 + %125 = OpLabel + %126 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %126 + %127 = OpFunctionCall %void %main_1 + %129 = OpLoad %v4float %x_GLF_color + %130 = OpCompositeConstruct %main_out %129 + %128 = OpFunctionCall %void %tint_symbol_3 %130 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 50[%50] is not post dominated by the back-edge block 95[%95] - %95 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.spvasm.expected.spvasm index 62ce97121c..dfb82e7aed 100644 --- a/test/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 134 +; Bound: 131 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -214,22 +212,12 @@ SKIP: FAILED %125 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_1 %126 = OpLoad %float %125 %127 = OpFOrdGreaterThan %bool %124 %126 - OpSelectionMerge %128 None - OpBranchConditional %127 %129 %130 - %129 = OpLabel - OpBranch %128 - %130 = OpLabel - OpBranch %67 - %128 = OpLabel - OpBranch %66 + OpBranchConditional %127 %66 %67 %67 = OpLabel OpReturn OpFunctionEnd %main = OpFunction %void None %10 - %132 = OpLabel - %133 = OpFunctionCall %void %main_1 + %129 = OpLabel + %130 = OpFunctionCall %void %main_1 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 68[%68] is not post dominated by the back-edge block 128[%128] - %128 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.wgsl.expected.spvasm index 62ce97121c..dfb82e7aed 100644 --- a/test/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 134 +; Bound: 131 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -214,22 +212,12 @@ SKIP: FAILED %125 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_1 %126 = OpLoad %float %125 %127 = OpFOrdGreaterThan %bool %124 %126 - OpSelectionMerge %128 None - OpBranchConditional %127 %129 %130 - %129 = OpLabel - OpBranch %128 - %130 = OpLabel - OpBranch %67 - %128 = OpLabel - OpBranch %66 + OpBranchConditional %127 %66 %67 %67 = OpLabel OpReturn OpFunctionEnd %main = OpFunction %void None %10 - %132 = OpLabel - %133 = OpFunctionCall %void %main_1 + %129 = OpLabel + %130 = OpFunctionCall %void %main_1 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 68[%68] is not post dominated by the back-edge block 128[%128] - %128 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.spvasm.expected.spvasm index 67f484df66..75a7f744ac 100644 --- a/test/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 71 +; Bound: 68 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -59,9 +57,9 @@ SKIP: FAILED %float_1 = OpConstant %float 1 %true = OpConstantTrue %bool %false = OpConstantFalse %bool - %57 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %54 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 %main_out = OpTypeStruct %v4float - %58 = OpTypeFunction %void %main_out + %55 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %15 %18 = OpLabel %x_46_phi = OpVariable %_ptr_Function_bool Function %26 @@ -97,45 +95,35 @@ SKIP: FAILED OpBranch %28 %29 = OpLabel OpStore %x_46_phi %false - OpSelectionMerge %51 None - OpBranchConditional %false %52 %53 - %52 = OpLabel - OpBranch %51 - %53 = OpLabel - OpBranch %28 - %51 = OpLabel - OpBranch %27 + OpBranchConditional %false %27 %28 %28 = OpLabel - %54 = OpLoad %bool %x_46_phi - OpSelectionMerge %55 None - OpBranchConditional %54 %56 %55 - %56 = OpLabel + %51 = OpLoad %bool %x_46_phi + OpSelectionMerge %52 None + OpBranchConditional %51 %53 %52 + %53 = OpLabel OpBranch %20 - %55 = OpLabel + %52 = OpLabel OpBranch %20 %21 = OpLabel OpBranch %19 %20 = OpLabel - OpStore %x_GLF_color %57 + OpStore %x_GLF_color %54 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %58 +%tint_symbol_3 = OpFunction %void None %55 %tint_symbol_1 = OpFunctionParameter %main_out - %62 = OpLabel - %63 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %63 + %59 = OpLabel + %60 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %60 OpReturn OpFunctionEnd %main = OpFunction %void None %15 - %65 = OpLabel - %66 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %66 - %67 = OpFunctionCall %void %main_1 - %69 = OpLoad %v4float %x_GLF_color - %70 = OpCompositeConstruct %main_out %69 - %68 = OpFunctionCall %void %tint_symbol_3 %70 + %62 = OpLabel + %63 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %63 + %64 = OpFunctionCall %void %main_1 + %66 = OpLoad %v4float %x_GLF_color + %67 = OpCompositeConstruct %main_out %66 + %65 = OpFunctionCall %void %tint_symbol_3 %67 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 29[%29] is not post dominated by the back-edge block 51[%51] - %51 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.wgsl.expected.spvasm index 67f484df66..75a7f744ac 100644 --- a/test/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 71 +; Bound: 68 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -59,9 +57,9 @@ SKIP: FAILED %float_1 = OpConstant %float 1 %true = OpConstantTrue %bool %false = OpConstantFalse %bool - %57 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %54 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 %main_out = OpTypeStruct %v4float - %58 = OpTypeFunction %void %main_out + %55 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %15 %18 = OpLabel %x_46_phi = OpVariable %_ptr_Function_bool Function %26 @@ -97,45 +95,35 @@ SKIP: FAILED OpBranch %28 %29 = OpLabel OpStore %x_46_phi %false - OpSelectionMerge %51 None - OpBranchConditional %false %52 %53 - %52 = OpLabel - OpBranch %51 - %53 = OpLabel - OpBranch %28 - %51 = OpLabel - OpBranch %27 + OpBranchConditional %false %27 %28 %28 = OpLabel - %54 = OpLoad %bool %x_46_phi - OpSelectionMerge %55 None - OpBranchConditional %54 %56 %55 - %56 = OpLabel + %51 = OpLoad %bool %x_46_phi + OpSelectionMerge %52 None + OpBranchConditional %51 %53 %52 + %53 = OpLabel OpBranch %20 - %55 = OpLabel + %52 = OpLabel OpBranch %20 %21 = OpLabel OpBranch %19 %20 = OpLabel - OpStore %x_GLF_color %57 + OpStore %x_GLF_color %54 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %58 +%tint_symbol_3 = OpFunction %void None %55 %tint_symbol_1 = OpFunctionParameter %main_out - %62 = OpLabel - %63 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %63 + %59 = OpLabel + %60 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %60 OpReturn OpFunctionEnd %main = OpFunction %void None %15 - %65 = OpLabel - %66 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %66 - %67 = OpFunctionCall %void %main_1 - %69 = OpLoad %v4float %x_GLF_color - %70 = OpCompositeConstruct %main_out %69 - %68 = OpFunctionCall %void %tint_symbol_3 %70 + %62 = OpLabel + %63 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %63 + %64 = OpFunctionCall %void %main_1 + %66 = OpLoad %v4float %x_GLF_color + %67 = OpCompositeConstruct %main_out %66 + %65 = OpFunctionCall %void %tint_symbol_3 %67 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 29[%29] is not post dominated by the back-edge block 51[%51] - %51 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.spvasm.expected.spvasm index 79cac682df..95c10d64b7 100644 --- a/test/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 63 +; Bound: 60 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -56,9 +54,9 @@ SKIP: FAILED %_ptr_Private_float = OpTypePointer Private %float %float_0 = OpConstant %float 0 %false = OpConstantFalse %bool - %49 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %46 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 %main_out = OpTypeStruct %v4float - %50 = OpTypeFunction %void %main_out + %47 = OpTypeFunction %void %main_out %f_ = OpFunction %void None %15 %18 = OpLabel OpBranch %19 @@ -86,40 +84,30 @@ SKIP: FAILED %32 = OpLabel OpKill %21 = OpLabel - OpSelectionMerge %43 None - OpBranchConditional %false %44 %45 - %44 = OpLabel - OpBranch %43 - %45 = OpLabel - OpBranch %20 - %43 = OpLabel - OpBranch %19 + OpBranchConditional %false %19 %20 %20 = OpLabel OpReturn OpFunctionEnd %main_1 = OpFunction %void None %15 - %47 = OpLabel - %48 = OpFunctionCall %void %f_ - OpStore %x_GLF_color %49 + %44 = OpLabel + %45 = OpFunctionCall %void %f_ + OpStore %x_GLF_color %46 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %50 +%tint_symbol_3 = OpFunction %void None %47 %tint_symbol_1 = OpFunctionParameter %main_out - %54 = OpLabel - %55 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %55 + %51 = OpLabel + %52 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %52 OpReturn OpFunctionEnd %main = OpFunction %void None %15 - %57 = OpLabel - %58 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %58 - %59 = OpFunctionCall %void %main_1 - %61 = OpLoad %v4float %x_GLF_color - %62 = OpCompositeConstruct %main_out %61 - %60 = OpFunctionCall %void %tint_symbol_3 %62 + %54 = OpLabel + %55 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %55 + %56 = OpFunctionCall %void %main_1 + %58 = OpLoad %v4float %x_GLF_color + %59 = OpCompositeConstruct %main_out %58 + %57 = OpFunctionCall %void %tint_symbol_3 %59 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 21[%21] is not post dominated by the back-edge block 43[%43] - %43 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.wgsl.expected.spvasm index 79cac682df..95c10d64b7 100644 --- a/test/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 63 +; Bound: 60 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -56,9 +54,9 @@ SKIP: FAILED %_ptr_Private_float = OpTypePointer Private %float %float_0 = OpConstant %float 0 %false = OpConstantFalse %bool - %49 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %46 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 %main_out = OpTypeStruct %v4float - %50 = OpTypeFunction %void %main_out + %47 = OpTypeFunction %void %main_out %f_ = OpFunction %void None %15 %18 = OpLabel OpBranch %19 @@ -86,40 +84,30 @@ SKIP: FAILED %32 = OpLabel OpKill %21 = OpLabel - OpSelectionMerge %43 None - OpBranchConditional %false %44 %45 - %44 = OpLabel - OpBranch %43 - %45 = OpLabel - OpBranch %20 - %43 = OpLabel - OpBranch %19 + OpBranchConditional %false %19 %20 %20 = OpLabel OpReturn OpFunctionEnd %main_1 = OpFunction %void None %15 - %47 = OpLabel - %48 = OpFunctionCall %void %f_ - OpStore %x_GLF_color %49 + %44 = OpLabel + %45 = OpFunctionCall %void %f_ + OpStore %x_GLF_color %46 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %50 +%tint_symbol_3 = OpFunction %void None %47 %tint_symbol_1 = OpFunctionParameter %main_out - %54 = OpLabel - %55 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %55 + %51 = OpLabel + %52 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %52 OpReturn OpFunctionEnd %main = OpFunction %void None %15 - %57 = OpLabel - %58 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %58 - %59 = OpFunctionCall %void %main_1 - %61 = OpLoad %v4float %x_GLF_color - %62 = OpCompositeConstruct %main_out %61 - %60 = OpFunctionCall %void %tint_symbol_3 %62 + %54 = OpLabel + %55 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %55 + %56 = OpFunctionCall %void %main_1 + %58 = OpLoad %v4float %x_GLF_color + %59 = OpCompositeConstruct %main_out %58 + %57 = OpFunctionCall %void %tint_symbol_3 %59 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 21[%21] is not post dominated by the back-edge block 43[%43] - %43 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.spvasm.expected.spvasm index 389213475d..8b3fe7b30b 100644 --- a/test/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 94 +; Bound: 88 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -56,13 +54,13 @@ SKIP: FAILED %bool = OpTypeBool %int_100 = OpConstant %int 100 %void = OpTypeVoid - %69 = OpTypeFunction %void + %63 = OpTypeFunction %void %float_1 = OpConstant %float 1 %float_0 = OpConstant %float 0 - %80 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 - %81 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 + %74 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %75 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 %main_out = OpTypeStruct %v4float - %82 = OpTypeFunction %void %main_out + %76 = OpTypeFunction %void %main_out %func_ = OpFunction %int None %12 %15 = OpLabel %loop_count = OpVariable %_ptr_Function_int Function %18 @@ -116,62 +114,45 @@ SKIP: FAILED OpStore %x_45_phi %56 %57 = OpLoad %int %x_39 %59 = OpSLessThan %bool %57 %int_100 - OpSelectionMerge %60 None - OpBranchConditional %59 %61 %62 - %61 = OpLabel - OpBranch %60 - %62 = OpLabel - OpBranch %31 - %60 = OpLabel - OpBranch %30 + OpBranchConditional %59 %30 %31 %31 = OpLabel OpBranch %23 %23 = OpLabel - %63 = OpLoad %int %x_39 - OpStore %x_38_phi %63 - %64 = OpLoad %int %x_39 - %65 = OpSLessThan %bool %64 %int_100 - OpSelectionMerge %66 None - OpBranchConditional %65 %67 %68 - %67 = OpLabel - OpBranch %66 - %68 = OpLabel - OpBranch %22 - %66 = OpLabel - OpBranch %21 + %60 = OpLoad %int %x_39 + OpStore %x_38_phi %60 + %61 = OpLoad %int %x_39 + %62 = OpSLessThan %bool %61 %int_100 + OpBranchConditional %62 %21 %22 %22 = OpLabel OpReturnValue %int_0 OpFunctionEnd - %main_1 = OpFunction %void None %69 - %72 = OpLabel - %73 = OpFunctionCall %int %func_ - %74 = OpIEqual %bool %73 %int_1 - OpSelectionMerge %75 None - OpBranchConditional %74 %76 %77 - %76 = OpLabel - OpStore %x_GLF_color %80 - OpBranch %75 - %77 = OpLabel - OpStore %x_GLF_color %81 - OpBranch %75 - %75 = OpLabel + %main_1 = OpFunction %void None %63 + %66 = OpLabel + %67 = OpFunctionCall %int %func_ + %68 = OpIEqual %bool %67 %int_1 + OpSelectionMerge %69 None + OpBranchConditional %68 %70 %71 + %70 = OpLabel + OpStore %x_GLF_color %74 + OpBranch %69 + %71 = OpLabel + OpStore %x_GLF_color %75 + OpBranch %69 + %69 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %82 +%tint_symbol_2 = OpFunction %void None %76 %tint_symbol = OpFunctionParameter %main_out - %86 = OpLabel - %87 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %87 + %80 = OpLabel + %81 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %81 OpReturn OpFunctionEnd - %main = OpFunction %void None %69 - %89 = OpLabel - %90 = OpFunctionCall %void %main_1 - %92 = OpLoad %v4float %x_GLF_color - %93 = OpCompositeConstruct %main_out %92 - %91 = OpFunctionCall %void %tint_symbol_2 %93 + %main = OpFunction %void None %63 + %83 = OpLabel + %84 = OpFunctionCall %void %main_1 + %86 = OpLoad %v4float %x_GLF_color + %87 = OpCompositeConstruct %main_out %86 + %85 = OpFunctionCall %void %tint_symbol_2 %87 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 23[%23] is not post dominated by the back-edge block 66[%66] - %66 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.wgsl.expected.spvasm index 389213475d..8b3fe7b30b 100644 --- a/test/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 94 +; Bound: 88 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -56,13 +54,13 @@ SKIP: FAILED %bool = OpTypeBool %int_100 = OpConstant %int 100 %void = OpTypeVoid - %69 = OpTypeFunction %void + %63 = OpTypeFunction %void %float_1 = OpConstant %float 1 %float_0 = OpConstant %float 0 - %80 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 - %81 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 + %74 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %75 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 %main_out = OpTypeStruct %v4float - %82 = OpTypeFunction %void %main_out + %76 = OpTypeFunction %void %main_out %func_ = OpFunction %int None %12 %15 = OpLabel %loop_count = OpVariable %_ptr_Function_int Function %18 @@ -116,62 +114,45 @@ SKIP: FAILED OpStore %x_45_phi %56 %57 = OpLoad %int %x_39 %59 = OpSLessThan %bool %57 %int_100 - OpSelectionMerge %60 None - OpBranchConditional %59 %61 %62 - %61 = OpLabel - OpBranch %60 - %62 = OpLabel - OpBranch %31 - %60 = OpLabel - OpBranch %30 + OpBranchConditional %59 %30 %31 %31 = OpLabel OpBranch %23 %23 = OpLabel - %63 = OpLoad %int %x_39 - OpStore %x_38_phi %63 - %64 = OpLoad %int %x_39 - %65 = OpSLessThan %bool %64 %int_100 - OpSelectionMerge %66 None - OpBranchConditional %65 %67 %68 - %67 = OpLabel - OpBranch %66 - %68 = OpLabel - OpBranch %22 - %66 = OpLabel - OpBranch %21 + %60 = OpLoad %int %x_39 + OpStore %x_38_phi %60 + %61 = OpLoad %int %x_39 + %62 = OpSLessThan %bool %61 %int_100 + OpBranchConditional %62 %21 %22 %22 = OpLabel OpReturnValue %int_0 OpFunctionEnd - %main_1 = OpFunction %void None %69 - %72 = OpLabel - %73 = OpFunctionCall %int %func_ - %74 = OpIEqual %bool %73 %int_1 - OpSelectionMerge %75 None - OpBranchConditional %74 %76 %77 - %76 = OpLabel - OpStore %x_GLF_color %80 - OpBranch %75 - %77 = OpLabel - OpStore %x_GLF_color %81 - OpBranch %75 - %75 = OpLabel + %main_1 = OpFunction %void None %63 + %66 = OpLabel + %67 = OpFunctionCall %int %func_ + %68 = OpIEqual %bool %67 %int_1 + OpSelectionMerge %69 None + OpBranchConditional %68 %70 %71 + %70 = OpLabel + OpStore %x_GLF_color %74 + OpBranch %69 + %71 = OpLabel + OpStore %x_GLF_color %75 + OpBranch %69 + %69 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %82 +%tint_symbol_2 = OpFunction %void None %76 %tint_symbol = OpFunctionParameter %main_out - %86 = OpLabel - %87 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %87 + %80 = OpLabel + %81 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %81 OpReturn OpFunctionEnd - %main = OpFunction %void None %69 - %89 = OpLabel - %90 = OpFunctionCall %void %main_1 - %92 = OpLoad %v4float %x_GLF_color - %93 = OpCompositeConstruct %main_out %92 - %91 = OpFunctionCall %void %tint_symbol_2 %93 + %main = OpFunction %void None %63 + %83 = OpLabel + %84 = OpFunctionCall %void %main_1 + %86 = OpLoad %v4float %x_GLF_color + %87 = OpCompositeConstruct %main_out %86 + %85 = OpFunctionCall %void %tint_symbol_2 %87 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 23[%23] is not post dominated by the back-edge block 66[%66] - %66 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.spvasm.expected.spvasm index 1de795fa34..927d38cb7a 100644 --- a/test/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 53 +; Bound: 50 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -43,7 +41,7 @@ SKIP: FAILED %uint_0 = OpConstant %uint 0 %_ptr_Private_float = OpTypePointer Private %float %main_out = OpTypeStruct %v4float - %40 = OpTypeFunction %void %main_out + %37 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %11 %14 = OpLabel OpStore %x_GLF_color %17 @@ -67,14 +65,7 @@ SKIP: FAILED %34 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0 %35 = OpLoad %float %34 %36 = OpFOrdLessThan %bool %35 %float_0 - OpSelectionMerge %37 None - OpBranchConditional %36 %38 %39 - %38 = OpLabel - OpBranch %37 - %39 = OpLabel - OpBranch %31 - %37 = OpLabel - OpBranch %30 + OpBranchConditional %36 %30 %31 %31 = OpLabel OpBranch %28 %28 = OpLabel @@ -82,23 +73,20 @@ SKIP: FAILED %20 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %40 +%tint_symbol_3 = OpFunction %void None %37 %tint_symbol_1 = OpFunctionParameter %main_out - %44 = OpLabel - %45 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %45 + %41 = OpLabel + %42 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %42 OpReturn OpFunctionEnd %main = OpFunction %void None %11 - %47 = OpLabel - %48 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %48 - %49 = OpFunctionCall %void %main_1 - %51 = OpLoad %v4float %x_GLF_color - %52 = OpCompositeConstruct %main_out %51 - %50 = OpFunctionCall %void %tint_symbol_3 %52 + %44 = OpLabel + %45 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %45 + %46 = OpFunctionCall %void %main_1 + %48 = OpLoad %v4float %x_GLF_color + %49 = OpCompositeConstruct %main_out %48 + %47 = OpFunctionCall %void %tint_symbol_3 %49 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 32[%32] is not post dominated by the back-edge block 37[%37] - %37 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.wgsl.expected.spvasm index 1de795fa34..927d38cb7a 100644 --- a/test/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 53 +; Bound: 50 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -43,7 +41,7 @@ SKIP: FAILED %uint_0 = OpConstant %uint 0 %_ptr_Private_float = OpTypePointer Private %float %main_out = OpTypeStruct %v4float - %40 = OpTypeFunction %void %main_out + %37 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %11 %14 = OpLabel OpStore %x_GLF_color %17 @@ -67,14 +65,7 @@ SKIP: FAILED %34 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0 %35 = OpLoad %float %34 %36 = OpFOrdLessThan %bool %35 %float_0 - OpSelectionMerge %37 None - OpBranchConditional %36 %38 %39 - %38 = OpLabel - OpBranch %37 - %39 = OpLabel - OpBranch %31 - %37 = OpLabel - OpBranch %30 + OpBranchConditional %36 %30 %31 %31 = OpLabel OpBranch %28 %28 = OpLabel @@ -82,23 +73,20 @@ SKIP: FAILED %20 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %40 +%tint_symbol_3 = OpFunction %void None %37 %tint_symbol_1 = OpFunctionParameter %main_out - %44 = OpLabel - %45 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %45 + %41 = OpLabel + %42 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %42 OpReturn OpFunctionEnd %main = OpFunction %void None %11 - %47 = OpLabel - %48 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %48 - %49 = OpFunctionCall %void %main_1 - %51 = OpLoad %v4float %x_GLF_color - %52 = OpCompositeConstruct %main_out %51 - %50 = OpFunctionCall %void %tint_symbol_3 %52 + %44 = OpLabel + %45 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %45 + %46 = OpFunctionCall %void %main_1 + %48 = OpLoad %v4float %x_GLF_color + %49 = OpCompositeConstruct %main_out %48 + %47 = OpFunctionCall %void %tint_symbol_3 %49 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 32[%32] is not post dominated by the back-edge block 37[%37] - %37 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.spvasm.expected.spvasm index 7cdda6c7d3..a6c6ca5140 100644 --- a/test/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.spvasm.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 154 +; Bound: 151 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -75,11 +75,11 @@ %int_0 = OpConstant %int 0 %int_1 = OpConstant %int 1 %false = OpConstantFalse %bool - %77 = OpConstantComposite %v4float %float_0 %float_1 %float_1 %float_1 + %74 = OpConstantComposite %v4float %float_0 %float_1 %float_1 %float_1 %uint_2 = OpConstant %uint 2 %main_out = OpTypeStruct %v4float - %116 = OpTypeFunction %void %main_out - %129 = OpTypeFunction %int %_ptr_Function_v2float + %113 = OpTypeFunction %void %main_out + %126 = OpTypeFunction %int %_ptr_Function_v2float %main_1 = OpFunction %void None %15 %18 = OpLabel %x_43 = OpVariable %_ptr_Function_float Function %21 @@ -131,129 +131,122 @@ OpStore %x_46 %int_1 OpBranch %38 %39 = OpLabel - OpSelectionMerge %70 None - OpBranchConditional %false %71 %72 - %71 = OpLabel - OpBranch %70 - %72 = OpLabel - OpBranch %38 - %70 = OpLabel - OpBranch %37 + OpBranchConditional %false %37 %38 %38 = OpLabel - %73 = OpLoad %int %x_46 - OpStore %zero %73 - %74 = OpIEqual %bool %73 %int_1 - OpSelectionMerge %75 None - OpBranchConditional %74 %76 %75 - %76 = OpLabel + %70 = OpLoad %int %x_46 + OpStore %zero %70 + %71 = OpIEqual %bool %70 %int_1 + OpSelectionMerge %72 None + OpBranchConditional %71 %73 %72 + %73 = OpLabel OpReturn - %75 = OpLabel - OpStore %x_GLF_color %77 - %78 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0 - %79 = OpLoad %float %78 - %80 = OpAccessChain %_ptr_Uniform_float %x_9 %uint_0 %uint_0 - %81 = OpLoad %float %80 - %82 = OpFOrdGreaterThanEqual %bool %79 %81 - OpSelectionMerge %83 None - OpBranchConditional %82 %84 %83 - %84 = OpLabel - %85 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %86 = OpLoad %float %85 - %87 = OpFOrdGreaterThanEqual %bool %86 %float_0 - OpSelectionMerge %88 None - OpBranchConditional %87 %89 %88 - %89 = OpLabel - %90 = OpAccessChain %_ptr_Uniform_float %x_9 %uint_0 %uint_1 + %72 = OpLabel + OpStore %x_GLF_color %74 + %75 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0 + %76 = OpLoad %float %75 + %77 = OpAccessChain %_ptr_Uniform_float %x_9 %uint_0 %uint_0 + %78 = OpLoad %float %77 + %79 = OpFOrdGreaterThanEqual %bool %76 %78 + OpSelectionMerge %80 None + OpBranchConditional %79 %81 %80 + %81 = OpLabel + %82 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %83 = OpLoad %float %82 + %84 = OpFOrdGreaterThanEqual %bool %83 %float_0 + OpSelectionMerge %85 None + OpBranchConditional %84 %86 %85 + %86 = OpLabel + %87 = OpAccessChain %_ptr_Uniform_float %x_9 %uint_0 %uint_1 + %88 = OpLoad %float %87 + %89 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_0 + OpStore %89 %88 + OpBranch %85 + %85 = OpLabel + OpBranch %80 + %80 = OpLabel + %90 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 %91 = OpLoad %float %90 - %92 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_0 - OpStore %92 %91 - OpBranch %88 - %88 = OpLabel - OpBranch %83 - %83 = OpLabel - %93 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %94 = OpLoad %float %93 - %95 = OpFOrdGreaterThanEqual %bool %94 %float_0 - OpSelectionMerge %96 None - OpBranchConditional %95 %97 %96 - %97 = OpLabel - %98 = OpAccessChain %_ptr_Uniform_float %x_9 %uint_0 %uint_0 - %99 = OpLoad %float %98 - %100 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_1 - OpStore %100 %99 - OpBranch %96 - %96 = OpLabel - %101 = OpLoad %v4float %gl_FragCoord + %92 = OpFOrdGreaterThanEqual %bool %91 %float_0 + OpSelectionMerge %93 None + OpBranchConditional %92 %94 %93 + %94 = OpLabel + %95 = OpAccessChain %_ptr_Uniform_float %x_9 %uint_0 %uint_0 + %96 = OpLoad %float %95 + %97 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_1 + OpStore %97 %96 + OpBranch %93 + %93 = OpLabel + %98 = OpLoad %v4float %gl_FragCoord + %99 = OpCompositeExtract %float %98 0 + %100 = OpCompositeExtract %float %98 1 + %101 = OpCompositeConstruct %v2float %99 %100 %102 = OpCompositeExtract %float %101 0 %103 = OpCompositeExtract %float %101 1 %104 = OpCompositeConstruct %v2float %102 %103 - %105 = OpCompositeExtract %float %104 0 - %106 = OpCompositeExtract %float %104 1 - %107 = OpCompositeConstruct %v2float %105 %106 - OpStore %temp %107 - %108 = OpCompositeExtract %float %107 1 - %109 = OpFOrdGreaterThanEqual %bool %108 %float_0 - OpSelectionMerge %110 None - OpBranchConditional %109 %111 %110 - %111 = OpLabel - %112 = OpAccessChain %_ptr_Uniform_float %x_9 %uint_0 %uint_0 - %113 = OpLoad %float %112 - %115 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_2 - OpStore %115 %113 - OpBranch %110 - %110 = OpLabel + OpStore %temp %104 + %105 = OpCompositeExtract %float %104 1 + %106 = OpFOrdGreaterThanEqual %bool %105 %float_0 + OpSelectionMerge %107 None + OpBranchConditional %106 %108 %107 + %108 = OpLabel + %109 = OpAccessChain %_ptr_Uniform_float %x_9 %uint_0 %uint_0 + %110 = OpLoad %float %109 + %112 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_2 + OpStore %112 %110 + OpBranch %107 + %107 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %116 +%tint_symbol_3 = OpFunction %void None %113 %tint_symbol_1 = OpFunctionParameter %main_out - %120 = OpLabel - %121 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %121 + %117 = OpLabel + %118 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %118 OpReturn OpFunctionEnd %main = OpFunction %void None %15 - %123 = OpLabel - %124 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %124 - %125 = OpFunctionCall %void %main_1 - %127 = OpLoad %v4float %x_GLF_color - %128 = OpCompositeConstruct %main_out %127 - %126 = OpFunctionCall %void %tint_symbol_3 %128 + %120 = OpLabel + %121 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %121 + %122 = OpFunctionCall %void %main_1 + %124 = OpLoad %v4float %x_GLF_color + %125 = OpCompositeConstruct %main_out %124 + %123 = OpFunctionCall %void %tint_symbol_3 %125 OpReturn OpFunctionEnd -%alwaysZero_vf2_ = OpFunction %int None %129 +%alwaysZero_vf2_ = OpFunction %int None %126 %coord = OpFunctionParameter %_ptr_Function_v2float - %132 = OpLabel + %129 = OpLabel %a = OpVariable %_ptr_Function_float Function %21 %x_110 = OpVariable %_ptr_Function_float Function %21 %b = OpVariable %_ptr_Function_float Function %21 - %137 = OpAccessChain %_ptr_Function_float %coord %uint_1 - %138 = OpLoad %float %137 - %139 = OpFOrdLessThan %bool %138 %float_50 - OpSelectionMerge %140 None - OpBranchConditional %139 %141 %142 - %141 = OpLabel - %143 = OpAccessChain %_ptr_Uniform_float %x_9 %uint_0 %uint_1 - %144 = OpLoad %float %143 - OpStore %x_110 %144 - OpBranch %140 - %142 = OpLabel + %134 = OpAccessChain %_ptr_Function_float %coord %uint_1 + %135 = OpLoad %float %134 + %136 = OpFOrdLessThan %bool %135 %float_50 + OpSelectionMerge %137 None + OpBranchConditional %136 %138 %139 + %138 = OpLabel + %140 = OpAccessChain %_ptr_Uniform_float %x_9 %uint_0 %uint_1 + %141 = OpLoad %float %140 + OpStore %x_110 %141 + OpBranch %137 + %139 = OpLabel OpStore %x_110 %float_0 - OpBranch %140 - %140 = OpLabel - %145 = OpLoad %float %x_110 - OpStore %a %145 - %146 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %147 = OpLoad %float %146 - %149 = OpFOrdLessThan %bool %147 %float_50 - %148 = OpSelect %float %149 %float_1 %float_0 - OpStore %b %148 - %150 = OpFSub %float %145 %148 - %151 = OpFOrdLessThan %bool %150 %float_1 - OpSelectionMerge %152 None - OpBranchConditional %151 %153 %152 - %153 = OpLabel + OpBranch %137 + %137 = OpLabel + %142 = OpLoad %float %x_110 + OpStore %a %142 + %143 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %144 = OpLoad %float %143 + %146 = OpFOrdLessThan %bool %144 %float_50 + %145 = OpSelect %float %146 %float_1 %float_0 + OpStore %b %145 + %147 = OpFSub %float %142 %145 + %148 = OpFOrdLessThan %bool %147 %float_1 + OpSelectionMerge %149 None + OpBranchConditional %148 %150 %149 + %150 = OpLabel OpReturnValue %int_0 - %152 = OpLabel + %149 = OpLabel OpReturnValue %int_1 OpFunctionEnd diff --git a/test/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.wgsl.expected.spvasm index 7cdda6c7d3..a6c6ca5140 100644 --- a/test/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 154 +; Bound: 151 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -75,11 +75,11 @@ %int_0 = OpConstant %int 0 %int_1 = OpConstant %int 1 %false = OpConstantFalse %bool - %77 = OpConstantComposite %v4float %float_0 %float_1 %float_1 %float_1 + %74 = OpConstantComposite %v4float %float_0 %float_1 %float_1 %float_1 %uint_2 = OpConstant %uint 2 %main_out = OpTypeStruct %v4float - %116 = OpTypeFunction %void %main_out - %129 = OpTypeFunction %int %_ptr_Function_v2float + %113 = OpTypeFunction %void %main_out + %126 = OpTypeFunction %int %_ptr_Function_v2float %main_1 = OpFunction %void None %15 %18 = OpLabel %x_43 = OpVariable %_ptr_Function_float Function %21 @@ -131,129 +131,122 @@ OpStore %x_46 %int_1 OpBranch %38 %39 = OpLabel - OpSelectionMerge %70 None - OpBranchConditional %false %71 %72 - %71 = OpLabel - OpBranch %70 - %72 = OpLabel - OpBranch %38 - %70 = OpLabel - OpBranch %37 + OpBranchConditional %false %37 %38 %38 = OpLabel - %73 = OpLoad %int %x_46 - OpStore %zero %73 - %74 = OpIEqual %bool %73 %int_1 - OpSelectionMerge %75 None - OpBranchConditional %74 %76 %75 - %76 = OpLabel + %70 = OpLoad %int %x_46 + OpStore %zero %70 + %71 = OpIEqual %bool %70 %int_1 + OpSelectionMerge %72 None + OpBranchConditional %71 %73 %72 + %73 = OpLabel OpReturn - %75 = OpLabel - OpStore %x_GLF_color %77 - %78 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0 - %79 = OpLoad %float %78 - %80 = OpAccessChain %_ptr_Uniform_float %x_9 %uint_0 %uint_0 - %81 = OpLoad %float %80 - %82 = OpFOrdGreaterThanEqual %bool %79 %81 - OpSelectionMerge %83 None - OpBranchConditional %82 %84 %83 - %84 = OpLabel - %85 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %86 = OpLoad %float %85 - %87 = OpFOrdGreaterThanEqual %bool %86 %float_0 - OpSelectionMerge %88 None - OpBranchConditional %87 %89 %88 - %89 = OpLabel - %90 = OpAccessChain %_ptr_Uniform_float %x_9 %uint_0 %uint_1 + %72 = OpLabel + OpStore %x_GLF_color %74 + %75 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0 + %76 = OpLoad %float %75 + %77 = OpAccessChain %_ptr_Uniform_float %x_9 %uint_0 %uint_0 + %78 = OpLoad %float %77 + %79 = OpFOrdGreaterThanEqual %bool %76 %78 + OpSelectionMerge %80 None + OpBranchConditional %79 %81 %80 + %81 = OpLabel + %82 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %83 = OpLoad %float %82 + %84 = OpFOrdGreaterThanEqual %bool %83 %float_0 + OpSelectionMerge %85 None + OpBranchConditional %84 %86 %85 + %86 = OpLabel + %87 = OpAccessChain %_ptr_Uniform_float %x_9 %uint_0 %uint_1 + %88 = OpLoad %float %87 + %89 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_0 + OpStore %89 %88 + OpBranch %85 + %85 = OpLabel + OpBranch %80 + %80 = OpLabel + %90 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 %91 = OpLoad %float %90 - %92 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_0 - OpStore %92 %91 - OpBranch %88 - %88 = OpLabel - OpBranch %83 - %83 = OpLabel - %93 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %94 = OpLoad %float %93 - %95 = OpFOrdGreaterThanEqual %bool %94 %float_0 - OpSelectionMerge %96 None - OpBranchConditional %95 %97 %96 - %97 = OpLabel - %98 = OpAccessChain %_ptr_Uniform_float %x_9 %uint_0 %uint_0 - %99 = OpLoad %float %98 - %100 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_1 - OpStore %100 %99 - OpBranch %96 - %96 = OpLabel - %101 = OpLoad %v4float %gl_FragCoord + %92 = OpFOrdGreaterThanEqual %bool %91 %float_0 + OpSelectionMerge %93 None + OpBranchConditional %92 %94 %93 + %94 = OpLabel + %95 = OpAccessChain %_ptr_Uniform_float %x_9 %uint_0 %uint_0 + %96 = OpLoad %float %95 + %97 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_1 + OpStore %97 %96 + OpBranch %93 + %93 = OpLabel + %98 = OpLoad %v4float %gl_FragCoord + %99 = OpCompositeExtract %float %98 0 + %100 = OpCompositeExtract %float %98 1 + %101 = OpCompositeConstruct %v2float %99 %100 %102 = OpCompositeExtract %float %101 0 %103 = OpCompositeExtract %float %101 1 %104 = OpCompositeConstruct %v2float %102 %103 - %105 = OpCompositeExtract %float %104 0 - %106 = OpCompositeExtract %float %104 1 - %107 = OpCompositeConstruct %v2float %105 %106 - OpStore %temp %107 - %108 = OpCompositeExtract %float %107 1 - %109 = OpFOrdGreaterThanEqual %bool %108 %float_0 - OpSelectionMerge %110 None - OpBranchConditional %109 %111 %110 - %111 = OpLabel - %112 = OpAccessChain %_ptr_Uniform_float %x_9 %uint_0 %uint_0 - %113 = OpLoad %float %112 - %115 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_2 - OpStore %115 %113 - OpBranch %110 - %110 = OpLabel + OpStore %temp %104 + %105 = OpCompositeExtract %float %104 1 + %106 = OpFOrdGreaterThanEqual %bool %105 %float_0 + OpSelectionMerge %107 None + OpBranchConditional %106 %108 %107 + %108 = OpLabel + %109 = OpAccessChain %_ptr_Uniform_float %x_9 %uint_0 %uint_0 + %110 = OpLoad %float %109 + %112 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_2 + OpStore %112 %110 + OpBranch %107 + %107 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %116 +%tint_symbol_3 = OpFunction %void None %113 %tint_symbol_1 = OpFunctionParameter %main_out - %120 = OpLabel - %121 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %121 + %117 = OpLabel + %118 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %118 OpReturn OpFunctionEnd %main = OpFunction %void None %15 - %123 = OpLabel - %124 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %124 - %125 = OpFunctionCall %void %main_1 - %127 = OpLoad %v4float %x_GLF_color - %128 = OpCompositeConstruct %main_out %127 - %126 = OpFunctionCall %void %tint_symbol_3 %128 + %120 = OpLabel + %121 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %121 + %122 = OpFunctionCall %void %main_1 + %124 = OpLoad %v4float %x_GLF_color + %125 = OpCompositeConstruct %main_out %124 + %123 = OpFunctionCall %void %tint_symbol_3 %125 OpReturn OpFunctionEnd -%alwaysZero_vf2_ = OpFunction %int None %129 +%alwaysZero_vf2_ = OpFunction %int None %126 %coord = OpFunctionParameter %_ptr_Function_v2float - %132 = OpLabel + %129 = OpLabel %a = OpVariable %_ptr_Function_float Function %21 %x_110 = OpVariable %_ptr_Function_float Function %21 %b = OpVariable %_ptr_Function_float Function %21 - %137 = OpAccessChain %_ptr_Function_float %coord %uint_1 - %138 = OpLoad %float %137 - %139 = OpFOrdLessThan %bool %138 %float_50 - OpSelectionMerge %140 None - OpBranchConditional %139 %141 %142 - %141 = OpLabel - %143 = OpAccessChain %_ptr_Uniform_float %x_9 %uint_0 %uint_1 - %144 = OpLoad %float %143 - OpStore %x_110 %144 - OpBranch %140 - %142 = OpLabel + %134 = OpAccessChain %_ptr_Function_float %coord %uint_1 + %135 = OpLoad %float %134 + %136 = OpFOrdLessThan %bool %135 %float_50 + OpSelectionMerge %137 None + OpBranchConditional %136 %138 %139 + %138 = OpLabel + %140 = OpAccessChain %_ptr_Uniform_float %x_9 %uint_0 %uint_1 + %141 = OpLoad %float %140 + OpStore %x_110 %141 + OpBranch %137 + %139 = OpLabel OpStore %x_110 %float_0 - OpBranch %140 - %140 = OpLabel - %145 = OpLoad %float %x_110 - OpStore %a %145 - %146 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %147 = OpLoad %float %146 - %149 = OpFOrdLessThan %bool %147 %float_50 - %148 = OpSelect %float %149 %float_1 %float_0 - OpStore %b %148 - %150 = OpFSub %float %145 %148 - %151 = OpFOrdLessThan %bool %150 %float_1 - OpSelectionMerge %152 None - OpBranchConditional %151 %153 %152 - %153 = OpLabel + OpBranch %137 + %137 = OpLabel + %142 = OpLoad %float %x_110 + OpStore %a %142 + %143 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %144 = OpLoad %float %143 + %146 = OpFOrdLessThan %bool %144 %float_50 + %145 = OpSelect %float %146 %float_1 %float_0 + OpStore %b %145 + %147 = OpFSub %float %142 %145 + %148 = OpFOrdLessThan %bool %147 %float_1 + OpSelectionMerge %149 None + OpBranchConditional %148 %150 %149 + %150 = OpLabel OpReturnValue %int_0 - %152 = OpLabel + %149 = OpLabel OpReturnValue %int_1 OpFunctionEnd diff --git a/test/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.spvasm.expected.spvasm index 763929ef2f..d6e398d19a 100644 --- a/test/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 125 +; Bound: 122 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -74,9 +72,9 @@ SKIP: FAILED %int_17 = OpConstant %int 17 %uint_1 = OpConstant %uint 1 %float_0 = OpConstant %float 0 - %112 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %109 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 %main_out = OpTypeStruct %v4float - %113 = OpTypeFunction %void %main_out + %110 = OpTypeFunction %void %main_out %binarySearch_struct_BinarySearchObject_i1_10_1_ = OpFunction %int None %12 %obj = OpFunctionParameter %_ptr_Function_BinarySearchObject %21 = OpLabel @@ -178,43 +176,33 @@ SKIP: FAILED %100 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_1 %101 = OpLoad %float %100 %103 = OpFOrdGreaterThan %bool %float_0 %101 - OpSelectionMerge %104 None - OpBranchConditional %103 %105 %106 - %105 = OpLabel - OpBranch %104 - %106 = OpLabel - OpBranch %96 - %104 = OpLabel - OpBranch %95 + OpBranchConditional %103 %95 %96 %96 = OpLabel OpBranch %61 %61 = OpLabel - %107 = OpLoad %int %i - %108 = OpIAdd %int %107 %int_1 - OpStore %i %108 + %104 = OpLoad %int %i + %105 = OpIAdd %int %104 %int_1 + OpStore %i %105 OpBranch %59 %60 = OpLabel - %109 = OpLoad %BinarySearchObject %obj_1 - OpStore %param %109 - %110 = OpFunctionCall %int %binarySearch_struct_BinarySearchObject_i1_10_1_ %param - OpStore %x_GLF_color %112 + %106 = OpLoad %BinarySearchObject %obj_1 + OpStore %param %106 + %107 = OpFunctionCall %int %binarySearch_struct_BinarySearchObject_i1_10_1_ %param + OpStore %x_GLF_color %109 OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %113 +%tint_symbol_2 = OpFunction %void None %110 %tint_symbol = OpFunctionParameter %main_out - %117 = OpLabel - %118 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %118 + %114 = OpLabel + %115 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %115 OpReturn OpFunctionEnd %main = OpFunction %void None %50 - %120 = OpLabel - %121 = OpFunctionCall %void %main_1 - %123 = OpLoad %v4float %x_GLF_color - %124 = OpCompositeConstruct %main_out %123 - %122 = OpFunctionCall %void %tint_symbol_2 %124 + %117 = OpLabel + %118 = OpFunctionCall %void %main_1 + %120 = OpLoad %v4float %x_GLF_color + %121 = OpCompositeConstruct %main_out %120 + %119 = OpFunctionCall %void %tint_symbol_2 %121 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 97[%97] is not post dominated by the back-edge block 104[%104] - %104 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.wgsl.expected.spvasm index 763929ef2f..d6e398d19a 100644 --- a/test/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 125 +; Bound: 122 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -74,9 +72,9 @@ SKIP: FAILED %int_17 = OpConstant %int 17 %uint_1 = OpConstant %uint 1 %float_0 = OpConstant %float 0 - %112 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %109 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 %main_out = OpTypeStruct %v4float - %113 = OpTypeFunction %void %main_out + %110 = OpTypeFunction %void %main_out %binarySearch_struct_BinarySearchObject_i1_10_1_ = OpFunction %int None %12 %obj = OpFunctionParameter %_ptr_Function_BinarySearchObject %21 = OpLabel @@ -178,43 +176,33 @@ SKIP: FAILED %100 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_1 %101 = OpLoad %float %100 %103 = OpFOrdGreaterThan %bool %float_0 %101 - OpSelectionMerge %104 None - OpBranchConditional %103 %105 %106 - %105 = OpLabel - OpBranch %104 - %106 = OpLabel - OpBranch %96 - %104 = OpLabel - OpBranch %95 + OpBranchConditional %103 %95 %96 %96 = OpLabel OpBranch %61 %61 = OpLabel - %107 = OpLoad %int %i - %108 = OpIAdd %int %107 %int_1 - OpStore %i %108 + %104 = OpLoad %int %i + %105 = OpIAdd %int %104 %int_1 + OpStore %i %105 OpBranch %59 %60 = OpLabel - %109 = OpLoad %BinarySearchObject %obj_1 - OpStore %param %109 - %110 = OpFunctionCall %int %binarySearch_struct_BinarySearchObject_i1_10_1_ %param - OpStore %x_GLF_color %112 + %106 = OpLoad %BinarySearchObject %obj_1 + OpStore %param %106 + %107 = OpFunctionCall %int %binarySearch_struct_BinarySearchObject_i1_10_1_ %param + OpStore %x_GLF_color %109 OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %113 +%tint_symbol_2 = OpFunction %void None %110 %tint_symbol = OpFunctionParameter %main_out - %117 = OpLabel - %118 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %118 + %114 = OpLabel + %115 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %115 OpReturn OpFunctionEnd %main = OpFunction %void None %50 - %120 = OpLabel - %121 = OpFunctionCall %void %main_1 - %123 = OpLoad %v4float %x_GLF_color - %124 = OpCompositeConstruct %main_out %123 - %122 = OpFunctionCall %void %tint_symbol_2 %124 + %117 = OpLabel + %118 = OpFunctionCall %void %main_1 + %120 = OpLoad %v4float %x_GLF_color + %121 = OpCompositeConstruct %main_out %120 + %119 = OpFunctionCall %void %tint_symbol_2 %121 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 97[%97] is not post dominated by the back-edge block 104[%104] - %104 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.spvasm index cb7cc448e2..84ab931ec4 100644 --- a/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 145 +; Bound: 140 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -69,9 +67,9 @@ SKIP: FAILED %float_1 = OpConstant %float 1 %int_1 = OpConstant %int 1 %int_200 = OpConstant %int 200 - %132 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %127 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 %main_out = OpTypeStruct %v4float - %133 = OpTypeFunction %void %main_out + %128 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %12 %15 = OpLabel %i = OpVariable %_ptr_Function_int Function %19 @@ -173,90 +171,75 @@ SKIP: FAILED %98 = OpLoad %int %msb10 %99 = OpLoad %int %msb10 %101 = OpSGreaterThanEqual %bool %97 %int_0 - OpSelectionMerge %102 None - OpBranchConditional %101 %103 %102 - %103 = OpLabel - %105 = OpSLessThan %bool %98 %int_9 - OpBranch %102 - %102 = OpLabel - %106 = OpPhi %bool %101 %96 %105 %103 - %100 = OpSelect %int %106 %99 %int_0 + %103 = OpSLessThan %bool %98 %int_9 + %104 = OpLogicalAnd %bool %101 %103 + %100 = OpSelect %int %104 %99 %int_0 + %106 = OpAccessChain %_ptr_Function_float %donor_replacementGLF_dead5sums %100 + %107 = OpLoad %float %106 %108 = OpAccessChain %_ptr_Function_float %donor_replacementGLF_dead5sums %100 - %109 = OpLoad %float %108 - %110 = OpAccessChain %_ptr_Function_float %donor_replacementGLF_dead5sums %100 - %112 = OpFAdd %float %109 %float_1 - OpStore %110 %112 + %110 = OpFAdd %float %107 %float_1 + OpStore %108 %110 OpBranch %94 %95 = OpLabel OpBranch %94 %94 = OpLabel OpBranch %85 %85 = OpLabel - %113 = OpLoad %int %GLF_dead5r - %115 = OpIAdd %int %113 %int_1 - OpStore %GLF_dead5r %115 + %111 = OpLoad %int %GLF_dead5r + %113 = OpIAdd %int %111 %int_1 + OpStore %GLF_dead5r %113 OpBranch %83 %84 = OpLabel OpBranch %75 %75 = OpLabel - %116 = OpLoad %int %GLF_dead5c - %117 = OpIAdd %int %116 %int_1 - OpStore %GLF_dead5c %117 + %114 = OpLoad %int %GLF_dead5c + %115 = OpIAdd %int %114 %int_1 + OpStore %GLF_dead5c %115 OpBranch %73 %74 = OpLabel - %118 = OpLoad %int %msb10 - %119 = OpIAdd %int %118 %int_1 - OpStore %msb10 %119 + %116 = OpLoad %int %msb10 + %117 = OpIAdd %int %116 %int_1 + OpStore %msb10 %117 OpBranch %66 %66 = OpLabel - %120 = OpLoad %int %GLF_dead5rows - %121 = OpIAdd %int %120 %int_1 - OpStore %GLF_dead5rows %121 + %118 = OpLoad %int %GLF_dead5rows + %119 = OpIAdd %int %118 %int_1 + OpStore %GLF_dead5rows %119 OpBranch %64 %65 = OpLabel OpBranch %56 %56 = OpLabel - %122 = OpLoad %int %GLF_dead5cols - %123 = OpIAdd %int %122 %int_1 - OpStore %GLF_dead5cols %123 + %120 = OpLoad %int %GLF_dead5cols + %121 = OpIAdd %int %120 %int_1 + OpStore %GLF_dead5cols %121 OpBranch %54 %55 = OpLabel OpBranch %51 %51 = OpLabel - %124 = OpLoad %int %i - %125 = OpIAdd %int %124 %int_1 - OpStore %i %125 + %122 = OpLoad %int %i + %123 = OpIAdd %int %122 %int_1 + OpStore %i %123 OpBranch %34 %34 = OpLabel - %126 = OpLoad %int %i - %128 = OpSLessThan %bool %126 %int_200 - OpSelectionMerge %129 None - OpBranchConditional %128 %130 %131 - %130 = OpLabel - OpBranch %129 - %131 = OpLabel - OpBranch %33 - %129 = OpLabel - OpBranch %32 + %124 = OpLoad %int %i + %126 = OpSLessThan %bool %124 %int_200 + OpBranchConditional %126 %32 %33 %33 = OpLabel - OpStore %x_GLF_color %132 + OpStore %x_GLF_color %127 OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %133 +%tint_symbol_2 = OpFunction %void None %128 %tint_symbol = OpFunctionParameter %main_out - %137 = OpLabel - %138 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %138 + %132 = OpLabel + %133 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %133 OpReturn OpFunctionEnd %main = OpFunction %void None %12 - %140 = OpLabel - %141 = OpFunctionCall %void %main_1 - %143 = OpLoad %v4float %x_GLF_color - %144 = OpCompositeConstruct %main_out %143 - %142 = OpFunctionCall %void %tint_symbol_2 %144 + %135 = OpLabel + %136 = OpFunctionCall %void %main_1 + %138 = OpLoad %v4float %x_GLF_color + %139 = OpCompositeConstruct %main_out %138 + %137 = OpFunctionCall %void %tint_symbol_2 %139 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 34[%34] is not post dominated by the back-edge block 129[%129] - %129 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.wgsl.expected.spvasm index cb7cc448e2..d22eb4e947 100644 --- a/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 145 +; Bound: 142 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -69,9 +67,9 @@ SKIP: FAILED %float_1 = OpConstant %float 1 %int_1 = OpConstant %int 1 %int_200 = OpConstant %int 200 - %132 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %129 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 %main_out = OpTypeStruct %v4float - %133 = OpTypeFunction %void %main_out + %130 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %12 %15 = OpLabel %i = OpVariable %_ptr_Function_int Function %19 @@ -230,33 +228,23 @@ SKIP: FAILED %34 = OpLabel %126 = OpLoad %int %i %128 = OpSLessThan %bool %126 %int_200 - OpSelectionMerge %129 None - OpBranchConditional %128 %130 %131 - %130 = OpLabel - OpBranch %129 - %131 = OpLabel - OpBranch %33 - %129 = OpLabel - OpBranch %32 + OpBranchConditional %128 %32 %33 %33 = OpLabel - OpStore %x_GLF_color %132 + OpStore %x_GLF_color %129 OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %133 +%tint_symbol_2 = OpFunction %void None %130 %tint_symbol = OpFunctionParameter %main_out - %137 = OpLabel - %138 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %138 + %134 = OpLabel + %135 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %135 OpReturn OpFunctionEnd %main = OpFunction %void None %12 - %140 = OpLabel - %141 = OpFunctionCall %void %main_1 - %143 = OpLoad %v4float %x_GLF_color - %144 = OpCompositeConstruct %main_out %143 - %142 = OpFunctionCall %void %tint_symbol_2 %144 + %137 = OpLabel + %138 = OpFunctionCall %void %main_1 + %140 = OpLoad %v4float %x_GLF_color + %141 = OpCompositeConstruct %main_out %140 + %139 = OpFunctionCall %void %tint_symbol_2 %141 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 34[%34] is not post dominated by the back-edge block 129[%129] - %129 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.spvasm.expected.spvasm index 093acdca5b..4e21ac0111 100644 --- a/test/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 120 +; Bound: 117 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -81,9 +79,9 @@ SKIP: FAILED %true = OpConstantTrue %bool %_ptr_Function_float = OpTypePointer Function %float %uint_2 = OpConstant %uint 2 - %107 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %104 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 %main_out = OpTypeStruct %v4float - %108 = OpTypeFunction %void %main_out + %105 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %12 %15 = OpLabel %x_36 = OpVariable %_ptr_Function_bool Function %20 @@ -134,105 +132,95 @@ SKIP: FAILED OpStore %x_40_phi %58 %59 = OpLoad %v3float %x_43 OpStore %x_42_phi %59 - OpSelectionMerge %60 None - OpBranchConditional %false %61 %62 - %61 = OpLabel - OpBranch %60 - %62 = OpLabel - OpBranch %40 - %60 = OpLabel - OpBranch %39 + OpBranchConditional %false %39 %40 %40 = OpLabel OpStore %x_36 %false - %63 = OpLoad %bool %x_40 - OpStore %x_56_phi %63 + %60 = OpLoad %bool %x_40 + OpStore %x_56_phi %60 OpStore %x_58_phi %false + OpBranch %61 + %61 = OpLabel + OpLoopMerge %62 %63 None OpBranch %64 %64 = OpLabel - OpLoopMerge %65 %66 None - OpBranch %67 - %67 = OpLabel - %74 = OpLoad %bool %x_56_phi - %75 = OpLoad %bool %x_58_phi + %71 = OpLoad %bool %x_56_phi + %72 = OpLoad %bool %x_58_phi OpStore %x_7 %int_0 - OpStore %x_62_phi %74 + OpStore %x_62_phi %71 OpStore %x_64_phi %false OpStore %x_65_phi %int_0 + OpBranch %74 + %74 = OpLabel + OpLoopMerge %75 %76 None OpBranch %77 %77 = OpLabel - OpLoopMerge %78 %79 None - OpBranch %80 - %80 = OpLabel - %81 = OpLoad %bool %x_62_phi - OpStore %x_62 %81 - %82 = OpLoad %bool %x_64_phi - %83 = OpLoad %int %x_65_phi - %85 = OpSLessThan %bool %int_0 %int_1 - %86 = OpLoad %bool %x_62 - OpStore %x_70_phi %86 + %78 = OpLoad %bool %x_62_phi + OpStore %x_62 %78 + %79 = OpLoad %bool %x_64_phi + %80 = OpLoad %int %x_65_phi + %82 = OpSLessThan %bool %int_0 %int_1 + %83 = OpLoad %bool %x_62 + OpStore %x_70_phi %83 OpStore %x_71_phi %false - OpSelectionMerge %88 None - OpBranchConditional %true %89 %90 - %89 = OpLabel - OpBranch %88 - %90 = OpLabel - OpBranch %78 - %88 = OpLabel + OpSelectionMerge %85 None + OpBranchConditional %true %86 %87 + %86 = OpLabel + OpBranch %85 + %87 = OpLabel + OpBranch %75 + %85 = OpLabel OpStore %x_36 %true OpStore %x_37 %true OpStore %x_70_phi %true OpStore %x_71_phi %true - OpBranch %78 - %79 = OpLabel + OpBranch %75 + %76 = OpLabel OpStore %x_62_phi %false OpStore %x_64_phi %false OpStore %x_65_phi %int_0 - OpBranch %77 - %78 = OpLabel - %91 = OpLoad %bool %x_70_phi - %92 = OpLoad %bool %x_71_phi - OpSelectionMerge %93 None - OpBranchConditional %true %94 %93 - %94 = OpLabel - OpBranch %65 - %93 = OpLabel + OpBranch %74 + %75 = OpLabel + %88 = OpLoad %bool %x_70_phi + %89 = OpLoad %bool %x_71_phi + OpSelectionMerge %90 None + OpBranchConditional %true %91 %90 + %91 = OpLabel + OpBranch %62 + %90 = OpLabel OpStore %x_36 %true - OpBranch %65 - %66 = OpLabel + OpBranch %62 + %63 = OpLabel OpStore %x_56_phi %false OpStore %x_58_phi %false - OpBranch %64 - %65 = OpLabel + OpBranch %61 + %62 = OpLabel OpStore %x_38 %true - %95 = OpSelect %float %true %float_1 %float_0 - %97 = OpAccessChain %_ptr_Function_float %x_43 %uint_0 - %98 = OpLoad %float %97 - %99 = OpAccessChain %_ptr_Function_float %x_43 %uint_1 + %92 = OpSelect %float %true %float_1 %float_0 + %94 = OpAccessChain %_ptr_Function_float %x_43 %uint_0 + %95 = OpLoad %float %94 + %96 = OpAccessChain %_ptr_Function_float %x_43 %uint_1 + %97 = OpLoad %float %96 + %99 = OpAccessChain %_ptr_Function_float %x_43 %uint_2 %100 = OpLoad %float %99 - %102 = OpAccessChain %_ptr_Function_float %x_43 %uint_2 - %103 = OpLoad %float %102 - %104 = OpCompositeConstruct %v4float %98 %100 %103 %float_1 - %105 = OpCompositeConstruct %v4float %95 %95 %95 %95 - %106 = OpFAdd %v4float %104 %105 - OpStore %x_GLF_color %106 - OpStore %x_GLF_color %107 + %101 = OpCompositeConstruct %v4float %95 %97 %100 %float_1 + %102 = OpCompositeConstruct %v4float %92 %92 %92 %92 + %103 = OpFAdd %v4float %101 %102 + OpStore %x_GLF_color %103 + OpStore %x_GLF_color %104 OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %108 +%tint_symbol_2 = OpFunction %void None %105 %tint_symbol = OpFunctionParameter %main_out - %112 = OpLabel - %113 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %113 + %109 = OpLabel + %110 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %110 OpReturn OpFunctionEnd %main = OpFunction %void None %12 - %115 = OpLabel - %116 = OpFunctionCall %void %main_1 - %118 = OpLoad %v4float %x_GLF_color - %119 = OpCompositeConstruct %main_out %118 - %117 = OpFunctionCall %void %tint_symbol_2 %119 + %112 = OpLabel + %113 = OpFunctionCall %void %main_1 + %115 = OpLoad %v4float %x_GLF_color + %116 = OpCompositeConstruct %main_out %115 + %114 = OpFunctionCall %void %tint_symbol_2 %116 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 41[%41] is not post dominated by the back-edge block 60[%60] - %60 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.wgsl.expected.spvasm index 093acdca5b..4e21ac0111 100644 --- a/test/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 120 +; Bound: 117 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -81,9 +79,9 @@ SKIP: FAILED %true = OpConstantTrue %bool %_ptr_Function_float = OpTypePointer Function %float %uint_2 = OpConstant %uint 2 - %107 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %104 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 %main_out = OpTypeStruct %v4float - %108 = OpTypeFunction %void %main_out + %105 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %12 %15 = OpLabel %x_36 = OpVariable %_ptr_Function_bool Function %20 @@ -134,105 +132,95 @@ SKIP: FAILED OpStore %x_40_phi %58 %59 = OpLoad %v3float %x_43 OpStore %x_42_phi %59 - OpSelectionMerge %60 None - OpBranchConditional %false %61 %62 - %61 = OpLabel - OpBranch %60 - %62 = OpLabel - OpBranch %40 - %60 = OpLabel - OpBranch %39 + OpBranchConditional %false %39 %40 %40 = OpLabel OpStore %x_36 %false - %63 = OpLoad %bool %x_40 - OpStore %x_56_phi %63 + %60 = OpLoad %bool %x_40 + OpStore %x_56_phi %60 OpStore %x_58_phi %false + OpBranch %61 + %61 = OpLabel + OpLoopMerge %62 %63 None OpBranch %64 %64 = OpLabel - OpLoopMerge %65 %66 None - OpBranch %67 - %67 = OpLabel - %74 = OpLoad %bool %x_56_phi - %75 = OpLoad %bool %x_58_phi + %71 = OpLoad %bool %x_56_phi + %72 = OpLoad %bool %x_58_phi OpStore %x_7 %int_0 - OpStore %x_62_phi %74 + OpStore %x_62_phi %71 OpStore %x_64_phi %false OpStore %x_65_phi %int_0 + OpBranch %74 + %74 = OpLabel + OpLoopMerge %75 %76 None OpBranch %77 %77 = OpLabel - OpLoopMerge %78 %79 None - OpBranch %80 - %80 = OpLabel - %81 = OpLoad %bool %x_62_phi - OpStore %x_62 %81 - %82 = OpLoad %bool %x_64_phi - %83 = OpLoad %int %x_65_phi - %85 = OpSLessThan %bool %int_0 %int_1 - %86 = OpLoad %bool %x_62 - OpStore %x_70_phi %86 + %78 = OpLoad %bool %x_62_phi + OpStore %x_62 %78 + %79 = OpLoad %bool %x_64_phi + %80 = OpLoad %int %x_65_phi + %82 = OpSLessThan %bool %int_0 %int_1 + %83 = OpLoad %bool %x_62 + OpStore %x_70_phi %83 OpStore %x_71_phi %false - OpSelectionMerge %88 None - OpBranchConditional %true %89 %90 - %89 = OpLabel - OpBranch %88 - %90 = OpLabel - OpBranch %78 - %88 = OpLabel + OpSelectionMerge %85 None + OpBranchConditional %true %86 %87 + %86 = OpLabel + OpBranch %85 + %87 = OpLabel + OpBranch %75 + %85 = OpLabel OpStore %x_36 %true OpStore %x_37 %true OpStore %x_70_phi %true OpStore %x_71_phi %true - OpBranch %78 - %79 = OpLabel + OpBranch %75 + %76 = OpLabel OpStore %x_62_phi %false OpStore %x_64_phi %false OpStore %x_65_phi %int_0 - OpBranch %77 - %78 = OpLabel - %91 = OpLoad %bool %x_70_phi - %92 = OpLoad %bool %x_71_phi - OpSelectionMerge %93 None - OpBranchConditional %true %94 %93 - %94 = OpLabel - OpBranch %65 - %93 = OpLabel + OpBranch %74 + %75 = OpLabel + %88 = OpLoad %bool %x_70_phi + %89 = OpLoad %bool %x_71_phi + OpSelectionMerge %90 None + OpBranchConditional %true %91 %90 + %91 = OpLabel + OpBranch %62 + %90 = OpLabel OpStore %x_36 %true - OpBranch %65 - %66 = OpLabel + OpBranch %62 + %63 = OpLabel OpStore %x_56_phi %false OpStore %x_58_phi %false - OpBranch %64 - %65 = OpLabel + OpBranch %61 + %62 = OpLabel OpStore %x_38 %true - %95 = OpSelect %float %true %float_1 %float_0 - %97 = OpAccessChain %_ptr_Function_float %x_43 %uint_0 - %98 = OpLoad %float %97 - %99 = OpAccessChain %_ptr_Function_float %x_43 %uint_1 + %92 = OpSelect %float %true %float_1 %float_0 + %94 = OpAccessChain %_ptr_Function_float %x_43 %uint_0 + %95 = OpLoad %float %94 + %96 = OpAccessChain %_ptr_Function_float %x_43 %uint_1 + %97 = OpLoad %float %96 + %99 = OpAccessChain %_ptr_Function_float %x_43 %uint_2 %100 = OpLoad %float %99 - %102 = OpAccessChain %_ptr_Function_float %x_43 %uint_2 - %103 = OpLoad %float %102 - %104 = OpCompositeConstruct %v4float %98 %100 %103 %float_1 - %105 = OpCompositeConstruct %v4float %95 %95 %95 %95 - %106 = OpFAdd %v4float %104 %105 - OpStore %x_GLF_color %106 - OpStore %x_GLF_color %107 + %101 = OpCompositeConstruct %v4float %95 %97 %100 %float_1 + %102 = OpCompositeConstruct %v4float %92 %92 %92 %92 + %103 = OpFAdd %v4float %101 %102 + OpStore %x_GLF_color %103 + OpStore %x_GLF_color %104 OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %108 +%tint_symbol_2 = OpFunction %void None %105 %tint_symbol = OpFunctionParameter %main_out - %112 = OpLabel - %113 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %113 + %109 = OpLabel + %110 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %110 OpReturn OpFunctionEnd %main = OpFunction %void None %12 - %115 = OpLabel - %116 = OpFunctionCall %void %main_1 - %118 = OpLoad %v4float %x_GLF_color - %119 = OpCompositeConstruct %main_out %118 - %117 = OpFunctionCall %void %tint_symbol_2 %119 + %112 = OpLabel + %113 = OpFunctionCall %void %main_1 + %115 = OpLoad %v4float %x_GLF_color + %116 = OpCompositeConstruct %main_out %115 + %114 = OpFunctionCall %void %tint_symbol_2 %116 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 41[%41] is not post dominated by the back-edge block 60[%60] - %60 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.spvasm.expected.spvasm index ef40c268c9..92f7fbdc4d 100644 --- a/test/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 141 +; Bound: 138 ; Schema: 0 OpCapability Shader %39 = OpExtInstImport "GLSL.std.450" @@ -81,7 +79,7 @@ SKIP: FAILED %_ptr_Function_float = OpTypePointer Function %float %uint_2 = OpConstant %uint 2 %main_out = OpTypeStruct %v4float - %128 = OpTypeFunction %void %main_out + %125 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %15 %18 = OpLabel %x_42 = OpVariable %_ptr_Function_v4float Function %5 @@ -207,46 +205,36 @@ SKIP: FAILED %119 = OpLoad %v4float %x_42 OpStore %x_41_phi %119 %120 = OpSLessThan %bool %36 %int_0 - OpSelectionMerge %121 None - OpBranchConditional %120 %122 %123 - %122 = OpLabel - OpBranch %121 - %123 = OpLabel - OpBranch %45 - %121 = OpLabel - OpBranch %44 + OpBranchConditional %120 %44 %45 %45 = OpLabel - %124 = OpLoad %bool %x_39 - OpSelectionMerge %125 None - OpBranchConditional %124 %126 %125 - %126 = OpLabel + %121 = OpLoad %bool %x_39 + OpSelectionMerge %122 None + OpBranchConditional %121 %123 %122 + %123 = OpLabel OpBranch %20 - %125 = OpLabel - %127 = OpLoad %v4float %x_42 - OpStore %x_GLF_color %127 + %122 = OpLabel + %124 = OpLoad %v4float %x_42 + OpStore %x_GLF_color %124 OpBranch %20 %21 = OpLabel OpBranch %19 %20 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %128 +%tint_symbol_3 = OpFunction %void None %125 %tint_symbol_1 = OpFunctionParameter %main_out - %132 = OpLabel - %133 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %133 + %129 = OpLabel + %130 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %130 OpReturn OpFunctionEnd %main = OpFunction %void None %15 - %135 = OpLabel - %136 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %136 - %137 = OpFunctionCall %void %main_1 - %139 = OpLoad %v4float %x_GLF_color - %140 = OpCompositeConstruct %main_out %139 - %138 = OpFunctionCall %void %tint_symbol_3 %140 + %132 = OpLabel + %133 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %133 + %134 = OpFunctionCall %void %main_1 + %136 = OpLoad %v4float %x_GLF_color + %137 = OpCompositeConstruct %main_out %136 + %135 = OpFunctionCall %void %tint_symbol_3 %137 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 46[%46] is not post dominated by the back-edge block 121[%121] - %121 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.wgsl.expected.spvasm index ef40c268c9..92f7fbdc4d 100644 --- a/test/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 141 +; Bound: 138 ; Schema: 0 OpCapability Shader %39 = OpExtInstImport "GLSL.std.450" @@ -81,7 +79,7 @@ SKIP: FAILED %_ptr_Function_float = OpTypePointer Function %float %uint_2 = OpConstant %uint 2 %main_out = OpTypeStruct %v4float - %128 = OpTypeFunction %void %main_out + %125 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %15 %18 = OpLabel %x_42 = OpVariable %_ptr_Function_v4float Function %5 @@ -207,46 +205,36 @@ SKIP: FAILED %119 = OpLoad %v4float %x_42 OpStore %x_41_phi %119 %120 = OpSLessThan %bool %36 %int_0 - OpSelectionMerge %121 None - OpBranchConditional %120 %122 %123 - %122 = OpLabel - OpBranch %121 - %123 = OpLabel - OpBranch %45 - %121 = OpLabel - OpBranch %44 + OpBranchConditional %120 %44 %45 %45 = OpLabel - %124 = OpLoad %bool %x_39 - OpSelectionMerge %125 None - OpBranchConditional %124 %126 %125 - %126 = OpLabel + %121 = OpLoad %bool %x_39 + OpSelectionMerge %122 None + OpBranchConditional %121 %123 %122 + %123 = OpLabel OpBranch %20 - %125 = OpLabel - %127 = OpLoad %v4float %x_42 - OpStore %x_GLF_color %127 + %122 = OpLabel + %124 = OpLoad %v4float %x_42 + OpStore %x_GLF_color %124 OpBranch %20 %21 = OpLabel OpBranch %19 %20 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %128 +%tint_symbol_3 = OpFunction %void None %125 %tint_symbol_1 = OpFunctionParameter %main_out - %132 = OpLabel - %133 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %133 + %129 = OpLabel + %130 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %130 OpReturn OpFunctionEnd %main = OpFunction %void None %15 - %135 = OpLabel - %136 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %136 - %137 = OpFunctionCall %void %main_1 - %139 = OpLoad %v4float %x_GLF_color - %140 = OpCompositeConstruct %main_out %139 - %138 = OpFunctionCall %void %tint_symbol_3 %140 + %132 = OpLabel + %133 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %133 + %134 = OpFunctionCall %void %main_1 + %136 = OpLoad %v4float %x_GLF_color + %137 = OpCompositeConstruct %main_out %136 + %135 = OpFunctionCall %void %tint_symbol_3 %137 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 46[%46] is not post dominated by the back-edge block 121[%121] - %121 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.spvasm.expected.spvasm index 17f5fb70f9..58e841e597 100644 --- a/test/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 112 +; Bound: 109 ; Schema: 0 OpCapability Shader %44 = OpExtInstImport "GLSL.std.450" @@ -74,9 +72,9 @@ SKIP: FAILED %int_0 = OpConstant %int 0 %int_6 = OpConstant %int 6 %int_1 = OpConstant %int 1 - %98 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %95 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 %main_out = OpTypeStruct %v4float - %99 = OpTypeFunction %void %main_out + %96 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %18 %21 = OpLabel %lv = OpVariable %_ptr_Function_float Function %8 @@ -134,70 +132,60 @@ SKIP: FAILED %77 = OpLabel OpBranch %76 %76 = OpLabel - OpSelectionMerge %79 None - OpBranchConditional %true %80 %81 - %80 = OpLabel - OpBranch %79 - %81 = OpLabel - OpBranch %75 - %79 = OpLabel - OpBranch %74 + OpBranchConditional %true %74 %75 %75 = OpLabel OpBranch %72 %72 = OpLabel OpStore %GLF_live5r %int_0 + OpBranch %80 + %80 = OpLabel + OpLoopMerge %81 %82 None OpBranch %83 %83 = OpLabel - OpLoopMerge %84 %85 None - OpBranch %86 - %86 = OpLabel - OpSelectionMerge %87 None - OpBranchConditional %true %88 %89 - %88 = OpLabel - OpBranch %87 - %89 = OpLabel - OpBranch %84 - %87 = OpLabel - %90 = OpLoad %int %GLF_live5_looplimiter6 - %92 = OpSGreaterThanEqual %bool %90 %int_6 - OpSelectionMerge %93 None - OpBranchConditional %92 %94 %93 - %94 = OpLabel - OpBranch %84 - %93 = OpLabel - %95 = OpLoad %int %GLF_live5_looplimiter6 - %97 = OpIAdd %int %95 %int_1 - OpStore %GLF_live5_looplimiter6 %97 - OpBranch %85 + OpSelectionMerge %84 None + OpBranchConditional %true %85 %86 %85 = OpLabel - OpBranch %83 + OpBranch %84 + %86 = OpLabel + OpBranch %81 %84 = OpLabel + %87 = OpLoad %int %GLF_live5_looplimiter6 + %89 = OpSGreaterThanEqual %bool %87 %int_6 + OpSelectionMerge %90 None + OpBranchConditional %89 %91 %90 + %91 = OpLabel + OpBranch %81 + %90 = OpLabel + %92 = OpLoad %int %GLF_live5_looplimiter6 + %94 = OpIAdd %int %92 %int_1 + OpStore %GLF_live5_looplimiter6 %94 + OpBranch %82 + %82 = OpLabel + OpBranch %80 + %81 = OpLabel OpBranch %66 %66 = OpLabel OpBranch %57 %57 = OpLabel OpBranch %51 %51 = OpLabel - OpStore %x_GLF_color %98 + OpStore %x_GLF_color %95 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %99 +%tint_symbol_3 = OpFunction %void None %96 %tint_symbol_1 = OpFunctionParameter %main_out - %103 = OpLabel - %104 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %104 + %100 = OpLabel + %101 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %101 OpReturn OpFunctionEnd %main = OpFunction %void None %18 - %106 = OpLabel - %107 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %107 - %108 = OpFunctionCall %void %main_1 - %110 = OpLoad %v4float %x_GLF_color - %111 = OpCompositeConstruct %main_out %110 - %109 = OpFunctionCall %void %tint_symbol_3 %111 + %103 = OpLabel + %104 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %104 + %105 = OpFunctionCall %void %main_1 + %107 = OpLoad %v4float %x_GLF_color + %108 = OpCompositeConstruct %main_out %107 + %106 = OpFunctionCall %void %tint_symbol_3 %108 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 76[%76] is not post dominated by the back-edge block 79[%79] - %79 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.wgsl.expected.spvasm index 17f5fb70f9..58e841e597 100644 --- a/test/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 112 +; Bound: 109 ; Schema: 0 OpCapability Shader %44 = OpExtInstImport "GLSL.std.450" @@ -74,9 +72,9 @@ SKIP: FAILED %int_0 = OpConstant %int 0 %int_6 = OpConstant %int 6 %int_1 = OpConstant %int 1 - %98 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %95 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 %main_out = OpTypeStruct %v4float - %99 = OpTypeFunction %void %main_out + %96 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %18 %21 = OpLabel %lv = OpVariable %_ptr_Function_float Function %8 @@ -134,70 +132,60 @@ SKIP: FAILED %77 = OpLabel OpBranch %76 %76 = OpLabel - OpSelectionMerge %79 None - OpBranchConditional %true %80 %81 - %80 = OpLabel - OpBranch %79 - %81 = OpLabel - OpBranch %75 - %79 = OpLabel - OpBranch %74 + OpBranchConditional %true %74 %75 %75 = OpLabel OpBranch %72 %72 = OpLabel OpStore %GLF_live5r %int_0 + OpBranch %80 + %80 = OpLabel + OpLoopMerge %81 %82 None OpBranch %83 %83 = OpLabel - OpLoopMerge %84 %85 None - OpBranch %86 - %86 = OpLabel - OpSelectionMerge %87 None - OpBranchConditional %true %88 %89 - %88 = OpLabel - OpBranch %87 - %89 = OpLabel - OpBranch %84 - %87 = OpLabel - %90 = OpLoad %int %GLF_live5_looplimiter6 - %92 = OpSGreaterThanEqual %bool %90 %int_6 - OpSelectionMerge %93 None - OpBranchConditional %92 %94 %93 - %94 = OpLabel - OpBranch %84 - %93 = OpLabel - %95 = OpLoad %int %GLF_live5_looplimiter6 - %97 = OpIAdd %int %95 %int_1 - OpStore %GLF_live5_looplimiter6 %97 - OpBranch %85 + OpSelectionMerge %84 None + OpBranchConditional %true %85 %86 %85 = OpLabel - OpBranch %83 + OpBranch %84 + %86 = OpLabel + OpBranch %81 %84 = OpLabel + %87 = OpLoad %int %GLF_live5_looplimiter6 + %89 = OpSGreaterThanEqual %bool %87 %int_6 + OpSelectionMerge %90 None + OpBranchConditional %89 %91 %90 + %91 = OpLabel + OpBranch %81 + %90 = OpLabel + %92 = OpLoad %int %GLF_live5_looplimiter6 + %94 = OpIAdd %int %92 %int_1 + OpStore %GLF_live5_looplimiter6 %94 + OpBranch %82 + %82 = OpLabel + OpBranch %80 + %81 = OpLabel OpBranch %66 %66 = OpLabel OpBranch %57 %57 = OpLabel OpBranch %51 %51 = OpLabel - OpStore %x_GLF_color %98 + OpStore %x_GLF_color %95 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %99 +%tint_symbol_3 = OpFunction %void None %96 %tint_symbol_1 = OpFunctionParameter %main_out - %103 = OpLabel - %104 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %104 + %100 = OpLabel + %101 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %101 OpReturn OpFunctionEnd %main = OpFunction %void None %18 - %106 = OpLabel - %107 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %107 - %108 = OpFunctionCall %void %main_1 - %110 = OpLoad %v4float %x_GLF_color - %111 = OpCompositeConstruct %main_out %110 - %109 = OpFunctionCall %void %tint_symbol_3 %111 + %103 = OpLabel + %104 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %104 + %105 = OpFunctionCall %void %main_1 + %107 = OpLoad %v4float %x_GLF_color + %108 = OpCompositeConstruct %main_out %107 + %106 = OpFunctionCall %void %tint_symbol_3 %108 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 76[%76] is not post dominated by the back-edge block 79[%79] - %79 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.spvasm.expected.spvasm index 4613f9f74f..ec2ad53c71 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 509 +; Bound: 506 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -117,9 +115,9 @@ SKIP: FAILED %float_1 = OpConstant %float 1 %489 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 %float_0 = OpConstant %float 0 - %495 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 + %492 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 %main_out = OpTypeStruct %v4float - %496 = OpTypeFunction %void %main_out + %493 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %22 %25 = OpLabel %pos = OpVariable %_ptr_Function_v2float Function %28 @@ -741,35 +739,25 @@ SKIP: FAILED OpBranch %87 %87 = OpLabel %490 = OpLoad %bool %canwalk - OpSelectionMerge %491 None - OpBranchConditional %490 %492 %493 - %492 = OpLabel - OpBranch %491 - %493 = OpLabel - OpBranch %86 - %491 = OpLabel - OpBranch %85 + OpBranchConditional %490 %85 %86 %86 = OpLabel - OpStore %x_GLF_color %495 + OpStore %x_GLF_color %492 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %496 +%tint_symbol_3 = OpFunction %void None %493 %tint_symbol_1 = OpFunctionParameter %main_out - %500 = OpLabel - %501 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %501 + %497 = OpLabel + %498 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %498 OpReturn OpFunctionEnd %main = OpFunction %void None %22 - %503 = OpLabel - %504 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %504 - %505 = OpFunctionCall %void %main_1 - %507 = OpLoad %v4float %x_GLF_color - %508 = OpCompositeConstruct %main_out %507 - %506 = OpFunctionCall %void %tint_symbol_3 %508 + %500 = OpLabel + %501 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %501 + %502 = OpFunctionCall %void %main_1 + %504 = OpLoad %v4float %x_GLF_color + %505 = OpCompositeConstruct %main_out %504 + %503 = OpFunctionCall %void %tint_symbol_3 %505 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 87[%87] is not post dominated by the back-edge block 491[%491] - %491 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.wgsl.expected.spvasm index 4613f9f74f..ec2ad53c71 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 509 +; Bound: 506 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -117,9 +115,9 @@ SKIP: FAILED %float_1 = OpConstant %float 1 %489 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 %float_0 = OpConstant %float 0 - %495 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 + %492 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 %main_out = OpTypeStruct %v4float - %496 = OpTypeFunction %void %main_out + %493 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %22 %25 = OpLabel %pos = OpVariable %_ptr_Function_v2float Function %28 @@ -741,35 +739,25 @@ SKIP: FAILED OpBranch %87 %87 = OpLabel %490 = OpLoad %bool %canwalk - OpSelectionMerge %491 None - OpBranchConditional %490 %492 %493 - %492 = OpLabel - OpBranch %491 - %493 = OpLabel - OpBranch %86 - %491 = OpLabel - OpBranch %85 + OpBranchConditional %490 %85 %86 %86 = OpLabel - OpStore %x_GLF_color %495 + OpStore %x_GLF_color %492 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %496 +%tint_symbol_3 = OpFunction %void None %493 %tint_symbol_1 = OpFunctionParameter %main_out - %500 = OpLabel - %501 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %501 + %497 = OpLabel + %498 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %498 OpReturn OpFunctionEnd %main = OpFunction %void None %22 - %503 = OpLabel - %504 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %504 - %505 = OpFunctionCall %void %main_1 - %507 = OpLoad %v4float %x_GLF_color - %508 = OpCompositeConstruct %main_out %507 - %506 = OpFunctionCall %void %tint_symbol_3 %508 + %500 = OpLabel + %501 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %501 + %502 = OpFunctionCall %void %main_1 + %504 = OpLoad %v4float %x_GLF_color + %505 = OpCompositeConstruct %main_out %504 + %503 = OpFunctionCall %void %tint_symbol_3 %505 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 87[%87] is not post dominated by the back-edge block 491[%491] - %491 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.spvasm.expected.spvasm index efc1a09454..b8a67a850e 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 520 +; Bound: 517 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -123,9 +121,9 @@ SKIP: FAILED %int_8 = OpConstant %int 8 %float_1 = OpConstant %float 1 %501 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %506 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 + %503 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 %main_out = OpTypeStruct %v4float - %507 = OpTypeFunction %void %main_out + %504 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %28 %31 = OpLabel %pos = OpVariable %_ptr_Function_v2float Function %34 @@ -757,35 +755,25 @@ SKIP: FAILED OpBranch %96 %96 = OpLabel %502 = OpLoad %bool %canwalk - OpSelectionMerge %503 None - OpBranchConditional %502 %504 %505 - %504 = OpLabel - OpBranch %503 - %505 = OpLabel - OpBranch %95 - %503 = OpLabel - OpBranch %94 + OpBranchConditional %502 %94 %95 %95 = OpLabel - OpStore %x_GLF_color %506 + OpStore %x_GLF_color %503 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %507 +%tint_symbol_3 = OpFunction %void None %504 %tint_symbol_1 = OpFunctionParameter %main_out - %511 = OpLabel - %512 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %512 + %508 = OpLabel + %509 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %509 OpReturn OpFunctionEnd %main = OpFunction %void None %28 - %514 = OpLabel - %515 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %515 - %516 = OpFunctionCall %void %main_1 - %518 = OpLoad %v4float %x_GLF_color - %519 = OpCompositeConstruct %main_out %518 - %517 = OpFunctionCall %void %tint_symbol_3 %519 + %511 = OpLabel + %512 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %512 + %513 = OpFunctionCall %void %main_1 + %515 = OpLoad %v4float %x_GLF_color + %516 = OpCompositeConstruct %main_out %515 + %514 = OpFunctionCall %void %tint_symbol_3 %516 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 96[%96] is not post dominated by the back-edge block 503[%503] - %503 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.wgsl.expected.spvasm index efc1a09454..b8a67a850e 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 520 +; Bound: 517 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -123,9 +121,9 @@ SKIP: FAILED %int_8 = OpConstant %int 8 %float_1 = OpConstant %float 1 %501 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %506 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 + %503 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 %main_out = OpTypeStruct %v4float - %507 = OpTypeFunction %void %main_out + %504 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %28 %31 = OpLabel %pos = OpVariable %_ptr_Function_v2float Function %34 @@ -757,35 +755,25 @@ SKIP: FAILED OpBranch %96 %96 = OpLabel %502 = OpLoad %bool %canwalk - OpSelectionMerge %503 None - OpBranchConditional %502 %504 %505 - %504 = OpLabel - OpBranch %503 - %505 = OpLabel - OpBranch %95 - %503 = OpLabel - OpBranch %94 + OpBranchConditional %502 %94 %95 %95 = OpLabel - OpStore %x_GLF_color %506 + OpStore %x_GLF_color %503 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %507 +%tint_symbol_3 = OpFunction %void None %504 %tint_symbol_1 = OpFunctionParameter %main_out - %511 = OpLabel - %512 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %512 + %508 = OpLabel + %509 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %509 OpReturn OpFunctionEnd %main = OpFunction %void None %28 - %514 = OpLabel - %515 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %515 - %516 = OpFunctionCall %void %main_1 - %518 = OpLoad %v4float %x_GLF_color - %519 = OpCompositeConstruct %main_out %518 - %517 = OpFunctionCall %void %tint_symbol_3 %519 + %511 = OpLabel + %512 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %512 + %513 = OpFunctionCall %void %main_1 + %515 = OpLoad %v4float %x_GLF_color + %516 = OpCompositeConstruct %main_out %515 + %514 = OpFunctionCall %void %tint_symbol_3 %516 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 96[%96] is not post dominated by the back-edge block 503[%503] - %503 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.spvasm index 9042981b0c..b1e952c8e6 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.spvasm @@ -1,12 +1,10 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 419 +; Bound: 412 ; Schema: 0 OpCapability Shader - %180 = OpExtInstImport "GLSL.std.450" + %176 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2 OpExecutionMode %main OriginUpperLeft @@ -97,12 +95,12 @@ SKIP: FAILED %bool = OpTypeBool %_ptr_Private_int = OpTypePointer Private %int %int_10 = OpConstant %int 10 - %135 = OpTypeFunction %void + %131 = OpTypeFunction %void %int_0 = OpConstant %int 0 %int_9 = OpConstant %int 9 %int_2 = OpConstant %int 2 %_ptr_Function_float = OpTypePointer Function %float - %204 = OpConstantNull %float + %200 = OpConstantNull %float %uint_0 = OpConstant %uint 0 %_ptr_Uniform_float = OpTypePointer Uniform %float %int_n5 = OpConstant %int -5 @@ -132,7 +130,7 @@ SKIP: FAILED %v3float = OpTypeVector %float 3 %float_1 = OpConstant %float 1 %main_out = OpTypeStruct %v4float - %406 = OpTypeFunction %void %main_out + %399 = OpTypeFunction %void %main_out %merge_i1_i1_i1_ = OpFunction %void None %26 %from = OpFunctionParameter %_ptr_Function_int %mid = OpFunctionParameter %_ptr_Function_int @@ -159,129 +157,119 @@ SKIP: FAILED %54 = OpLoad %int %j %56 = OpLoad %int %to %57 = OpSLessThanEqual %bool %51 %53 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel - %61 = OpSLessThanEqual %bool %54 %56 - OpBranch %59 - %59 = OpLabel - %62 = OpPhi %bool %57 %50 %61 %60 - OpSelectionMerge %63 None - OpBranchConditional %62 %64 %65 - %64 = OpLabel - OpBranch %63 - %65 = OpLabel - OpBranch %48 + %59 = OpSLessThanEqual %bool %54 %56 + %60 = OpLogicalAnd %bool %57 %59 + OpSelectionMerge %61 None + OpBranchConditional %60 %62 %63 + %62 = OpLabel + OpBranch %61 %63 = OpLabel - %66 = OpLoad %int %i - %68 = OpAccessChain %_ptr_Private_int %data %66 - %69 = OpLoad %int %68 - %70 = OpLoad %int %j - %71 = OpAccessChain %_ptr_Private_int %data %70 - %72 = OpLoad %int %71 - %73 = OpSLessThan %bool %69 %72 - OpSelectionMerge %74 None - OpBranchConditional %73 %75 %76 - %75 = OpLabel - %77 = OpLoad %int %k + OpBranch %48 + %61 = OpLabel + %64 = OpLoad %int %i + %66 = OpAccessChain %_ptr_Private_int %data %64 + %67 = OpLoad %int %66 + %68 = OpLoad %int %j + %69 = OpAccessChain %_ptr_Private_int %data %68 + %70 = OpLoad %int %69 + %71 = OpSLessThan %bool %67 %70 + OpSelectionMerge %72 None + OpBranchConditional %71 %73 %74 + %73 = OpLabel + %75 = OpLoad %int %k + %76 = OpIAdd %int %75 %int_1 + OpStore %k %76 + %77 = OpLoad %int %i %78 = OpIAdd %int %77 %int_1 - OpStore %k %78 - %79 = OpLoad %int %i - %80 = OpIAdd %int %79 %int_1 - OpStore %i %80 - %81 = OpAccessChain %_ptr_Private_int %data %79 - %82 = OpLoad %int %81 - %83 = OpAccessChain %_ptr_Private_int %temp %77 - OpStore %83 %82 - OpBranch %74 - %76 = OpLabel - %84 = OpLoad %int %k - %85 = OpIAdd %int %84 %int_1 - OpStore %k %85 - %86 = OpLoad %int %j - %87 = OpIAdd %int %86 %int_1 - OpStore %j %87 - %88 = OpAccessChain %_ptr_Private_int %data %86 - %89 = OpLoad %int %88 - %90 = OpAccessChain %_ptr_Private_int %temp %84 - OpStore %90 %89 - OpBranch %74 + OpStore %i %78 + %79 = OpAccessChain %_ptr_Private_int %data %77 + %80 = OpLoad %int %79 + %81 = OpAccessChain %_ptr_Private_int %temp %75 + OpStore %81 %80 + OpBranch %72 %74 = OpLabel + %82 = OpLoad %int %k + %83 = OpIAdd %int %82 %int_1 + OpStore %k %83 + %84 = OpLoad %int %j + %85 = OpIAdd %int %84 %int_1 + OpStore %j %85 + %86 = OpAccessChain %_ptr_Private_int %data %84 + %87 = OpLoad %int %86 + %88 = OpAccessChain %_ptr_Private_int %temp %82 + OpStore %88 %87 + OpBranch %72 + %72 = OpLabel OpBranch %49 %49 = OpLabel OpBranch %47 %48 = OpLabel + OpBranch %89 + %89 = OpLabel + OpLoopMerge %90 %91 None + OpBranch %92 + %92 = OpLabel + %93 = OpLoad %int %i + %94 = OpLoad %int %i + %96 = OpLoad %int %mid + %98 = OpSLessThan %bool %93 %int_10 + %99 = OpSLessThanEqual %bool %94 %96 + %100 = OpLogicalAnd %bool %98 %99 + OpSelectionMerge %101 None + OpBranchConditional %100 %102 %103 + %102 = OpLabel + OpBranch %101 + %103 = OpLabel + OpBranch %90 + %101 = OpLabel + %104 = OpLoad %int %k + %105 = OpIAdd %int %104 %int_1 + OpStore %k %105 + %106 = OpLoad %int %i + %107 = OpIAdd %int %106 %int_1 + OpStore %i %107 + %108 = OpAccessChain %_ptr_Private_int %data %106 + %109 = OpLoad %int %108 + %110 = OpAccessChain %_ptr_Private_int %temp %104 + OpStore %110 %109 OpBranch %91 %91 = OpLabel - OpLoopMerge %92 %93 None - OpBranch %94 - %94 = OpLabel - %95 = OpLoad %int %i - %96 = OpLoad %int %i - %98 = OpLoad %int %mid - %100 = OpSLessThan %bool %95 %int_10 - OpSelectionMerge %101 None - OpBranchConditional %100 %102 %101 - %102 = OpLabel - %103 = OpSLessThanEqual %bool %96 %98 - OpBranch %101 - %101 = OpLabel - %104 = OpPhi %bool %100 %94 %103 %102 - OpSelectionMerge %105 None - OpBranchConditional %104 %106 %107 - %106 = OpLabel - OpBranch %105 - %107 = OpLabel - OpBranch %92 - %105 = OpLabel - %108 = OpLoad %int %k - %109 = OpIAdd %int %108 %int_1 - OpStore %k %109 - %110 = OpLoad %int %i - %111 = OpIAdd %int %110 %int_1 - OpStore %i %111 - %112 = OpAccessChain %_ptr_Private_int %data %110 - %113 = OpLoad %int %112 - %114 = OpAccessChain %_ptr_Private_int %temp %108 - OpStore %114 %113 - OpBranch %93 - %93 = OpLabel - OpBranch %91 - %92 = OpLabel - %116 = OpLoad %int %from - OpStore %i_1 %116 - OpBranch %117 - %117 = OpLabel - OpLoopMerge %118 %119 None - OpBranch %120 - %120 = OpLabel - %121 = OpLoad %int %i_1 - %123 = OpLoad %int %to - %124 = OpSLessThanEqual %bool %121 %123 - OpSelectionMerge %125 None - OpBranchConditional %124 %126 %127 - %126 = OpLabel - OpBranch %125 - %127 = OpLabel - OpBranch %118 - %125 = OpLabel - %128 = OpLoad %int %i_1 + OpBranch %89 + %90 = OpLabel + %112 = OpLoad %int %from + OpStore %i_1 %112 + OpBranch %113 + %113 = OpLabel + OpLoopMerge %114 %115 None + OpBranch %116 + %116 = OpLabel + %117 = OpLoad %int %i_1 + %119 = OpLoad %int %to + %120 = OpSLessThanEqual %bool %117 %119 + OpSelectionMerge %121 None + OpBranchConditional %120 %122 %123 + %122 = OpLabel + OpBranch %121 + %123 = OpLabel + OpBranch %114 + %121 = OpLabel + %124 = OpLoad %int %i_1 + %125 = OpLoad %int %i_1 + %126 = OpAccessChain %_ptr_Private_int %temp %125 + %127 = OpLoad %int %126 + %128 = OpAccessChain %_ptr_Private_int %data %124 + OpStore %128 %127 + OpBranch %115 + %115 = OpLabel %129 = OpLoad %int %i_1 - %130 = OpAccessChain %_ptr_Private_int %temp %129 - %131 = OpLoad %int %130 - %132 = OpAccessChain %_ptr_Private_int %data %128 - OpStore %132 %131 - OpBranch %119 - %119 = OpLabel - %133 = OpLoad %int %i_1 - %134 = OpIAdd %int %133 %int_1 - OpStore %i_1 %134 - OpBranch %117 - %118 = OpLabel + %130 = OpIAdd %int %129 %int_1 + OpStore %i_1 %130 + OpBranch %113 + %114 = OpLabel OpReturn OpFunctionEnd - %mergeSort_ = OpFunction %void None %135 - %137 = OpLabel + %mergeSort_ = OpFunction %void None %131 + %133 = OpLabel %low = OpVariable %_ptr_Function_int Function %35 %high = OpVariable %_ptr_Function_int Function %35 %m = OpVariable %_ptr_Function_int Function %35 @@ -295,366 +283,356 @@ SKIP: FAILED OpStore %low %int_0 OpStore %high %int_9 OpStore %m %int_1 - OpBranch %150 - %150 = OpLabel - OpLoopMerge %151 %152 None + OpBranch %146 + %146 = OpLabel + OpLoopMerge %147 %148 None + OpBranch %149 + %149 = OpLabel + %150 = OpLoad %int %m + %151 = OpLoad %int %high + %152 = OpSLessThanEqual %bool %150 %151 + OpSelectionMerge %153 None + OpBranchConditional %152 %154 %155 + %154 = OpLabel OpBranch %153 + %155 = OpLabel + OpBranch %147 %153 = OpLabel - %154 = OpLoad %int %m - %155 = OpLoad %int %high - %156 = OpSLessThanEqual %bool %154 %155 - OpSelectionMerge %157 None - OpBranchConditional %156 %158 %159 - %158 = OpLabel + %156 = OpLoad %int %low + OpStore %i_2 %156 OpBranch %157 - %159 = OpLabel - OpBranch %151 %157 = OpLabel - %160 = OpLoad %int %low - OpStore %i_2 %160 - OpBranch %161 - %161 = OpLabel - OpLoopMerge %162 %163 None + OpLoopMerge %158 %159 None + OpBranch %160 + %160 = OpLabel + %161 = OpLoad %int %i_2 + %162 = OpLoad %int %high + %163 = OpSLessThan %bool %161 %162 + OpSelectionMerge %164 None + OpBranchConditional %163 %165 %166 + %165 = OpLabel OpBranch %164 + %166 = OpLabel + OpBranch %158 %164 = OpLabel - %165 = OpLoad %int %i_2 - %166 = OpLoad %int %high - %167 = OpSLessThan %bool %165 %166 - OpSelectionMerge %168 None - OpBranchConditional %167 %169 %170 - %169 = OpLabel - OpBranch %168 - %170 = OpLabel - OpBranch %162 - %168 = OpLabel - %171 = OpLoad %int %i_2 - OpStore %from_1 %171 + %167 = OpLoad %int %i_2 + OpStore %from_1 %167 + %168 = OpLoad %int %i_2 + %169 = OpLoad %int %m + %170 = OpIAdd %int %168 %169 + %171 = OpISub %int %170 %int_1 + OpStore %mid_1 %171 %172 = OpLoad %int %i_2 %173 = OpLoad %int %m - %174 = OpIAdd %int %172 %173 - %175 = OpISub %int %174 %int_1 - OpStore %mid_1 %175 - %176 = OpLoad %int %i_2 - %177 = OpLoad %int %m - %178 = OpLoad %int %high - %182 = OpIMul %int %int_2 %177 - %183 = OpIAdd %int %176 %182 - %184 = OpISub %int %183 %int_1 - %179 = OpExtInst %int %180 SMin %184 %178 - OpStore %to_1 %179 - %185 = OpLoad %int %from_1 - OpStore %param %185 - %186 = OpLoad %int %mid_1 - OpStore %param_1 %186 - %187 = OpLoad %int %to_1 - OpStore %param_2 %187 - %188 = OpFunctionCall %void %merge_i1_i1_i1_ %param %param_1 %param_2 - OpBranch %163 - %163 = OpLabel + %174 = OpLoad %int %high + %178 = OpIMul %int %int_2 %173 + %179 = OpIAdd %int %172 %178 + %180 = OpISub %int %179 %int_1 + %175 = OpExtInst %int %176 SMin %180 %174 + OpStore %to_1 %175 + %181 = OpLoad %int %from_1 + OpStore %param %181 + %182 = OpLoad %int %mid_1 + OpStore %param_1 %182 + %183 = OpLoad %int %to_1 + OpStore %param_2 %183 + %184 = OpFunctionCall %void %merge_i1_i1_i1_ %param %param_1 %param_2 + OpBranch %159 + %159 = OpLabel + %188 = OpLoad %int %m + %189 = OpLoad %int %i_2 + %190 = OpIMul %int %int_2 %188 + %191 = OpIAdd %int %189 %190 + OpStore %i_2 %191 + OpBranch %157 + %158 = OpLabel + OpBranch %148 + %148 = OpLabel %192 = OpLoad %int %m - %193 = OpLoad %int %i_2 - %194 = OpIMul %int %int_2 %192 - %195 = OpIAdd %int %193 %194 - OpStore %i_2 %195 - OpBranch %161 - %162 = OpLabel - OpBranch %152 - %152 = OpLabel - %196 = OpLoad %int %m - %197 = OpIMul %int %int_2 %196 - OpStore %m %197 - OpBranch %150 - %151 = OpLabel + %193 = OpIMul %int %int_2 %192 + OpStore %m %193 + OpBranch %146 + %147 = OpLabel OpReturn OpFunctionEnd - %main_1 = OpFunction %void None %135 - %199 = OpLabel + %main_1 = OpFunction %void None %131 + %195 = OpLabel %i_3 = OpVariable %_ptr_Function_int Function %35 %j_1 = OpVariable %_ptr_Function_int Function %35 - %grey = OpVariable %_ptr_Function_float Function %204 - %207 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 - %208 = OpLoad %float %207 - %209 = OpConvertFToS %int %208 - OpStore %i_3 %209 - OpBranch %210 - %210 = OpLabel - OpLoopMerge %211 %212 None - OpBranch %213 + %grey = OpVariable %_ptr_Function_float Function %200 + %203 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 + %204 = OpLoad %float %203 + %205 = OpConvertFToS %int %204 + OpStore %i_3 %205 + OpBranch %206 + %206 = OpLabel + OpLoopMerge %207 %208 None + OpBranch %209 + %209 = OpLabel + %210 = OpLoad %int %i_3 + OpSelectionMerge %211 None + OpSwitch %210 %212 9 %213 8 %214 7 %215 6 %216 5 %217 4 %218 3 %219 2 %220 1 %221 0 %222 %213 = OpLabel - %214 = OpLoad %int %i_3 - OpSelectionMerge %215 None - OpSwitch %214 %216 9 %217 8 %218 7 %219 6 %220 5 %221 4 %222 3 %223 2 %224 1 %225 0 %226 + %223 = OpLoad %int %i_3 + %224 = OpAccessChain %_ptr_Private_int %data %223 + OpStore %224 %int_n5 + OpBranch %211 + %214 = OpLabel + %226 = OpLoad %int %i_3 + %227 = OpAccessChain %_ptr_Private_int %data %226 + OpStore %227 %int_n4 + OpBranch %211 + %215 = OpLabel + %229 = OpLoad %int %i_3 + %230 = OpAccessChain %_ptr_Private_int %data %229 + OpStore %230 %int_n3 + OpBranch %211 + %216 = OpLabel + %232 = OpLoad %int %i_3 + %233 = OpAccessChain %_ptr_Private_int %data %232 + OpStore %233 %int_n2 + OpBranch %211 %217 = OpLabel - %227 = OpLoad %int %i_3 - %228 = OpAccessChain %_ptr_Private_int %data %227 - OpStore %228 %int_n5 - OpBranch %215 + %235 = OpLoad %int %i_3 + %236 = OpAccessChain %_ptr_Private_int %data %235 + OpStore %236 %int_n1 + OpBranch %211 %218 = OpLabel - %230 = OpLoad %int %i_3 - %231 = OpAccessChain %_ptr_Private_int %data %230 - OpStore %231 %int_n4 - OpBranch %215 + %238 = OpLoad %int %i_3 + %239 = OpAccessChain %_ptr_Private_int %data %238 + OpStore %239 %int_0 + OpBranch %211 %219 = OpLabel - %233 = OpLoad %int %i_3 - %234 = OpAccessChain %_ptr_Private_int %data %233 - OpStore %234 %int_n3 - OpBranch %215 + %240 = OpLoad %int %i_3 + %241 = OpAccessChain %_ptr_Private_int %data %240 + OpStore %241 %int_1 + OpBranch %211 %220 = OpLabel - %236 = OpLoad %int %i_3 - %237 = OpAccessChain %_ptr_Private_int %data %236 - OpStore %237 %int_n2 - OpBranch %215 - %221 = OpLabel - %239 = OpLoad %int %i_3 - %240 = OpAccessChain %_ptr_Private_int %data %239 - OpStore %240 %int_n1 - OpBranch %215 - %222 = OpLabel %242 = OpLoad %int %i_3 %243 = OpAccessChain %_ptr_Private_int %data %242 - OpStore %243 %int_0 - OpBranch %215 - %223 = OpLabel + OpStore %243 %int_2 + OpBranch %211 + %221 = OpLabel %244 = OpLoad %int %i_3 %245 = OpAccessChain %_ptr_Private_int %data %244 - OpStore %245 %int_1 - OpBranch %215 - %224 = OpLabel - %246 = OpLoad %int %i_3 - %247 = OpAccessChain %_ptr_Private_int %data %246 - OpStore %247 %int_2 - OpBranch %215 - %225 = OpLabel - %248 = OpLoad %int %i_3 - %249 = OpAccessChain %_ptr_Private_int %data %248 - OpStore %249 %int_3 - OpBranch %215 - %226 = OpLabel - %251 = OpLoad %int %i_3 - %252 = OpAccessChain %_ptr_Private_int %data %251 - OpStore %252 %int_4 - OpBranch %215 - %216 = OpLabel - OpBranch %215 - %215 = OpLabel - %254 = OpLoad %int %i_3 - %255 = OpIAdd %int %254 %int_1 - OpStore %i_3 %255 - OpBranch %212 - %212 = OpLabel - %256 = OpLoad %int %i_3 - %257 = OpSLessThan %bool %256 %int_10 - OpSelectionMerge %258 None - OpBranchConditional %257 %259 %260 - %259 = OpLabel - OpBranch %258 - %260 = OpLabel + OpStore %245 %int_3 + OpBranch %211 + %222 = OpLabel + %247 = OpLoad %int %i_3 + %248 = OpAccessChain %_ptr_Private_int %data %247 + OpStore %248 %int_4 + OpBranch %211 + %212 = OpLabel OpBranch %211 - %258 = OpLabel - OpBranch %210 %211 = OpLabel + %250 = OpLoad %int %i_3 + %251 = OpIAdd %int %250 %int_1 + OpStore %i_3 %251 + OpBranch %208 + %208 = OpLabel + %252 = OpLoad %int %i_3 + %253 = OpSLessThan %bool %252 %int_10 + OpBranchConditional %253 %206 %207 + %207 = OpLabel OpStore %j_1 %int_0 - OpBranch %261 + OpBranch %254 + %254 = OpLabel + OpLoopMerge %255 %256 None + OpBranch %257 + %257 = OpLabel + %258 = OpLoad %int %j_1 + %259 = OpSLessThan %bool %258 %int_10 + OpSelectionMerge %260 None + OpBranchConditional %259 %261 %262 %261 = OpLabel - OpLoopMerge %262 %263 None - OpBranch %264 - %264 = OpLabel - %265 = OpLoad %int %j_1 - %266 = OpSLessThan %bool %265 %int_10 - OpSelectionMerge %267 None - OpBranchConditional %266 %268 %269 - %268 = OpLabel - OpBranch %267 - %269 = OpLabel - OpBranch %262 - %267 = OpLabel - %270 = OpLoad %int %j_1 - %271 = OpLoad %int %j_1 - %272 = OpAccessChain %_ptr_Private_int %data %271 - %273 = OpLoad %int %272 - %274 = OpAccessChain %_ptr_Private_int %temp %270 - OpStore %274 %273 - OpBranch %263 - %263 = OpLabel - %275 = OpLoad %int %j_1 - %276 = OpIAdd %int %275 %int_1 - OpStore %j_1 %276 - OpBranch %261 + OpBranch %260 %262 = OpLabel - %277 = OpFunctionCall %void %mergeSort_ - %280 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %281 = OpLoad %float %280 - %282 = OpConvertFToS %int %281 - %284 = OpSLessThan %bool %282 %int_30 - OpSelectionMerge %285 None - OpBranchConditional %284 %286 %287 - %286 = OpLabel - %288 = OpAccessChain %_ptr_Private_int %data %int_0 - %289 = OpLoad %int %288 - %291 = OpConvertSToF %float %289 - %293 = OpFDiv %float %291 %float_10 - %294 = OpFAdd %float %float_0_5 %293 - OpStore %grey %294 - OpBranch %285 - %287 = OpLabel - %295 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %296 = OpLoad %float %295 - %297 = OpConvertFToS %int %296 - %299 = OpSLessThan %bool %297 %int_60 - OpSelectionMerge %300 None - OpBranchConditional %299 %301 %302 - %301 = OpLabel - %303 = OpAccessChain %_ptr_Private_int %data %int_1 - %304 = OpLoad %int %303 - %305 = OpConvertSToF %float %304 - %306 = OpFDiv %float %305 %float_10 - %307 = OpFAdd %float %float_0_5 %306 - OpStore %grey %307 - OpBranch %300 - %302 = OpLabel - %308 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %309 = OpLoad %float %308 - %310 = OpConvertFToS %int %309 - %312 = OpSLessThan %bool %310 %int_90 - OpSelectionMerge %313 None - OpBranchConditional %312 %314 %315 - %314 = OpLabel - %316 = OpAccessChain %_ptr_Private_int %data %int_2 - %317 = OpLoad %int %316 - %318 = OpConvertSToF %float %317 - %319 = OpFDiv %float %318 %float_10 - %320 = OpFAdd %float %float_0_5 %319 - OpStore %grey %320 - OpBranch %313 - %315 = OpLabel - %321 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %322 = OpLoad %float %321 - %323 = OpConvertFToS %int %322 - %325 = OpSLessThan %bool %323 %int_120 - OpSelectionMerge %326 None - OpBranchConditional %325 %327 %328 - %327 = OpLabel - %329 = OpAccessChain %_ptr_Private_int %data %int_3 - %330 = OpLoad %int %329 - %331 = OpConvertSToF %float %330 - %332 = OpFDiv %float %331 %float_10 - %333 = OpFAdd %float %float_0_5 %332 - OpStore %grey %333 - OpBranch %326 - %328 = OpLabel - %334 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %335 = OpLoad %float %334 - %336 = OpConvertFToS %int %335 - %338 = OpSLessThan %bool %336 %int_150 - OpSelectionMerge %339 None - OpBranchConditional %338 %340 %341 - %340 = OpLabel + OpBranch %255 + %260 = OpLabel + %263 = OpLoad %int %j_1 + %264 = OpLoad %int %j_1 + %265 = OpAccessChain %_ptr_Private_int %data %264 + %266 = OpLoad %int %265 + %267 = OpAccessChain %_ptr_Private_int %temp %263 + OpStore %267 %266 + OpBranch %256 + %256 = OpLabel + %268 = OpLoad %int %j_1 + %269 = OpIAdd %int %268 %int_1 + OpStore %j_1 %269 + OpBranch %254 + %255 = OpLabel + %270 = OpFunctionCall %void %mergeSort_ + %273 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %274 = OpLoad %float %273 + %275 = OpConvertFToS %int %274 + %277 = OpSLessThan %bool %275 %int_30 + OpSelectionMerge %278 None + OpBranchConditional %277 %279 %280 + %279 = OpLabel + %281 = OpAccessChain %_ptr_Private_int %data %int_0 + %282 = OpLoad %int %281 + %284 = OpConvertSToF %float %282 + %286 = OpFDiv %float %284 %float_10 + %287 = OpFAdd %float %float_0_5 %286 + OpStore %grey %287 + OpBranch %278 + %280 = OpLabel + %288 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %289 = OpLoad %float %288 + %290 = OpConvertFToS %int %289 + %292 = OpSLessThan %bool %290 %int_60 + OpSelectionMerge %293 None + OpBranchConditional %292 %294 %295 + %294 = OpLabel + %296 = OpAccessChain %_ptr_Private_int %data %int_1 + %297 = OpLoad %int %296 + %298 = OpConvertSToF %float %297 + %299 = OpFDiv %float %298 %float_10 + %300 = OpFAdd %float %float_0_5 %299 + OpStore %grey %300 + OpBranch %293 + %295 = OpLabel + %301 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %302 = OpLoad %float %301 + %303 = OpConvertFToS %int %302 + %305 = OpSLessThan %bool %303 %int_90 + OpSelectionMerge %306 None + OpBranchConditional %305 %307 %308 + %307 = OpLabel + %309 = OpAccessChain %_ptr_Private_int %data %int_2 + %310 = OpLoad %int %309 + %311 = OpConvertSToF %float %310 + %312 = OpFDiv %float %311 %float_10 + %313 = OpFAdd %float %float_0_5 %312 + OpStore %grey %313 + OpBranch %306 + %308 = OpLabel + %314 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %315 = OpLoad %float %314 + %316 = OpConvertFToS %int %315 + %318 = OpSLessThan %bool %316 %int_120 + OpSelectionMerge %319 None + OpBranchConditional %318 %320 %321 + %320 = OpLabel + %322 = OpAccessChain %_ptr_Private_int %data %int_3 + %323 = OpLoad %int %322 + %324 = OpConvertSToF %float %323 + %325 = OpFDiv %float %324 %float_10 + %326 = OpFAdd %float %float_0_5 %325 + OpStore %grey %326 + OpBranch %319 + %321 = OpLabel + %327 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %328 = OpLoad %float %327 + %329 = OpConvertFToS %int %328 + %331 = OpSLessThan %bool %329 %int_150 + OpSelectionMerge %332 None + OpBranchConditional %331 %333 %334 + %333 = OpLabel OpKill + %334 = OpLabel + %335 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %336 = OpLoad %float %335 + %337 = OpConvertFToS %int %336 + %339 = OpSLessThan %bool %337 %int_180 + OpSelectionMerge %340 None + OpBranchConditional %339 %341 %342 %341 = OpLabel - %342 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %343 = OpLoad %float %342 - %344 = OpConvertFToS %int %343 - %346 = OpSLessThan %bool %344 %int_180 - OpSelectionMerge %347 None - OpBranchConditional %346 %348 %349 - %348 = OpLabel - %351 = OpAccessChain %_ptr_Private_int %data %int_5 - %352 = OpLoad %int %351 - %353 = OpConvertSToF %float %352 - %354 = OpFDiv %float %353 %float_10 - %355 = OpFAdd %float %float_0_5 %354 - OpStore %grey %355 - OpBranch %347 - %349 = OpLabel - %356 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %357 = OpLoad %float %356 - %358 = OpConvertFToS %int %357 - %360 = OpSLessThan %bool %358 %int_210 - OpSelectionMerge %361 None - OpBranchConditional %360 %362 %363 - %362 = OpLabel - %365 = OpAccessChain %_ptr_Private_int %data %int_6 - %366 = OpLoad %int %365 - %367 = OpConvertSToF %float %366 - %368 = OpFDiv %float %367 %float_10 - %369 = OpFAdd %float %float_0_5 %368 - OpStore %grey %369 - OpBranch %361 - %363 = OpLabel - %370 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %371 = OpLoad %float %370 - %372 = OpConvertFToS %int %371 - %374 = OpSLessThan %bool %372 %int_240 - OpSelectionMerge %375 None - OpBranchConditional %374 %376 %377 - %376 = OpLabel - %379 = OpAccessChain %_ptr_Private_int %data %int_7 - %380 = OpLoad %int %379 - %381 = OpConvertSToF %float %380 - %382 = OpFDiv %float %381 %float_10 - %383 = OpFAdd %float %float_0_5 %382 - OpStore %grey %383 - OpBranch %375 - %377 = OpLabel - %384 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %385 = OpLoad %float %384 - %386 = OpConvertFToS %int %385 - %388 = OpSLessThan %bool %386 %int_270 - OpSelectionMerge %389 None - OpBranchConditional %388 %390 %391 - %390 = OpLabel - %393 = OpAccessChain %_ptr_Private_int %data %int_8 - %394 = OpLoad %int %393 - %395 = OpConvertSToF %float %394 - %396 = OpFDiv %float %395 %float_10 - %397 = OpFAdd %float %float_0_5 %396 - OpStore %grey %397 - OpBranch %389 - %391 = OpLabel + %344 = OpAccessChain %_ptr_Private_int %data %int_5 + %345 = OpLoad %int %344 + %346 = OpConvertSToF %float %345 + %347 = OpFDiv %float %346 %float_10 + %348 = OpFAdd %float %float_0_5 %347 + OpStore %grey %348 + OpBranch %340 + %342 = OpLabel + %349 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %350 = OpLoad %float %349 + %351 = OpConvertFToS %int %350 + %353 = OpSLessThan %bool %351 %int_210 + OpSelectionMerge %354 None + OpBranchConditional %353 %355 %356 + %355 = OpLabel + %358 = OpAccessChain %_ptr_Private_int %data %int_6 + %359 = OpLoad %int %358 + %360 = OpConvertSToF %float %359 + %361 = OpFDiv %float %360 %float_10 + %362 = OpFAdd %float %float_0_5 %361 + OpStore %grey %362 + OpBranch %354 + %356 = OpLabel + %363 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %364 = OpLoad %float %363 + %365 = OpConvertFToS %int %364 + %367 = OpSLessThan %bool %365 %int_240 + OpSelectionMerge %368 None + OpBranchConditional %367 %369 %370 + %369 = OpLabel + %372 = OpAccessChain %_ptr_Private_int %data %int_7 + %373 = OpLoad %int %372 + %374 = OpConvertSToF %float %373 + %375 = OpFDiv %float %374 %float_10 + %376 = OpFAdd %float %float_0_5 %375 + OpStore %grey %376 + OpBranch %368 + %370 = OpLabel + %377 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %378 = OpLoad %float %377 + %379 = OpConvertFToS %int %378 + %381 = OpSLessThan %bool %379 %int_270 + OpSelectionMerge %382 None + OpBranchConditional %381 %383 %384 + %383 = OpLabel + %386 = OpAccessChain %_ptr_Private_int %data %int_8 + %387 = OpLoad %int %386 + %388 = OpConvertSToF %float %387 + %389 = OpFDiv %float %388 %float_10 + %390 = OpFAdd %float %float_0_5 %389 + OpStore %grey %390 + OpBranch %382 + %384 = OpLabel OpKill - %389 = OpLabel - OpBranch %375 - %375 = OpLabel - OpBranch %361 - %361 = OpLabel - OpBranch %347 - %347 = OpLabel - OpBranch %339 - %339 = OpLabel - OpBranch %326 - %326 = OpLabel - OpBranch %313 - %313 = OpLabel - OpBranch %300 - %300 = OpLabel - OpBranch %285 - %285 = OpLabel - %398 = OpLoad %float %grey - %400 = OpCompositeConstruct %v3float %398 %398 %398 - %401 = OpCompositeExtract %float %400 0 - %402 = OpCompositeExtract %float %400 1 - %403 = OpCompositeExtract %float %400 2 - %405 = OpCompositeConstruct %v4float %401 %402 %403 %float_1 - OpStore %x_GLF_color %405 + %382 = OpLabel + OpBranch %368 + %368 = OpLabel + OpBranch %354 + %354 = OpLabel + OpBranch %340 + %340 = OpLabel + OpBranch %332 + %332 = OpLabel + OpBranch %319 + %319 = OpLabel + OpBranch %306 + %306 = OpLabel + OpBranch %293 + %293 = OpLabel + OpBranch %278 + %278 = OpLabel + %391 = OpLoad %float %grey + %393 = OpCompositeConstruct %v3float %391 %391 %391 + %394 = OpCompositeExtract %float %393 0 + %395 = OpCompositeExtract %float %393 1 + %396 = OpCompositeExtract %float %393 2 + %398 = OpCompositeConstruct %v4float %394 %395 %396 %float_1 + OpStore %x_GLF_color %398 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %406 +%tint_symbol_3 = OpFunction %void None %399 %tint_symbol_1 = OpFunctionParameter %main_out - %410 = OpLabel - %411 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %411 + %403 = OpLabel + %404 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %404 OpReturn OpFunctionEnd - %main = OpFunction %void None %135 - %413 = OpLabel - %414 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %414 - %415 = OpFunctionCall %void %main_1 - %417 = OpLoad %v4float %x_GLF_color - %418 = OpCompositeConstruct %main_out %417 - %416 = OpFunctionCall %void %tint_symbol_3 %418 + %main = OpFunction %void None %131 + %406 = OpLabel + %407 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %407 + %408 = OpFunctionCall %void %main_1 + %410 = OpLoad %v4float %x_GLF_color + %411 = OpCompositeConstruct %main_out %410 + %409 = OpFunctionCall %void %tint_symbol_3 %411 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 212[%212] is not post dominated by the back-edge block 258[%258] - %258 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.wgsl.expected.spvasm index 9042981b0c..8ea9848dca 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 419 +; Bound: 416 ; Schema: 0 OpCapability Shader %180 = OpExtInstImport "GLSL.std.450" @@ -132,7 +130,7 @@ SKIP: FAILED %v3float = OpTypeVector %float 3 %float_1 = OpConstant %float 1 %main_out = OpTypeStruct %v4float - %406 = OpTypeFunction %void %main_out + %403 = OpTypeFunction %void %main_out %merge_i1_i1_i1_ = OpFunction %void None %26 %from = OpFunctionParameter %_ptr_Function_int %mid = OpFunctionParameter %_ptr_Function_int @@ -444,217 +442,207 @@ SKIP: FAILED %212 = OpLabel %256 = OpLoad %int %i_3 %257 = OpSLessThan %bool %256 %int_10 - OpSelectionMerge %258 None - OpBranchConditional %257 %259 %260 - %259 = OpLabel - OpBranch %258 - %260 = OpLabel - OpBranch %211 - %258 = OpLabel - OpBranch %210 + OpBranchConditional %257 %210 %211 %211 = OpLabel OpStore %j_1 %int_0 + OpBranch %258 + %258 = OpLabel + OpLoopMerge %259 %260 None OpBranch %261 %261 = OpLabel - OpLoopMerge %262 %263 None + %262 = OpLoad %int %j_1 + %263 = OpSLessThan %bool %262 %int_10 + OpSelectionMerge %264 None + OpBranchConditional %263 %265 %266 + %265 = OpLabel OpBranch %264 + %266 = OpLabel + OpBranch %259 %264 = OpLabel - %265 = OpLoad %int %j_1 - %266 = OpSLessThan %bool %265 %int_10 - OpSelectionMerge %267 None - OpBranchConditional %266 %268 %269 - %268 = OpLabel - OpBranch %267 - %269 = OpLabel - OpBranch %262 - %267 = OpLabel - %270 = OpLoad %int %j_1 - %271 = OpLoad %int %j_1 - %272 = OpAccessChain %_ptr_Private_int %data %271 - %273 = OpLoad %int %272 - %274 = OpAccessChain %_ptr_Private_int %temp %270 - OpStore %274 %273 - OpBranch %263 - %263 = OpLabel - %275 = OpLoad %int %j_1 - %276 = OpIAdd %int %275 %int_1 - OpStore %j_1 %276 - OpBranch %261 - %262 = OpLabel - %277 = OpFunctionCall %void %mergeSort_ - %280 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %281 = OpLoad %float %280 - %282 = OpConvertFToS %int %281 - %284 = OpSLessThan %bool %282 %int_30 - OpSelectionMerge %285 None - OpBranchConditional %284 %286 %287 - %286 = OpLabel - %288 = OpAccessChain %_ptr_Private_int %data %int_0 - %289 = OpLoad %int %288 - %291 = OpConvertSToF %float %289 - %293 = OpFDiv %float %291 %float_10 - %294 = OpFAdd %float %float_0_5 %293 - OpStore %grey %294 - OpBranch %285 - %287 = OpLabel - %295 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %296 = OpLoad %float %295 - %297 = OpConvertFToS %int %296 - %299 = OpSLessThan %bool %297 %int_60 - OpSelectionMerge %300 None - OpBranchConditional %299 %301 %302 - %301 = OpLabel - %303 = OpAccessChain %_ptr_Private_int %data %int_1 - %304 = OpLoad %int %303 - %305 = OpConvertSToF %float %304 - %306 = OpFDiv %float %305 %float_10 - %307 = OpFAdd %float %float_0_5 %306 - OpStore %grey %307 - OpBranch %300 - %302 = OpLabel - %308 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %309 = OpLoad %float %308 - %310 = OpConvertFToS %int %309 - %312 = OpSLessThan %bool %310 %int_90 - OpSelectionMerge %313 None - OpBranchConditional %312 %314 %315 - %314 = OpLabel - %316 = OpAccessChain %_ptr_Private_int %data %int_2 - %317 = OpLoad %int %316 - %318 = OpConvertSToF %float %317 - %319 = OpFDiv %float %318 %float_10 - %320 = OpFAdd %float %float_0_5 %319 - OpStore %grey %320 - OpBranch %313 - %315 = OpLabel - %321 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %322 = OpLoad %float %321 - %323 = OpConvertFToS %int %322 - %325 = OpSLessThan %bool %323 %int_120 - OpSelectionMerge %326 None - OpBranchConditional %325 %327 %328 - %327 = OpLabel - %329 = OpAccessChain %_ptr_Private_int %data %int_3 - %330 = OpLoad %int %329 - %331 = OpConvertSToF %float %330 - %332 = OpFDiv %float %331 %float_10 - %333 = OpFAdd %float %float_0_5 %332 - OpStore %grey %333 - OpBranch %326 - %328 = OpLabel - %334 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %335 = OpLoad %float %334 - %336 = OpConvertFToS %int %335 - %338 = OpSLessThan %bool %336 %int_150 - OpSelectionMerge %339 None - OpBranchConditional %338 %340 %341 - %340 = OpLabel + %267 = OpLoad %int %j_1 + %268 = OpLoad %int %j_1 + %269 = OpAccessChain %_ptr_Private_int %data %268 + %270 = OpLoad %int %269 + %271 = OpAccessChain %_ptr_Private_int %temp %267 + OpStore %271 %270 + OpBranch %260 + %260 = OpLabel + %272 = OpLoad %int %j_1 + %273 = OpIAdd %int %272 %int_1 + OpStore %j_1 %273 + OpBranch %258 + %259 = OpLabel + %274 = OpFunctionCall %void %mergeSort_ + %277 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %278 = OpLoad %float %277 + %279 = OpConvertFToS %int %278 + %281 = OpSLessThan %bool %279 %int_30 + OpSelectionMerge %282 None + OpBranchConditional %281 %283 %284 + %283 = OpLabel + %285 = OpAccessChain %_ptr_Private_int %data %int_0 + %286 = OpLoad %int %285 + %288 = OpConvertSToF %float %286 + %290 = OpFDiv %float %288 %float_10 + %291 = OpFAdd %float %float_0_5 %290 + OpStore %grey %291 + OpBranch %282 + %284 = OpLabel + %292 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %293 = OpLoad %float %292 + %294 = OpConvertFToS %int %293 + %296 = OpSLessThan %bool %294 %int_60 + OpSelectionMerge %297 None + OpBranchConditional %296 %298 %299 + %298 = OpLabel + %300 = OpAccessChain %_ptr_Private_int %data %int_1 + %301 = OpLoad %int %300 + %302 = OpConvertSToF %float %301 + %303 = OpFDiv %float %302 %float_10 + %304 = OpFAdd %float %float_0_5 %303 + OpStore %grey %304 + OpBranch %297 + %299 = OpLabel + %305 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %306 = OpLoad %float %305 + %307 = OpConvertFToS %int %306 + %309 = OpSLessThan %bool %307 %int_90 + OpSelectionMerge %310 None + OpBranchConditional %309 %311 %312 + %311 = OpLabel + %313 = OpAccessChain %_ptr_Private_int %data %int_2 + %314 = OpLoad %int %313 + %315 = OpConvertSToF %float %314 + %316 = OpFDiv %float %315 %float_10 + %317 = OpFAdd %float %float_0_5 %316 + OpStore %grey %317 + OpBranch %310 + %312 = OpLabel + %318 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %319 = OpLoad %float %318 + %320 = OpConvertFToS %int %319 + %322 = OpSLessThan %bool %320 %int_120 + OpSelectionMerge %323 None + OpBranchConditional %322 %324 %325 + %324 = OpLabel + %326 = OpAccessChain %_ptr_Private_int %data %int_3 + %327 = OpLoad %int %326 + %328 = OpConvertSToF %float %327 + %329 = OpFDiv %float %328 %float_10 + %330 = OpFAdd %float %float_0_5 %329 + OpStore %grey %330 + OpBranch %323 + %325 = OpLabel + %331 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %332 = OpLoad %float %331 + %333 = OpConvertFToS %int %332 + %335 = OpSLessThan %bool %333 %int_150 + OpSelectionMerge %336 None + OpBranchConditional %335 %337 %338 + %337 = OpLabel OpKill - %341 = OpLabel - %342 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %343 = OpLoad %float %342 - %344 = OpConvertFToS %int %343 - %346 = OpSLessThan %bool %344 %int_180 - OpSelectionMerge %347 None - OpBranchConditional %346 %348 %349 - %348 = OpLabel - %351 = OpAccessChain %_ptr_Private_int %data %int_5 - %352 = OpLoad %int %351 - %353 = OpConvertSToF %float %352 - %354 = OpFDiv %float %353 %float_10 - %355 = OpFAdd %float %float_0_5 %354 - OpStore %grey %355 - OpBranch %347 - %349 = OpLabel - %356 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %357 = OpLoad %float %356 - %358 = OpConvertFToS %int %357 - %360 = OpSLessThan %bool %358 %int_210 - OpSelectionMerge %361 None - OpBranchConditional %360 %362 %363 - %362 = OpLabel - %365 = OpAccessChain %_ptr_Private_int %data %int_6 - %366 = OpLoad %int %365 - %367 = OpConvertSToF %float %366 - %368 = OpFDiv %float %367 %float_10 - %369 = OpFAdd %float %float_0_5 %368 - OpStore %grey %369 - OpBranch %361 - %363 = OpLabel - %370 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %371 = OpLoad %float %370 - %372 = OpConvertFToS %int %371 - %374 = OpSLessThan %bool %372 %int_240 - OpSelectionMerge %375 None - OpBranchConditional %374 %376 %377 - %376 = OpLabel - %379 = OpAccessChain %_ptr_Private_int %data %int_7 - %380 = OpLoad %int %379 - %381 = OpConvertSToF %float %380 - %382 = OpFDiv %float %381 %float_10 - %383 = OpFAdd %float %float_0_5 %382 - OpStore %grey %383 - OpBranch %375 - %377 = OpLabel - %384 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %385 = OpLoad %float %384 - %386 = OpConvertFToS %int %385 - %388 = OpSLessThan %bool %386 %int_270 - OpSelectionMerge %389 None - OpBranchConditional %388 %390 %391 - %390 = OpLabel - %393 = OpAccessChain %_ptr_Private_int %data %int_8 - %394 = OpLoad %int %393 - %395 = OpConvertSToF %float %394 - %396 = OpFDiv %float %395 %float_10 - %397 = OpFAdd %float %float_0_5 %396 - OpStore %grey %397 - OpBranch %389 - %391 = OpLabel + %338 = OpLabel + %339 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %340 = OpLoad %float %339 + %341 = OpConvertFToS %int %340 + %343 = OpSLessThan %bool %341 %int_180 + OpSelectionMerge %344 None + OpBranchConditional %343 %345 %346 + %345 = OpLabel + %348 = OpAccessChain %_ptr_Private_int %data %int_5 + %349 = OpLoad %int %348 + %350 = OpConvertSToF %float %349 + %351 = OpFDiv %float %350 %float_10 + %352 = OpFAdd %float %float_0_5 %351 + OpStore %grey %352 + OpBranch %344 + %346 = OpLabel + %353 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %354 = OpLoad %float %353 + %355 = OpConvertFToS %int %354 + %357 = OpSLessThan %bool %355 %int_210 + OpSelectionMerge %358 None + OpBranchConditional %357 %359 %360 + %359 = OpLabel + %362 = OpAccessChain %_ptr_Private_int %data %int_6 + %363 = OpLoad %int %362 + %364 = OpConvertSToF %float %363 + %365 = OpFDiv %float %364 %float_10 + %366 = OpFAdd %float %float_0_5 %365 + OpStore %grey %366 + OpBranch %358 + %360 = OpLabel + %367 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %368 = OpLoad %float %367 + %369 = OpConvertFToS %int %368 + %371 = OpSLessThan %bool %369 %int_240 + OpSelectionMerge %372 None + OpBranchConditional %371 %373 %374 + %373 = OpLabel + %376 = OpAccessChain %_ptr_Private_int %data %int_7 + %377 = OpLoad %int %376 + %378 = OpConvertSToF %float %377 + %379 = OpFDiv %float %378 %float_10 + %380 = OpFAdd %float %float_0_5 %379 + OpStore %grey %380 + OpBranch %372 + %374 = OpLabel + %381 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %382 = OpLoad %float %381 + %383 = OpConvertFToS %int %382 + %385 = OpSLessThan %bool %383 %int_270 + OpSelectionMerge %386 None + OpBranchConditional %385 %387 %388 + %387 = OpLabel + %390 = OpAccessChain %_ptr_Private_int %data %int_8 + %391 = OpLoad %int %390 + %392 = OpConvertSToF %float %391 + %393 = OpFDiv %float %392 %float_10 + %394 = OpFAdd %float %float_0_5 %393 + OpStore %grey %394 + OpBranch %386 + %388 = OpLabel OpKill - %389 = OpLabel - OpBranch %375 - %375 = OpLabel - OpBranch %361 - %361 = OpLabel - OpBranch %347 - %347 = OpLabel - OpBranch %339 - %339 = OpLabel - OpBranch %326 - %326 = OpLabel - OpBranch %313 - %313 = OpLabel - OpBranch %300 - %300 = OpLabel - OpBranch %285 - %285 = OpLabel - %398 = OpLoad %float %grey - %400 = OpCompositeConstruct %v3float %398 %398 %398 - %401 = OpCompositeExtract %float %400 0 - %402 = OpCompositeExtract %float %400 1 - %403 = OpCompositeExtract %float %400 2 - %405 = OpCompositeConstruct %v4float %401 %402 %403 %float_1 - OpStore %x_GLF_color %405 + %386 = OpLabel + OpBranch %372 + %372 = OpLabel + OpBranch %358 + %358 = OpLabel + OpBranch %344 + %344 = OpLabel + OpBranch %336 + %336 = OpLabel + OpBranch %323 + %323 = OpLabel + OpBranch %310 + %310 = OpLabel + OpBranch %297 + %297 = OpLabel + OpBranch %282 + %282 = OpLabel + %395 = OpLoad %float %grey + %397 = OpCompositeConstruct %v3float %395 %395 %395 + %398 = OpCompositeExtract %float %397 0 + %399 = OpCompositeExtract %float %397 1 + %400 = OpCompositeExtract %float %397 2 + %402 = OpCompositeConstruct %v4float %398 %399 %400 %float_1 + OpStore %x_GLF_color %402 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %406 +%tint_symbol_3 = OpFunction %void None %403 %tint_symbol_1 = OpFunctionParameter %main_out - %410 = OpLabel - %411 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %411 + %407 = OpLabel + %408 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %408 OpReturn OpFunctionEnd %main = OpFunction %void None %135 - %413 = OpLabel - %414 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %414 - %415 = OpFunctionCall %void %main_1 - %417 = OpLoad %v4float %x_GLF_color - %418 = OpCompositeConstruct %main_out %417 - %416 = OpFunctionCall %void %tint_symbol_3 %418 + %410 = OpLabel + %411 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %411 + %412 = OpFunctionCall %void %main_1 + %414 = OpLoad %v4float %x_GLF_color + %415 = OpCompositeConstruct %main_out %414 + %413 = OpFunctionCall %void %tint_symbol_3 %415 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 212[%212] is not post dominated by the back-edge block 258[%258] - %258 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.spvasm index a382317bf6..19303449d9 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.spvasm @@ -1,12 +1,10 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 423 +; Bound: 416 ; Schema: 0 OpCapability Shader - %180 = OpExtInstImport "GLSL.std.450" + %176 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2 OpExecutionMode %main OriginUpperLeft @@ -97,12 +95,12 @@ SKIP: FAILED %bool = OpTypeBool %_ptr_Private_int = OpTypePointer Private %int %int_10 = OpConstant %int 10 - %135 = OpTypeFunction %void + %131 = OpTypeFunction %void %int_0 = OpConstant %int 0 %int_9 = OpConstant %int 9 %int_2 = OpConstant %int 2 %_ptr_Function_float = OpTypePointer Function %float - %204 = OpConstantNull %float + %200 = OpConstantNull %float %uint_0 = OpConstant %uint 0 %_ptr_Uniform_float = OpTypePointer Uniform %float %int_n5 = OpConstant %int -5 @@ -133,7 +131,7 @@ SKIP: FAILED %v3float = OpTypeVector %float 3 %float_1 = OpConstant %float 1 %main_out = OpTypeStruct %v4float - %410 = OpTypeFunction %void %main_out + %403 = OpTypeFunction %void %main_out %merge_i1_i1_i1_ = OpFunction %void None %26 %from = OpFunctionParameter %_ptr_Function_int %mid = OpFunctionParameter %_ptr_Function_int @@ -160,129 +158,119 @@ SKIP: FAILED %54 = OpLoad %int %j %56 = OpLoad %int %to %57 = OpSLessThanEqual %bool %51 %53 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel - %61 = OpSLessThanEqual %bool %54 %56 - OpBranch %59 - %59 = OpLabel - %62 = OpPhi %bool %57 %50 %61 %60 - OpSelectionMerge %63 None - OpBranchConditional %62 %64 %65 - %64 = OpLabel - OpBranch %63 - %65 = OpLabel - OpBranch %48 + %59 = OpSLessThanEqual %bool %54 %56 + %60 = OpLogicalAnd %bool %57 %59 + OpSelectionMerge %61 None + OpBranchConditional %60 %62 %63 + %62 = OpLabel + OpBranch %61 %63 = OpLabel - %66 = OpLoad %int %i - %68 = OpAccessChain %_ptr_Private_int %data %66 - %69 = OpLoad %int %68 - %70 = OpLoad %int %j - %71 = OpAccessChain %_ptr_Private_int %data %70 - %72 = OpLoad %int %71 - %73 = OpSLessThan %bool %69 %72 - OpSelectionMerge %74 None - OpBranchConditional %73 %75 %76 - %75 = OpLabel - %77 = OpLoad %int %k + OpBranch %48 + %61 = OpLabel + %64 = OpLoad %int %i + %66 = OpAccessChain %_ptr_Private_int %data %64 + %67 = OpLoad %int %66 + %68 = OpLoad %int %j + %69 = OpAccessChain %_ptr_Private_int %data %68 + %70 = OpLoad %int %69 + %71 = OpSLessThan %bool %67 %70 + OpSelectionMerge %72 None + OpBranchConditional %71 %73 %74 + %73 = OpLabel + %75 = OpLoad %int %k + %76 = OpIAdd %int %75 %int_1 + OpStore %k %76 + %77 = OpLoad %int %i %78 = OpIAdd %int %77 %int_1 - OpStore %k %78 - %79 = OpLoad %int %i - %80 = OpIAdd %int %79 %int_1 - OpStore %i %80 - %81 = OpAccessChain %_ptr_Private_int %data %79 - %82 = OpLoad %int %81 - %83 = OpAccessChain %_ptr_Private_int %temp %77 - OpStore %83 %82 - OpBranch %74 - %76 = OpLabel - %84 = OpLoad %int %k - %85 = OpIAdd %int %84 %int_1 - OpStore %k %85 - %86 = OpLoad %int %j - %87 = OpIAdd %int %86 %int_1 - OpStore %j %87 - %88 = OpAccessChain %_ptr_Private_int %data %86 - %89 = OpLoad %int %88 - %90 = OpAccessChain %_ptr_Private_int %temp %84 - OpStore %90 %89 - OpBranch %74 + OpStore %i %78 + %79 = OpAccessChain %_ptr_Private_int %data %77 + %80 = OpLoad %int %79 + %81 = OpAccessChain %_ptr_Private_int %temp %75 + OpStore %81 %80 + OpBranch %72 %74 = OpLabel + %82 = OpLoad %int %k + %83 = OpIAdd %int %82 %int_1 + OpStore %k %83 + %84 = OpLoad %int %j + %85 = OpIAdd %int %84 %int_1 + OpStore %j %85 + %86 = OpAccessChain %_ptr_Private_int %data %84 + %87 = OpLoad %int %86 + %88 = OpAccessChain %_ptr_Private_int %temp %82 + OpStore %88 %87 + OpBranch %72 + %72 = OpLabel OpBranch %49 %49 = OpLabel OpBranch %47 %48 = OpLabel + OpBranch %89 + %89 = OpLabel + OpLoopMerge %90 %91 None + OpBranch %92 + %92 = OpLabel + %93 = OpLoad %int %i + %94 = OpLoad %int %i + %96 = OpLoad %int %mid + %98 = OpSLessThan %bool %93 %int_10 + %99 = OpSLessThanEqual %bool %94 %96 + %100 = OpLogicalAnd %bool %98 %99 + OpSelectionMerge %101 None + OpBranchConditional %100 %102 %103 + %102 = OpLabel + OpBranch %101 + %103 = OpLabel + OpBranch %90 + %101 = OpLabel + %104 = OpLoad %int %k + %105 = OpIAdd %int %104 %int_1 + OpStore %k %105 + %106 = OpLoad %int %i + %107 = OpIAdd %int %106 %int_1 + OpStore %i %107 + %108 = OpAccessChain %_ptr_Private_int %data %106 + %109 = OpLoad %int %108 + %110 = OpAccessChain %_ptr_Private_int %temp %104 + OpStore %110 %109 OpBranch %91 %91 = OpLabel - OpLoopMerge %92 %93 None - OpBranch %94 - %94 = OpLabel - %95 = OpLoad %int %i - %96 = OpLoad %int %i - %98 = OpLoad %int %mid - %100 = OpSLessThan %bool %95 %int_10 - OpSelectionMerge %101 None - OpBranchConditional %100 %102 %101 - %102 = OpLabel - %103 = OpSLessThanEqual %bool %96 %98 - OpBranch %101 - %101 = OpLabel - %104 = OpPhi %bool %100 %94 %103 %102 - OpSelectionMerge %105 None - OpBranchConditional %104 %106 %107 - %106 = OpLabel - OpBranch %105 - %107 = OpLabel - OpBranch %92 - %105 = OpLabel - %108 = OpLoad %int %k - %109 = OpIAdd %int %108 %int_1 - OpStore %k %109 - %110 = OpLoad %int %i - %111 = OpIAdd %int %110 %int_1 - OpStore %i %111 - %112 = OpAccessChain %_ptr_Private_int %data %110 - %113 = OpLoad %int %112 - %114 = OpAccessChain %_ptr_Private_int %temp %108 - OpStore %114 %113 - OpBranch %93 - %93 = OpLabel - OpBranch %91 - %92 = OpLabel - %116 = OpLoad %int %from - OpStore %i_1 %116 - OpBranch %117 - %117 = OpLabel - OpLoopMerge %118 %119 None - OpBranch %120 - %120 = OpLabel - %121 = OpLoad %int %i_1 - %123 = OpLoad %int %to - %124 = OpSLessThanEqual %bool %121 %123 - OpSelectionMerge %125 None - OpBranchConditional %124 %126 %127 - %126 = OpLabel - OpBranch %125 - %127 = OpLabel - OpBranch %118 - %125 = OpLabel - %128 = OpLoad %int %i_1 + OpBranch %89 + %90 = OpLabel + %112 = OpLoad %int %from + OpStore %i_1 %112 + OpBranch %113 + %113 = OpLabel + OpLoopMerge %114 %115 None + OpBranch %116 + %116 = OpLabel + %117 = OpLoad %int %i_1 + %119 = OpLoad %int %to + %120 = OpSLessThanEqual %bool %117 %119 + OpSelectionMerge %121 None + OpBranchConditional %120 %122 %123 + %122 = OpLabel + OpBranch %121 + %123 = OpLabel + OpBranch %114 + %121 = OpLabel + %124 = OpLoad %int %i_1 + %125 = OpLoad %int %i_1 + %126 = OpAccessChain %_ptr_Private_int %temp %125 + %127 = OpLoad %int %126 + %128 = OpAccessChain %_ptr_Private_int %data %124 + OpStore %128 %127 + OpBranch %115 + %115 = OpLabel %129 = OpLoad %int %i_1 - %130 = OpAccessChain %_ptr_Private_int %temp %129 - %131 = OpLoad %int %130 - %132 = OpAccessChain %_ptr_Private_int %data %128 - OpStore %132 %131 - OpBranch %119 - %119 = OpLabel - %133 = OpLoad %int %i_1 - %134 = OpIAdd %int %133 %int_1 - OpStore %i_1 %134 - OpBranch %117 - %118 = OpLabel + %130 = OpIAdd %int %129 %int_1 + OpStore %i_1 %130 + OpBranch %113 + %114 = OpLabel OpReturn OpFunctionEnd - %mergeSort_ = OpFunction %void None %135 - %137 = OpLabel + %mergeSort_ = OpFunction %void None %131 + %133 = OpLabel %low = OpVariable %_ptr_Function_int Function %35 %high = OpVariable %_ptr_Function_int Function %35 %m = OpVariable %_ptr_Function_int Function %35 @@ -296,373 +284,363 @@ SKIP: FAILED OpStore %low %int_0 OpStore %high %int_9 OpStore %m %int_1 - OpBranch %150 - %150 = OpLabel - OpLoopMerge %151 %152 None + OpBranch %146 + %146 = OpLabel + OpLoopMerge %147 %148 None + OpBranch %149 + %149 = OpLabel + %150 = OpLoad %int %m + %151 = OpLoad %int %high + %152 = OpSLessThanEqual %bool %150 %151 + OpSelectionMerge %153 None + OpBranchConditional %152 %154 %155 + %154 = OpLabel OpBranch %153 + %155 = OpLabel + OpBranch %147 %153 = OpLabel - %154 = OpLoad %int %m - %155 = OpLoad %int %high - %156 = OpSLessThanEqual %bool %154 %155 - OpSelectionMerge %157 None - OpBranchConditional %156 %158 %159 - %158 = OpLabel + %156 = OpLoad %int %low + OpStore %i_2 %156 OpBranch %157 - %159 = OpLabel - OpBranch %151 %157 = OpLabel - %160 = OpLoad %int %low - OpStore %i_2 %160 - OpBranch %161 - %161 = OpLabel - OpLoopMerge %162 %163 None + OpLoopMerge %158 %159 None + OpBranch %160 + %160 = OpLabel + %161 = OpLoad %int %i_2 + %162 = OpLoad %int %high + %163 = OpSLessThan %bool %161 %162 + OpSelectionMerge %164 None + OpBranchConditional %163 %165 %166 + %165 = OpLabel OpBranch %164 + %166 = OpLabel + OpBranch %158 %164 = OpLabel - %165 = OpLoad %int %i_2 - %166 = OpLoad %int %high - %167 = OpSLessThan %bool %165 %166 - OpSelectionMerge %168 None - OpBranchConditional %167 %169 %170 - %169 = OpLabel - OpBranch %168 - %170 = OpLabel - OpBranch %162 - %168 = OpLabel - %171 = OpLoad %int %i_2 - OpStore %from_1 %171 + %167 = OpLoad %int %i_2 + OpStore %from_1 %167 + %168 = OpLoad %int %i_2 + %169 = OpLoad %int %m + %170 = OpIAdd %int %168 %169 + %171 = OpISub %int %170 %int_1 + OpStore %mid_1 %171 %172 = OpLoad %int %i_2 %173 = OpLoad %int %m - %174 = OpIAdd %int %172 %173 - %175 = OpISub %int %174 %int_1 - OpStore %mid_1 %175 - %176 = OpLoad %int %i_2 - %177 = OpLoad %int %m - %178 = OpLoad %int %high - %182 = OpIMul %int %int_2 %177 - %183 = OpIAdd %int %176 %182 - %184 = OpISub %int %183 %int_1 - %179 = OpExtInst %int %180 SMin %184 %178 - OpStore %to_1 %179 - %185 = OpLoad %int %from_1 - OpStore %param %185 - %186 = OpLoad %int %mid_1 - OpStore %param_1 %186 - %187 = OpLoad %int %to_1 - OpStore %param_2 %187 - %188 = OpFunctionCall %void %merge_i1_i1_i1_ %param %param_1 %param_2 - OpBranch %163 - %163 = OpLabel + %174 = OpLoad %int %high + %178 = OpIMul %int %int_2 %173 + %179 = OpIAdd %int %172 %178 + %180 = OpISub %int %179 %int_1 + %175 = OpExtInst %int %176 SMin %180 %174 + OpStore %to_1 %175 + %181 = OpLoad %int %from_1 + OpStore %param %181 + %182 = OpLoad %int %mid_1 + OpStore %param_1 %182 + %183 = OpLoad %int %to_1 + OpStore %param_2 %183 + %184 = OpFunctionCall %void %merge_i1_i1_i1_ %param %param_1 %param_2 + OpBranch %159 + %159 = OpLabel + %188 = OpLoad %int %m + %189 = OpLoad %int %i_2 + %190 = OpIMul %int %int_2 %188 + %191 = OpIAdd %int %189 %190 + OpStore %i_2 %191 + OpBranch %157 + %158 = OpLabel + OpBranch %148 + %148 = OpLabel %192 = OpLoad %int %m - %193 = OpLoad %int %i_2 - %194 = OpIMul %int %int_2 %192 - %195 = OpIAdd %int %193 %194 - OpStore %i_2 %195 - OpBranch %161 - %162 = OpLabel - OpBranch %152 - %152 = OpLabel - %196 = OpLoad %int %m - %197 = OpIMul %int %int_2 %196 - OpStore %m %197 - OpBranch %150 - %151 = OpLabel + %193 = OpIMul %int %int_2 %192 + OpStore %m %193 + OpBranch %146 + %147 = OpLabel OpReturn OpFunctionEnd - %main_1 = OpFunction %void None %135 - %199 = OpLabel + %main_1 = OpFunction %void None %131 + %195 = OpLabel %i_3 = OpVariable %_ptr_Function_int Function %35 %j_1 = OpVariable %_ptr_Function_int Function %35 - %grey = OpVariable %_ptr_Function_float Function %204 - %207 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 - %208 = OpLoad %float %207 - %209 = OpConvertFToS %int %208 - OpStore %i_3 %209 - OpBranch %210 - %210 = OpLabel - OpLoopMerge %211 %212 None - OpBranch %213 + %grey = OpVariable %_ptr_Function_float Function %200 + %203 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 + %204 = OpLoad %float %203 + %205 = OpConvertFToS %int %204 + OpStore %i_3 %205 + OpBranch %206 + %206 = OpLabel + OpLoopMerge %207 %208 None + OpBranch %209 + %209 = OpLabel + %210 = OpLoad %int %i_3 + OpSelectionMerge %211 None + OpSwitch %210 %212 9 %213 8 %214 7 %215 6 %216 5 %217 4 %218 3 %219 2 %220 1 %221 0 %222 %213 = OpLabel - %214 = OpLoad %int %i_3 - OpSelectionMerge %215 None - OpSwitch %214 %216 9 %217 8 %218 7 %219 6 %220 5 %221 4 %222 3 %223 2 %224 1 %225 0 %226 + %223 = OpLoad %int %i_3 + %224 = OpAccessChain %_ptr_Private_int %data %223 + OpStore %224 %int_n5 + OpSelectionMerge %227 None + OpBranchConditional %true %228 %229 + %228 = OpLabel + OpBranch %227 + %229 = OpLabel + OpBranch %208 + %227 = OpLabel + OpBranch %211 + %214 = OpLabel + %230 = OpLoad %int %i_3 + %231 = OpAccessChain %_ptr_Private_int %data %230 + OpStore %231 %int_n4 + OpBranch %211 + %215 = OpLabel + %233 = OpLoad %int %i_3 + %234 = OpAccessChain %_ptr_Private_int %data %233 + OpStore %234 %int_n3 + OpBranch %211 + %216 = OpLabel + %236 = OpLoad %int %i_3 + %237 = OpAccessChain %_ptr_Private_int %data %236 + OpStore %237 %int_n2 + OpBranch %211 %217 = OpLabel - %227 = OpLoad %int %i_3 - %228 = OpAccessChain %_ptr_Private_int %data %227 - OpStore %228 %int_n5 - OpSelectionMerge %231 None - OpBranchConditional %true %232 %233 - %232 = OpLabel - OpBranch %231 - %233 = OpLabel - OpBranch %212 - %231 = OpLabel - OpBranch %215 + %239 = OpLoad %int %i_3 + %240 = OpAccessChain %_ptr_Private_int %data %239 + OpStore %240 %int_n1 + OpBranch %211 %218 = OpLabel - %234 = OpLoad %int %i_3 - %235 = OpAccessChain %_ptr_Private_int %data %234 - OpStore %235 %int_n4 - OpBranch %215 + %242 = OpLoad %int %i_3 + %243 = OpAccessChain %_ptr_Private_int %data %242 + OpStore %243 %int_0 + OpBranch %211 %219 = OpLabel - %237 = OpLoad %int %i_3 - %238 = OpAccessChain %_ptr_Private_int %data %237 - OpStore %238 %int_n3 - OpBranch %215 + %244 = OpLoad %int %i_3 + %245 = OpAccessChain %_ptr_Private_int %data %244 + OpStore %245 %int_1 + OpBranch %211 %220 = OpLabel - %240 = OpLoad %int %i_3 - %241 = OpAccessChain %_ptr_Private_int %data %240 - OpStore %241 %int_n2 - OpBranch %215 - %221 = OpLabel - %243 = OpLoad %int %i_3 - %244 = OpAccessChain %_ptr_Private_int %data %243 - OpStore %244 %int_n1 - OpBranch %215 - %222 = OpLabel %246 = OpLoad %int %i_3 %247 = OpAccessChain %_ptr_Private_int %data %246 - OpStore %247 %int_0 - OpBranch %215 - %223 = OpLabel + OpStore %247 %int_2 + OpBranch %211 + %221 = OpLabel %248 = OpLoad %int %i_3 %249 = OpAccessChain %_ptr_Private_int %data %248 - OpStore %249 %int_1 - OpBranch %215 - %224 = OpLabel - %250 = OpLoad %int %i_3 - %251 = OpAccessChain %_ptr_Private_int %data %250 - OpStore %251 %int_2 - OpBranch %215 - %225 = OpLabel - %252 = OpLoad %int %i_3 - %253 = OpAccessChain %_ptr_Private_int %data %252 - OpStore %253 %int_3 - OpBranch %215 - %226 = OpLabel - %255 = OpLoad %int %i_3 - %256 = OpAccessChain %_ptr_Private_int %data %255 - OpStore %256 %int_4 - OpBranch %215 - %216 = OpLabel - OpBranch %215 - %215 = OpLabel - %258 = OpLoad %int %i_3 - %259 = OpIAdd %int %258 %int_1 - OpStore %i_3 %259 - OpBranch %212 - %212 = OpLabel - %260 = OpLoad %int %i_3 - %261 = OpSLessThan %bool %260 %int_10 - OpSelectionMerge %262 None - OpBranchConditional %261 %263 %264 - %263 = OpLabel - OpBranch %262 - %264 = OpLabel + OpStore %249 %int_3 + OpBranch %211 + %222 = OpLabel + %251 = OpLoad %int %i_3 + %252 = OpAccessChain %_ptr_Private_int %data %251 + OpStore %252 %int_4 + OpBranch %211 + %212 = OpLabel OpBranch %211 - %262 = OpLabel - OpBranch %210 %211 = OpLabel + %254 = OpLoad %int %i_3 + %255 = OpIAdd %int %254 %int_1 + OpStore %i_3 %255 + OpBranch %208 + %208 = OpLabel + %256 = OpLoad %int %i_3 + %257 = OpSLessThan %bool %256 %int_10 + OpBranchConditional %257 %206 %207 + %207 = OpLabel OpStore %j_1 %int_0 - OpBranch %265 + OpBranch %258 + %258 = OpLabel + OpLoopMerge %259 %260 None + OpBranch %261 + %261 = OpLabel + %262 = OpLoad %int %j_1 + %263 = OpSLessThan %bool %262 %int_10 + OpSelectionMerge %264 None + OpBranchConditional %263 %265 %266 %265 = OpLabel - OpLoopMerge %266 %267 None - OpBranch %268 - %268 = OpLabel - %269 = OpLoad %int %j_1 - %270 = OpSLessThan %bool %269 %int_10 - OpSelectionMerge %271 None - OpBranchConditional %270 %272 %273 - %272 = OpLabel - OpBranch %271 - %273 = OpLabel - OpBranch %266 - %271 = OpLabel - %274 = OpLoad %int %j_1 - %275 = OpLoad %int %j_1 - %276 = OpAccessChain %_ptr_Private_int %data %275 - %277 = OpLoad %int %276 - %278 = OpAccessChain %_ptr_Private_int %temp %274 - OpStore %278 %277 - OpBranch %267 - %267 = OpLabel - %279 = OpLoad %int %j_1 - %280 = OpIAdd %int %279 %int_1 - OpStore %j_1 %280 - OpBranch %265 + OpBranch %264 %266 = OpLabel - %281 = OpFunctionCall %void %mergeSort_ - %284 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %285 = OpLoad %float %284 - %286 = OpConvertFToS %int %285 - %288 = OpSLessThan %bool %286 %int_30 - OpSelectionMerge %289 None - OpBranchConditional %288 %290 %291 - %290 = OpLabel - %292 = OpAccessChain %_ptr_Private_int %data %int_0 - %293 = OpLoad %int %292 - %295 = OpConvertSToF %float %293 - %297 = OpFDiv %float %295 %float_10 - %298 = OpFAdd %float %float_0_5 %297 - OpStore %grey %298 - OpBranch %289 - %291 = OpLabel - %299 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %300 = OpLoad %float %299 - %301 = OpConvertFToS %int %300 - %303 = OpSLessThan %bool %301 %int_60 - OpSelectionMerge %304 None - OpBranchConditional %303 %305 %306 - %305 = OpLabel - %307 = OpAccessChain %_ptr_Private_int %data %int_1 - %308 = OpLoad %int %307 - %309 = OpConvertSToF %float %308 - %310 = OpFDiv %float %309 %float_10 - %311 = OpFAdd %float %float_0_5 %310 - OpStore %grey %311 - OpBranch %304 - %306 = OpLabel - %312 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %313 = OpLoad %float %312 - %314 = OpConvertFToS %int %313 - %316 = OpSLessThan %bool %314 %int_90 - OpSelectionMerge %317 None - OpBranchConditional %316 %318 %319 - %318 = OpLabel - %320 = OpAccessChain %_ptr_Private_int %data %int_2 - %321 = OpLoad %int %320 - %322 = OpConvertSToF %float %321 - %323 = OpFDiv %float %322 %float_10 - %324 = OpFAdd %float %float_0_5 %323 - OpStore %grey %324 - OpBranch %317 - %319 = OpLabel - %325 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %326 = OpLoad %float %325 - %327 = OpConvertFToS %int %326 - %329 = OpSLessThan %bool %327 %int_120 - OpSelectionMerge %330 None - OpBranchConditional %329 %331 %332 - %331 = OpLabel - %333 = OpAccessChain %_ptr_Private_int %data %int_3 - %334 = OpLoad %int %333 - %335 = OpConvertSToF %float %334 - %336 = OpFDiv %float %335 %float_10 - %337 = OpFAdd %float %float_0_5 %336 - OpStore %grey %337 - OpBranch %330 - %332 = OpLabel - %338 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %339 = OpLoad %float %338 - %340 = OpConvertFToS %int %339 - %342 = OpSLessThan %bool %340 %int_150 - OpSelectionMerge %343 None - OpBranchConditional %342 %344 %345 - %344 = OpLabel + OpBranch %259 + %264 = OpLabel + %267 = OpLoad %int %j_1 + %268 = OpLoad %int %j_1 + %269 = OpAccessChain %_ptr_Private_int %data %268 + %270 = OpLoad %int %269 + %271 = OpAccessChain %_ptr_Private_int %temp %267 + OpStore %271 %270 + OpBranch %260 + %260 = OpLabel + %272 = OpLoad %int %j_1 + %273 = OpIAdd %int %272 %int_1 + OpStore %j_1 %273 + OpBranch %258 + %259 = OpLabel + %274 = OpFunctionCall %void %mergeSort_ + %277 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %278 = OpLoad %float %277 + %279 = OpConvertFToS %int %278 + %281 = OpSLessThan %bool %279 %int_30 + OpSelectionMerge %282 None + OpBranchConditional %281 %283 %284 + %283 = OpLabel + %285 = OpAccessChain %_ptr_Private_int %data %int_0 + %286 = OpLoad %int %285 + %288 = OpConvertSToF %float %286 + %290 = OpFDiv %float %288 %float_10 + %291 = OpFAdd %float %float_0_5 %290 + OpStore %grey %291 + OpBranch %282 + %284 = OpLabel + %292 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %293 = OpLoad %float %292 + %294 = OpConvertFToS %int %293 + %296 = OpSLessThan %bool %294 %int_60 + OpSelectionMerge %297 None + OpBranchConditional %296 %298 %299 + %298 = OpLabel + %300 = OpAccessChain %_ptr_Private_int %data %int_1 + %301 = OpLoad %int %300 + %302 = OpConvertSToF %float %301 + %303 = OpFDiv %float %302 %float_10 + %304 = OpFAdd %float %float_0_5 %303 + OpStore %grey %304 + OpBranch %297 + %299 = OpLabel + %305 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %306 = OpLoad %float %305 + %307 = OpConvertFToS %int %306 + %309 = OpSLessThan %bool %307 %int_90 + OpSelectionMerge %310 None + OpBranchConditional %309 %311 %312 + %311 = OpLabel + %313 = OpAccessChain %_ptr_Private_int %data %int_2 + %314 = OpLoad %int %313 + %315 = OpConvertSToF %float %314 + %316 = OpFDiv %float %315 %float_10 + %317 = OpFAdd %float %float_0_5 %316 + OpStore %grey %317 + OpBranch %310 + %312 = OpLabel + %318 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %319 = OpLoad %float %318 + %320 = OpConvertFToS %int %319 + %322 = OpSLessThan %bool %320 %int_120 + OpSelectionMerge %323 None + OpBranchConditional %322 %324 %325 + %324 = OpLabel + %326 = OpAccessChain %_ptr_Private_int %data %int_3 + %327 = OpLoad %int %326 + %328 = OpConvertSToF %float %327 + %329 = OpFDiv %float %328 %float_10 + %330 = OpFAdd %float %float_0_5 %329 + OpStore %grey %330 + OpBranch %323 + %325 = OpLabel + %331 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %332 = OpLoad %float %331 + %333 = OpConvertFToS %int %332 + %335 = OpSLessThan %bool %333 %int_150 + OpSelectionMerge %336 None + OpBranchConditional %335 %337 %338 + %337 = OpLabel OpKill + %338 = OpLabel + %339 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %340 = OpLoad %float %339 + %341 = OpConvertFToS %int %340 + %343 = OpSLessThan %bool %341 %int_180 + OpSelectionMerge %344 None + OpBranchConditional %343 %345 %346 %345 = OpLabel - %346 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %347 = OpLoad %float %346 - %348 = OpConvertFToS %int %347 - %350 = OpSLessThan %bool %348 %int_180 - OpSelectionMerge %351 None - OpBranchConditional %350 %352 %353 - %352 = OpLabel - %355 = OpAccessChain %_ptr_Private_int %data %int_5 - %356 = OpLoad %int %355 - %357 = OpConvertSToF %float %356 - %358 = OpFDiv %float %357 %float_10 - %359 = OpFAdd %float %float_0_5 %358 - OpStore %grey %359 - OpBranch %351 - %353 = OpLabel - %360 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %361 = OpLoad %float %360 - %362 = OpConvertFToS %int %361 - %364 = OpSLessThan %bool %362 %int_210 - OpSelectionMerge %365 None - OpBranchConditional %364 %366 %367 - %366 = OpLabel - %369 = OpAccessChain %_ptr_Private_int %data %int_6 - %370 = OpLoad %int %369 - %371 = OpConvertSToF %float %370 - %372 = OpFDiv %float %371 %float_10 - %373 = OpFAdd %float %float_0_5 %372 - OpStore %grey %373 - OpBranch %365 - %367 = OpLabel - %374 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %375 = OpLoad %float %374 - %376 = OpConvertFToS %int %375 - %378 = OpSLessThan %bool %376 %int_240 - OpSelectionMerge %379 None - OpBranchConditional %378 %380 %381 - %380 = OpLabel - %383 = OpAccessChain %_ptr_Private_int %data %int_7 - %384 = OpLoad %int %383 - %385 = OpConvertSToF %float %384 - %386 = OpFDiv %float %385 %float_10 - %387 = OpFAdd %float %float_0_5 %386 - OpStore %grey %387 - OpBranch %379 - %381 = OpLabel - %388 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %389 = OpLoad %float %388 - %390 = OpConvertFToS %int %389 - %392 = OpSLessThan %bool %390 %int_270 - OpSelectionMerge %393 None - OpBranchConditional %392 %394 %395 - %394 = OpLabel - %397 = OpAccessChain %_ptr_Private_int %data %int_8 - %398 = OpLoad %int %397 - %399 = OpConvertSToF %float %398 - %400 = OpFDiv %float %399 %float_10 - %401 = OpFAdd %float %float_0_5 %400 - OpStore %grey %401 - OpBranch %393 - %395 = OpLabel + %348 = OpAccessChain %_ptr_Private_int %data %int_5 + %349 = OpLoad %int %348 + %350 = OpConvertSToF %float %349 + %351 = OpFDiv %float %350 %float_10 + %352 = OpFAdd %float %float_0_5 %351 + OpStore %grey %352 + OpBranch %344 + %346 = OpLabel + %353 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %354 = OpLoad %float %353 + %355 = OpConvertFToS %int %354 + %357 = OpSLessThan %bool %355 %int_210 + OpSelectionMerge %358 None + OpBranchConditional %357 %359 %360 + %359 = OpLabel + %362 = OpAccessChain %_ptr_Private_int %data %int_6 + %363 = OpLoad %int %362 + %364 = OpConvertSToF %float %363 + %365 = OpFDiv %float %364 %float_10 + %366 = OpFAdd %float %float_0_5 %365 + OpStore %grey %366 + OpBranch %358 + %360 = OpLabel + %367 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %368 = OpLoad %float %367 + %369 = OpConvertFToS %int %368 + %371 = OpSLessThan %bool %369 %int_240 + OpSelectionMerge %372 None + OpBranchConditional %371 %373 %374 + %373 = OpLabel + %376 = OpAccessChain %_ptr_Private_int %data %int_7 + %377 = OpLoad %int %376 + %378 = OpConvertSToF %float %377 + %379 = OpFDiv %float %378 %float_10 + %380 = OpFAdd %float %float_0_5 %379 + OpStore %grey %380 + OpBranch %372 + %374 = OpLabel + %381 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %382 = OpLoad %float %381 + %383 = OpConvertFToS %int %382 + %385 = OpSLessThan %bool %383 %int_270 + OpSelectionMerge %386 None + OpBranchConditional %385 %387 %388 + %387 = OpLabel + %390 = OpAccessChain %_ptr_Private_int %data %int_8 + %391 = OpLoad %int %390 + %392 = OpConvertSToF %float %391 + %393 = OpFDiv %float %392 %float_10 + %394 = OpFAdd %float %float_0_5 %393 + OpStore %grey %394 + OpBranch %386 + %388 = OpLabel OpKill - %393 = OpLabel - OpBranch %379 - %379 = OpLabel - OpBranch %365 - %365 = OpLabel - OpBranch %351 - %351 = OpLabel - OpBranch %343 - %343 = OpLabel - OpBranch %330 - %330 = OpLabel - OpBranch %317 - %317 = OpLabel - OpBranch %304 - %304 = OpLabel - OpBranch %289 - %289 = OpLabel - %402 = OpLoad %float %grey - %404 = OpCompositeConstruct %v3float %402 %402 %402 - %405 = OpCompositeExtract %float %404 0 - %406 = OpCompositeExtract %float %404 1 - %407 = OpCompositeExtract %float %404 2 - %409 = OpCompositeConstruct %v4float %405 %406 %407 %float_1 - OpStore %x_GLF_color %409 + %386 = OpLabel + OpBranch %372 + %372 = OpLabel + OpBranch %358 + %358 = OpLabel + OpBranch %344 + %344 = OpLabel + OpBranch %336 + %336 = OpLabel + OpBranch %323 + %323 = OpLabel + OpBranch %310 + %310 = OpLabel + OpBranch %297 + %297 = OpLabel + OpBranch %282 + %282 = OpLabel + %395 = OpLoad %float %grey + %397 = OpCompositeConstruct %v3float %395 %395 %395 + %398 = OpCompositeExtract %float %397 0 + %399 = OpCompositeExtract %float %397 1 + %400 = OpCompositeExtract %float %397 2 + %402 = OpCompositeConstruct %v4float %398 %399 %400 %float_1 + OpStore %x_GLF_color %402 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %410 +%tint_symbol_3 = OpFunction %void None %403 %tint_symbol_1 = OpFunctionParameter %main_out - %414 = OpLabel - %415 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %415 + %407 = OpLabel + %408 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %408 OpReturn OpFunctionEnd - %main = OpFunction %void None %135 - %417 = OpLabel - %418 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %418 - %419 = OpFunctionCall %void %main_1 - %421 = OpLoad %v4float %x_GLF_color - %422 = OpCompositeConstruct %main_out %421 - %420 = OpFunctionCall %void %tint_symbol_3 %422 + %main = OpFunction %void None %131 + %410 = OpLabel + %411 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %411 + %412 = OpFunctionCall %void %main_1 + %414 = OpLoad %v4float %x_GLF_color + %415 = OpCompositeConstruct %main_out %414 + %413 = OpFunctionCall %void %tint_symbol_3 %415 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 212[%212] is not post dominated by the back-edge block 262[%262] - %262 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.wgsl.expected.spvasm index a382317bf6..fbc9b3910c 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 423 +; Bound: 420 ; Schema: 0 OpCapability Shader %180 = OpExtInstImport "GLSL.std.450" @@ -133,7 +131,7 @@ SKIP: FAILED %v3float = OpTypeVector %float 3 %float_1 = OpConstant %float 1 %main_out = OpTypeStruct %v4float - %410 = OpTypeFunction %void %main_out + %407 = OpTypeFunction %void %main_out %merge_i1_i1_i1_ = OpFunction %void None %26 %from = OpFunctionParameter %_ptr_Function_int %mid = OpFunctionParameter %_ptr_Function_int @@ -452,217 +450,207 @@ SKIP: FAILED %212 = OpLabel %260 = OpLoad %int %i_3 %261 = OpSLessThan %bool %260 %int_10 - OpSelectionMerge %262 None - OpBranchConditional %261 %263 %264 - %263 = OpLabel - OpBranch %262 - %264 = OpLabel - OpBranch %211 - %262 = OpLabel - OpBranch %210 + OpBranchConditional %261 %210 %211 %211 = OpLabel OpStore %j_1 %int_0 + OpBranch %262 + %262 = OpLabel + OpLoopMerge %263 %264 None OpBranch %265 %265 = OpLabel - OpLoopMerge %266 %267 None + %266 = OpLoad %int %j_1 + %267 = OpSLessThan %bool %266 %int_10 + OpSelectionMerge %268 None + OpBranchConditional %267 %269 %270 + %269 = OpLabel OpBranch %268 + %270 = OpLabel + OpBranch %263 %268 = OpLabel - %269 = OpLoad %int %j_1 - %270 = OpSLessThan %bool %269 %int_10 - OpSelectionMerge %271 None - OpBranchConditional %270 %272 %273 - %272 = OpLabel - OpBranch %271 - %273 = OpLabel - OpBranch %266 - %271 = OpLabel - %274 = OpLoad %int %j_1 - %275 = OpLoad %int %j_1 - %276 = OpAccessChain %_ptr_Private_int %data %275 - %277 = OpLoad %int %276 - %278 = OpAccessChain %_ptr_Private_int %temp %274 - OpStore %278 %277 - OpBranch %267 - %267 = OpLabel - %279 = OpLoad %int %j_1 - %280 = OpIAdd %int %279 %int_1 - OpStore %j_1 %280 - OpBranch %265 - %266 = OpLabel - %281 = OpFunctionCall %void %mergeSort_ - %284 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %285 = OpLoad %float %284 - %286 = OpConvertFToS %int %285 - %288 = OpSLessThan %bool %286 %int_30 - OpSelectionMerge %289 None - OpBranchConditional %288 %290 %291 - %290 = OpLabel - %292 = OpAccessChain %_ptr_Private_int %data %int_0 - %293 = OpLoad %int %292 - %295 = OpConvertSToF %float %293 - %297 = OpFDiv %float %295 %float_10 - %298 = OpFAdd %float %float_0_5 %297 - OpStore %grey %298 - OpBranch %289 - %291 = OpLabel - %299 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %300 = OpLoad %float %299 - %301 = OpConvertFToS %int %300 - %303 = OpSLessThan %bool %301 %int_60 - OpSelectionMerge %304 None - OpBranchConditional %303 %305 %306 - %305 = OpLabel - %307 = OpAccessChain %_ptr_Private_int %data %int_1 - %308 = OpLoad %int %307 - %309 = OpConvertSToF %float %308 - %310 = OpFDiv %float %309 %float_10 - %311 = OpFAdd %float %float_0_5 %310 - OpStore %grey %311 - OpBranch %304 - %306 = OpLabel - %312 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %313 = OpLoad %float %312 - %314 = OpConvertFToS %int %313 - %316 = OpSLessThan %bool %314 %int_90 - OpSelectionMerge %317 None - OpBranchConditional %316 %318 %319 - %318 = OpLabel - %320 = OpAccessChain %_ptr_Private_int %data %int_2 - %321 = OpLoad %int %320 - %322 = OpConvertSToF %float %321 - %323 = OpFDiv %float %322 %float_10 - %324 = OpFAdd %float %float_0_5 %323 - OpStore %grey %324 - OpBranch %317 - %319 = OpLabel - %325 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %326 = OpLoad %float %325 - %327 = OpConvertFToS %int %326 - %329 = OpSLessThan %bool %327 %int_120 - OpSelectionMerge %330 None - OpBranchConditional %329 %331 %332 - %331 = OpLabel - %333 = OpAccessChain %_ptr_Private_int %data %int_3 - %334 = OpLoad %int %333 - %335 = OpConvertSToF %float %334 - %336 = OpFDiv %float %335 %float_10 - %337 = OpFAdd %float %float_0_5 %336 - OpStore %grey %337 - OpBranch %330 - %332 = OpLabel - %338 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %339 = OpLoad %float %338 - %340 = OpConvertFToS %int %339 - %342 = OpSLessThan %bool %340 %int_150 - OpSelectionMerge %343 None - OpBranchConditional %342 %344 %345 - %344 = OpLabel + %271 = OpLoad %int %j_1 + %272 = OpLoad %int %j_1 + %273 = OpAccessChain %_ptr_Private_int %data %272 + %274 = OpLoad %int %273 + %275 = OpAccessChain %_ptr_Private_int %temp %271 + OpStore %275 %274 + OpBranch %264 + %264 = OpLabel + %276 = OpLoad %int %j_1 + %277 = OpIAdd %int %276 %int_1 + OpStore %j_1 %277 + OpBranch %262 + %263 = OpLabel + %278 = OpFunctionCall %void %mergeSort_ + %281 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %282 = OpLoad %float %281 + %283 = OpConvertFToS %int %282 + %285 = OpSLessThan %bool %283 %int_30 + OpSelectionMerge %286 None + OpBranchConditional %285 %287 %288 + %287 = OpLabel + %289 = OpAccessChain %_ptr_Private_int %data %int_0 + %290 = OpLoad %int %289 + %292 = OpConvertSToF %float %290 + %294 = OpFDiv %float %292 %float_10 + %295 = OpFAdd %float %float_0_5 %294 + OpStore %grey %295 + OpBranch %286 + %288 = OpLabel + %296 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %297 = OpLoad %float %296 + %298 = OpConvertFToS %int %297 + %300 = OpSLessThan %bool %298 %int_60 + OpSelectionMerge %301 None + OpBranchConditional %300 %302 %303 + %302 = OpLabel + %304 = OpAccessChain %_ptr_Private_int %data %int_1 + %305 = OpLoad %int %304 + %306 = OpConvertSToF %float %305 + %307 = OpFDiv %float %306 %float_10 + %308 = OpFAdd %float %float_0_5 %307 + OpStore %grey %308 + OpBranch %301 + %303 = OpLabel + %309 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %310 = OpLoad %float %309 + %311 = OpConvertFToS %int %310 + %313 = OpSLessThan %bool %311 %int_90 + OpSelectionMerge %314 None + OpBranchConditional %313 %315 %316 + %315 = OpLabel + %317 = OpAccessChain %_ptr_Private_int %data %int_2 + %318 = OpLoad %int %317 + %319 = OpConvertSToF %float %318 + %320 = OpFDiv %float %319 %float_10 + %321 = OpFAdd %float %float_0_5 %320 + OpStore %grey %321 + OpBranch %314 + %316 = OpLabel + %322 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %323 = OpLoad %float %322 + %324 = OpConvertFToS %int %323 + %326 = OpSLessThan %bool %324 %int_120 + OpSelectionMerge %327 None + OpBranchConditional %326 %328 %329 + %328 = OpLabel + %330 = OpAccessChain %_ptr_Private_int %data %int_3 + %331 = OpLoad %int %330 + %332 = OpConvertSToF %float %331 + %333 = OpFDiv %float %332 %float_10 + %334 = OpFAdd %float %float_0_5 %333 + OpStore %grey %334 + OpBranch %327 + %329 = OpLabel + %335 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %336 = OpLoad %float %335 + %337 = OpConvertFToS %int %336 + %339 = OpSLessThan %bool %337 %int_150 + OpSelectionMerge %340 None + OpBranchConditional %339 %341 %342 + %341 = OpLabel OpKill - %345 = OpLabel - %346 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %347 = OpLoad %float %346 - %348 = OpConvertFToS %int %347 - %350 = OpSLessThan %bool %348 %int_180 - OpSelectionMerge %351 None - OpBranchConditional %350 %352 %353 - %352 = OpLabel - %355 = OpAccessChain %_ptr_Private_int %data %int_5 - %356 = OpLoad %int %355 - %357 = OpConvertSToF %float %356 - %358 = OpFDiv %float %357 %float_10 - %359 = OpFAdd %float %float_0_5 %358 - OpStore %grey %359 - OpBranch %351 - %353 = OpLabel - %360 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %361 = OpLoad %float %360 - %362 = OpConvertFToS %int %361 - %364 = OpSLessThan %bool %362 %int_210 - OpSelectionMerge %365 None - OpBranchConditional %364 %366 %367 - %366 = OpLabel - %369 = OpAccessChain %_ptr_Private_int %data %int_6 - %370 = OpLoad %int %369 - %371 = OpConvertSToF %float %370 - %372 = OpFDiv %float %371 %float_10 - %373 = OpFAdd %float %float_0_5 %372 - OpStore %grey %373 - OpBranch %365 - %367 = OpLabel - %374 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %375 = OpLoad %float %374 - %376 = OpConvertFToS %int %375 - %378 = OpSLessThan %bool %376 %int_240 - OpSelectionMerge %379 None - OpBranchConditional %378 %380 %381 - %380 = OpLabel - %383 = OpAccessChain %_ptr_Private_int %data %int_7 - %384 = OpLoad %int %383 - %385 = OpConvertSToF %float %384 - %386 = OpFDiv %float %385 %float_10 - %387 = OpFAdd %float %float_0_5 %386 - OpStore %grey %387 - OpBranch %379 - %381 = OpLabel - %388 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %389 = OpLoad %float %388 - %390 = OpConvertFToS %int %389 - %392 = OpSLessThan %bool %390 %int_270 - OpSelectionMerge %393 None - OpBranchConditional %392 %394 %395 - %394 = OpLabel - %397 = OpAccessChain %_ptr_Private_int %data %int_8 - %398 = OpLoad %int %397 - %399 = OpConvertSToF %float %398 - %400 = OpFDiv %float %399 %float_10 - %401 = OpFAdd %float %float_0_5 %400 - OpStore %grey %401 - OpBranch %393 - %395 = OpLabel + %342 = OpLabel + %343 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %344 = OpLoad %float %343 + %345 = OpConvertFToS %int %344 + %347 = OpSLessThan %bool %345 %int_180 + OpSelectionMerge %348 None + OpBranchConditional %347 %349 %350 + %349 = OpLabel + %352 = OpAccessChain %_ptr_Private_int %data %int_5 + %353 = OpLoad %int %352 + %354 = OpConvertSToF %float %353 + %355 = OpFDiv %float %354 %float_10 + %356 = OpFAdd %float %float_0_5 %355 + OpStore %grey %356 + OpBranch %348 + %350 = OpLabel + %357 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %358 = OpLoad %float %357 + %359 = OpConvertFToS %int %358 + %361 = OpSLessThan %bool %359 %int_210 + OpSelectionMerge %362 None + OpBranchConditional %361 %363 %364 + %363 = OpLabel + %366 = OpAccessChain %_ptr_Private_int %data %int_6 + %367 = OpLoad %int %366 + %368 = OpConvertSToF %float %367 + %369 = OpFDiv %float %368 %float_10 + %370 = OpFAdd %float %float_0_5 %369 + OpStore %grey %370 + OpBranch %362 + %364 = OpLabel + %371 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %372 = OpLoad %float %371 + %373 = OpConvertFToS %int %372 + %375 = OpSLessThan %bool %373 %int_240 + OpSelectionMerge %376 None + OpBranchConditional %375 %377 %378 + %377 = OpLabel + %380 = OpAccessChain %_ptr_Private_int %data %int_7 + %381 = OpLoad %int %380 + %382 = OpConvertSToF %float %381 + %383 = OpFDiv %float %382 %float_10 + %384 = OpFAdd %float %float_0_5 %383 + OpStore %grey %384 + OpBranch %376 + %378 = OpLabel + %385 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %386 = OpLoad %float %385 + %387 = OpConvertFToS %int %386 + %389 = OpSLessThan %bool %387 %int_270 + OpSelectionMerge %390 None + OpBranchConditional %389 %391 %392 + %391 = OpLabel + %394 = OpAccessChain %_ptr_Private_int %data %int_8 + %395 = OpLoad %int %394 + %396 = OpConvertSToF %float %395 + %397 = OpFDiv %float %396 %float_10 + %398 = OpFAdd %float %float_0_5 %397 + OpStore %grey %398 + OpBranch %390 + %392 = OpLabel OpKill - %393 = OpLabel - OpBranch %379 - %379 = OpLabel - OpBranch %365 - %365 = OpLabel - OpBranch %351 - %351 = OpLabel - OpBranch %343 - %343 = OpLabel - OpBranch %330 - %330 = OpLabel - OpBranch %317 - %317 = OpLabel - OpBranch %304 - %304 = OpLabel - OpBranch %289 - %289 = OpLabel - %402 = OpLoad %float %grey - %404 = OpCompositeConstruct %v3float %402 %402 %402 - %405 = OpCompositeExtract %float %404 0 - %406 = OpCompositeExtract %float %404 1 - %407 = OpCompositeExtract %float %404 2 - %409 = OpCompositeConstruct %v4float %405 %406 %407 %float_1 - OpStore %x_GLF_color %409 + %390 = OpLabel + OpBranch %376 + %376 = OpLabel + OpBranch %362 + %362 = OpLabel + OpBranch %348 + %348 = OpLabel + OpBranch %340 + %340 = OpLabel + OpBranch %327 + %327 = OpLabel + OpBranch %314 + %314 = OpLabel + OpBranch %301 + %301 = OpLabel + OpBranch %286 + %286 = OpLabel + %399 = OpLoad %float %grey + %401 = OpCompositeConstruct %v3float %399 %399 %399 + %402 = OpCompositeExtract %float %401 0 + %403 = OpCompositeExtract %float %401 1 + %404 = OpCompositeExtract %float %401 2 + %406 = OpCompositeConstruct %v4float %402 %403 %404 %float_1 + OpStore %x_GLF_color %406 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %410 +%tint_symbol_3 = OpFunction %void None %407 %tint_symbol_1 = OpFunctionParameter %main_out - %414 = OpLabel - %415 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %415 + %411 = OpLabel + %412 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %412 OpReturn OpFunctionEnd %main = OpFunction %void None %135 - %417 = OpLabel - %418 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %418 - %419 = OpFunctionCall %void %main_1 - %421 = OpLoad %v4float %x_GLF_color - %422 = OpCompositeConstruct %main_out %421 - %420 = OpFunctionCall %void %tint_symbol_3 %422 + %414 = OpLabel + %415 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %415 + %416 = OpFunctionCall %void %main_1 + %418 = OpLoad %v4float %x_GLF_color + %419 = OpCompositeConstruct %main_out %418 + %417 = OpFunctionCall %void %tint_symbol_3 %419 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 212[%212] is not post dominated by the back-edge block 262[%262] - %262 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.spvasm index f632619db4..858be3184b 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.spvasm @@ -1,12 +1,10 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 425 +; Bound: 418 ; Schema: 0 OpCapability Shader - %187 = OpExtInstImport "GLSL.std.450" + %183 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2 OpExecutionMode %main OriginUpperLeft @@ -99,12 +97,12 @@ SKIP: FAILED %float_256 = OpConstant %float 256 %float_1 = OpConstant %float 1 %int_10 = OpConstant %int 10 - %142 = OpTypeFunction %void + %138 = OpTypeFunction %void %int_0 = OpConstant %int 0 %int_9 = OpConstant %int 9 %int_2 = OpConstant %int 2 %_ptr_Function_float = OpTypePointer Function %float - %211 = OpConstantNull %float + %207 = OpConstantNull %float %uint_0 = OpConstant %uint 0 %_ptr_Uniform_float = OpTypePointer Uniform %float %int_n5 = OpConstant %int -5 @@ -133,7 +131,7 @@ SKIP: FAILED %int_8 = OpConstant %int 8 %v3float = OpTypeVector %float 3 %main_out = OpTypeStruct %v4float - %412 = OpTypeFunction %void %main_out + %405 = OpTypeFunction %void %main_out %merge_i1_i1_i1_ = OpFunction %void None %26 %from = OpFunctionParameter %_ptr_Function_int %mid = OpFunctionParameter %_ptr_Function_int @@ -160,138 +158,128 @@ SKIP: FAILED %54 = OpLoad %int %j %56 = OpLoad %int %to %57 = OpSLessThanEqual %bool %51 %53 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel - %61 = OpSLessThanEqual %bool %54 %56 - OpBranch %59 - %59 = OpLabel - %62 = OpPhi %bool %57 %50 %61 %60 - OpSelectionMerge %63 None - OpBranchConditional %62 %64 %65 - %64 = OpLabel - OpBranch %63 - %65 = OpLabel - OpBranch %48 + %59 = OpSLessThanEqual %bool %54 %56 + %60 = OpLogicalAnd %bool %57 %59 + OpSelectionMerge %61 None + OpBranchConditional %60 %62 %63 + %62 = OpLabel + OpBranch %61 %63 = OpLabel - %66 = OpLoad %int %i - %68 = OpAccessChain %_ptr_Private_int %data %66 - %69 = OpLoad %int %68 - %70 = OpLoad %int %j - %71 = OpAccessChain %_ptr_Private_int %data %70 - %72 = OpLoad %int %71 - %73 = OpSLessThan %bool %69 %72 - OpSelectionMerge %74 None - OpBranchConditional %73 %75 %76 - %75 = OpLabel - %77 = OpLoad %int %k + OpBranch %48 + %61 = OpLabel + %64 = OpLoad %int %i + %66 = OpAccessChain %_ptr_Private_int %data %64 + %67 = OpLoad %int %66 + %68 = OpLoad %int %j + %69 = OpAccessChain %_ptr_Private_int %data %68 + %70 = OpLoad %int %69 + %71 = OpSLessThan %bool %67 %70 + OpSelectionMerge %72 None + OpBranchConditional %71 %73 %74 + %73 = OpLabel + %75 = OpLoad %int %k + %76 = OpIAdd %int %75 %int_1 + OpStore %k %76 + %77 = OpLoad %int %i %78 = OpIAdd %int %77 %int_1 - OpStore %k %78 - %79 = OpLoad %int %i - %80 = OpIAdd %int %79 %int_1 - OpStore %i %80 - %81 = OpAccessChain %_ptr_Private_int %data %79 - %82 = OpLoad %int %81 - %83 = OpAccessChain %_ptr_Private_int %temp %77 - OpStore %83 %82 - OpBranch %74 - %76 = OpLabel - %84 = OpLoad %int %k - %85 = OpIAdd %int %84 %int_1 - OpStore %k %85 - %86 = OpLoad %int %j - %87 = OpIAdd %int %86 %int_1 - OpStore %j %87 - %88 = OpAccessChain %_ptr_Private_int %data %86 - %89 = OpLoad %int %88 - %90 = OpAccessChain %_ptr_Private_int %temp %84 - OpStore %90 %89 - OpBranch %74 + OpStore %i %78 + %79 = OpAccessChain %_ptr_Private_int %data %77 + %80 = OpLoad %int %79 + %81 = OpAccessChain %_ptr_Private_int %temp %75 + OpStore %81 %80 + OpBranch %72 %74 = OpLabel + %82 = OpLoad %int %k + %83 = OpIAdd %int %82 %int_1 + OpStore %k %83 + %84 = OpLoad %int %j + %85 = OpIAdd %int %84 %int_1 + OpStore %j %85 + %86 = OpAccessChain %_ptr_Private_int %data %84 + %87 = OpLoad %int %86 + %88 = OpAccessChain %_ptr_Private_int %temp %82 + OpStore %88 %87 + OpBranch %72 + %72 = OpLabel OpBranch %49 %49 = OpLabel OpBranch %47 %48 = OpLabel + OpBranch %89 + %89 = OpLabel + OpLoopMerge %90 %91 None + OpBranch %92 + %92 = OpLabel + %96 = OpFOrdLessThan %bool %float_256 %float_1 + %93 = OpLogicalNot %bool %96 + OpSelectionMerge %97 None + OpBranchConditional %93 %98 %99 + %98 = OpLabel + OpBranch %97 + %99 = OpLabel + OpBranch %91 + %97 = OpLabel + %100 = OpLoad %int %i + %101 = OpLoad %int %i + %103 = OpLoad %int %mid + %105 = OpSLessThan %bool %100 %int_10 + %106 = OpSLessThanEqual %bool %101 %103 + %107 = OpLogicalAnd %bool %105 %106 + OpSelectionMerge %108 None + OpBranchConditional %107 %109 %110 + %109 = OpLabel + OpBranch %108 + %110 = OpLabel + OpBranch %90 + %108 = OpLabel + %111 = OpLoad %int %k + %112 = OpIAdd %int %111 %int_1 + OpStore %k %112 + %113 = OpLoad %int %i + %114 = OpIAdd %int %113 %int_1 + OpStore %i %114 + %115 = OpAccessChain %_ptr_Private_int %data %113 + %116 = OpLoad %int %115 + %117 = OpAccessChain %_ptr_Private_int %temp %111 + OpStore %117 %116 OpBranch %91 %91 = OpLabel - OpLoopMerge %92 %93 None - OpBranch %94 - %94 = OpLabel - %98 = OpFOrdLessThan %bool %float_256 %float_1 - %95 = OpLogicalNot %bool %98 - OpSelectionMerge %99 None - OpBranchConditional %95 %100 %101 - %100 = OpLabel - OpBranch %99 - %101 = OpLabel - OpBranch %93 - %99 = OpLabel - %102 = OpLoad %int %i - %103 = OpLoad %int %i - %105 = OpLoad %int %mid - %107 = OpSLessThan %bool %102 %int_10 - OpSelectionMerge %108 None - OpBranchConditional %107 %109 %108 - %109 = OpLabel - %110 = OpSLessThanEqual %bool %103 %105 - OpBranch %108 - %108 = OpLabel - %111 = OpPhi %bool %107 %99 %110 %109 - OpSelectionMerge %112 None - OpBranchConditional %111 %113 %114 - %113 = OpLabel - OpBranch %112 - %114 = OpLabel - OpBranch %92 - %112 = OpLabel - %115 = OpLoad %int %k - %116 = OpIAdd %int %115 %int_1 - OpStore %k %116 - %117 = OpLoad %int %i - %118 = OpIAdd %int %117 %int_1 - OpStore %i %118 - %119 = OpAccessChain %_ptr_Private_int %data %117 - %120 = OpLoad %int %119 - %121 = OpAccessChain %_ptr_Private_int %temp %115 - OpStore %121 %120 - OpBranch %93 - %93 = OpLabel - OpBranch %91 - %92 = OpLabel - %123 = OpLoad %int %from - OpStore %i_1 %123 - OpBranch %124 - %124 = OpLabel - OpLoopMerge %125 %126 None - OpBranch %127 - %127 = OpLabel - %128 = OpLoad %int %i_1 - %130 = OpLoad %int %to - %131 = OpSLessThanEqual %bool %128 %130 - OpSelectionMerge %132 None - OpBranchConditional %131 %133 %134 - %133 = OpLabel - OpBranch %132 - %134 = OpLabel - OpBranch %125 - %132 = OpLabel - %135 = OpLoad %int %i_1 + OpBranch %89 + %90 = OpLabel + %119 = OpLoad %int %from + OpStore %i_1 %119 + OpBranch %120 + %120 = OpLabel + OpLoopMerge %121 %122 None + OpBranch %123 + %123 = OpLabel + %124 = OpLoad %int %i_1 + %126 = OpLoad %int %to + %127 = OpSLessThanEqual %bool %124 %126 + OpSelectionMerge %128 None + OpBranchConditional %127 %129 %130 + %129 = OpLabel + OpBranch %128 + %130 = OpLabel + OpBranch %121 + %128 = OpLabel + %131 = OpLoad %int %i_1 + %132 = OpLoad %int %i_1 + %133 = OpAccessChain %_ptr_Private_int %temp %132 + %134 = OpLoad %int %133 + %135 = OpAccessChain %_ptr_Private_int %data %131 + OpStore %135 %134 + OpBranch %122 + %122 = OpLabel %136 = OpLoad %int %i_1 - %137 = OpAccessChain %_ptr_Private_int %temp %136 - %138 = OpLoad %int %137 - %139 = OpAccessChain %_ptr_Private_int %data %135 - OpStore %139 %138 - OpBranch %126 - %126 = OpLabel - %140 = OpLoad %int %i_1 - %141 = OpIAdd %int %140 %int_1 - OpStore %i_1 %141 - OpBranch %124 - %125 = OpLabel + %137 = OpIAdd %int %136 %int_1 + OpStore %i_1 %137 + OpBranch %120 + %121 = OpLabel OpReturn OpFunctionEnd - %mergeSort_ = OpFunction %void None %142 - %144 = OpLabel + %mergeSort_ = OpFunction %void None %138 + %140 = OpLabel %low = OpVariable %_ptr_Function_int Function %35 %high = OpVariable %_ptr_Function_int Function %35 %m = OpVariable %_ptr_Function_int Function %35 @@ -305,366 +293,356 @@ SKIP: FAILED OpStore %low %int_0 OpStore %high %int_9 OpStore %m %int_1 - OpBranch %157 - %157 = OpLabel - OpLoopMerge %158 %159 None + OpBranch %153 + %153 = OpLabel + OpLoopMerge %154 %155 None + OpBranch %156 + %156 = OpLabel + %157 = OpLoad %int %m + %158 = OpLoad %int %high + %159 = OpSLessThanEqual %bool %157 %158 + OpSelectionMerge %160 None + OpBranchConditional %159 %161 %162 + %161 = OpLabel OpBranch %160 + %162 = OpLabel + OpBranch %154 %160 = OpLabel - %161 = OpLoad %int %m - %162 = OpLoad %int %high - %163 = OpSLessThanEqual %bool %161 %162 - OpSelectionMerge %164 None - OpBranchConditional %163 %165 %166 - %165 = OpLabel + %163 = OpLoad %int %low + OpStore %i_2 %163 OpBranch %164 - %166 = OpLabel - OpBranch %158 %164 = OpLabel - %167 = OpLoad %int %low - OpStore %i_2 %167 - OpBranch %168 - %168 = OpLabel - OpLoopMerge %169 %170 None + OpLoopMerge %165 %166 None + OpBranch %167 + %167 = OpLabel + %168 = OpLoad %int %i_2 + %169 = OpLoad %int %high + %170 = OpSLessThan %bool %168 %169 + OpSelectionMerge %171 None + OpBranchConditional %170 %172 %173 + %172 = OpLabel OpBranch %171 + %173 = OpLabel + OpBranch %165 %171 = OpLabel - %172 = OpLoad %int %i_2 - %173 = OpLoad %int %high - %174 = OpSLessThan %bool %172 %173 - OpSelectionMerge %175 None - OpBranchConditional %174 %176 %177 - %176 = OpLabel - OpBranch %175 - %177 = OpLabel - OpBranch %169 - %175 = OpLabel - %178 = OpLoad %int %i_2 - OpStore %from_1 %178 + %174 = OpLoad %int %i_2 + OpStore %from_1 %174 + %175 = OpLoad %int %i_2 + %176 = OpLoad %int %m + %177 = OpIAdd %int %175 %176 + %178 = OpISub %int %177 %int_1 + OpStore %mid_1 %178 %179 = OpLoad %int %i_2 %180 = OpLoad %int %m - %181 = OpIAdd %int %179 %180 - %182 = OpISub %int %181 %int_1 - OpStore %mid_1 %182 - %183 = OpLoad %int %i_2 - %184 = OpLoad %int %m - %185 = OpLoad %int %high - %189 = OpIMul %int %int_2 %184 - %190 = OpIAdd %int %183 %189 - %191 = OpISub %int %190 %int_1 - %186 = OpExtInst %int %187 SMin %191 %185 - OpStore %to_1 %186 - %192 = OpLoad %int %from_1 - OpStore %param %192 - %193 = OpLoad %int %mid_1 - OpStore %param_1 %193 - %194 = OpLoad %int %to_1 - OpStore %param_2 %194 - %195 = OpFunctionCall %void %merge_i1_i1_i1_ %param %param_1 %param_2 - OpBranch %170 - %170 = OpLabel + %181 = OpLoad %int %high + %185 = OpIMul %int %int_2 %180 + %186 = OpIAdd %int %179 %185 + %187 = OpISub %int %186 %int_1 + %182 = OpExtInst %int %183 SMin %187 %181 + OpStore %to_1 %182 + %188 = OpLoad %int %from_1 + OpStore %param %188 + %189 = OpLoad %int %mid_1 + OpStore %param_1 %189 + %190 = OpLoad %int %to_1 + OpStore %param_2 %190 + %191 = OpFunctionCall %void %merge_i1_i1_i1_ %param %param_1 %param_2 + OpBranch %166 + %166 = OpLabel + %195 = OpLoad %int %m + %196 = OpLoad %int %i_2 + %197 = OpIMul %int %int_2 %195 + %198 = OpIAdd %int %196 %197 + OpStore %i_2 %198 + OpBranch %164 + %165 = OpLabel + OpBranch %155 + %155 = OpLabel %199 = OpLoad %int %m - %200 = OpLoad %int %i_2 - %201 = OpIMul %int %int_2 %199 - %202 = OpIAdd %int %200 %201 - OpStore %i_2 %202 - OpBranch %168 - %169 = OpLabel - OpBranch %159 - %159 = OpLabel - %203 = OpLoad %int %m - %204 = OpIMul %int %int_2 %203 - OpStore %m %204 - OpBranch %157 - %158 = OpLabel + %200 = OpIMul %int %int_2 %199 + OpStore %m %200 + OpBranch %153 + %154 = OpLabel OpReturn OpFunctionEnd - %main_1 = OpFunction %void None %142 - %206 = OpLabel + %main_1 = OpFunction %void None %138 + %202 = OpLabel %i_3 = OpVariable %_ptr_Function_int Function %35 %j_1 = OpVariable %_ptr_Function_int Function %35 - %grey = OpVariable %_ptr_Function_float Function %211 - %214 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 - %215 = OpLoad %float %214 - %216 = OpConvertFToS %int %215 - OpStore %i_3 %216 - OpBranch %217 - %217 = OpLabel - OpLoopMerge %218 %219 None - OpBranch %220 + %grey = OpVariable %_ptr_Function_float Function %207 + %210 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 + %211 = OpLoad %float %210 + %212 = OpConvertFToS %int %211 + OpStore %i_3 %212 + OpBranch %213 + %213 = OpLabel + OpLoopMerge %214 %215 None + OpBranch %216 + %216 = OpLabel + %217 = OpLoad %int %i_3 + OpSelectionMerge %218 None + OpSwitch %217 %219 9 %220 8 %221 7 %222 6 %223 5 %224 4 %225 3 %226 2 %227 1 %228 0 %229 %220 = OpLabel - %221 = OpLoad %int %i_3 - OpSelectionMerge %222 None - OpSwitch %221 %223 9 %224 8 %225 7 %226 6 %227 5 %228 4 %229 3 %230 2 %231 1 %232 0 %233 + %230 = OpLoad %int %i_3 + %231 = OpAccessChain %_ptr_Private_int %data %230 + OpStore %231 %int_n5 + OpBranch %218 + %221 = OpLabel + %233 = OpLoad %int %i_3 + %234 = OpAccessChain %_ptr_Private_int %data %233 + OpStore %234 %int_n4 + OpBranch %218 + %222 = OpLabel + %236 = OpLoad %int %i_3 + %237 = OpAccessChain %_ptr_Private_int %data %236 + OpStore %237 %int_n3 + OpBranch %218 + %223 = OpLabel + %239 = OpLoad %int %i_3 + %240 = OpAccessChain %_ptr_Private_int %data %239 + OpStore %240 %int_n2 + OpBranch %218 %224 = OpLabel - %234 = OpLoad %int %i_3 - %235 = OpAccessChain %_ptr_Private_int %data %234 - OpStore %235 %int_n5 - OpBranch %222 + %242 = OpLoad %int %i_3 + %243 = OpAccessChain %_ptr_Private_int %data %242 + OpStore %243 %int_n1 + OpBranch %218 %225 = OpLabel - %237 = OpLoad %int %i_3 - %238 = OpAccessChain %_ptr_Private_int %data %237 - OpStore %238 %int_n4 - OpBranch %222 + %245 = OpLoad %int %i_3 + %246 = OpAccessChain %_ptr_Private_int %data %245 + OpStore %246 %int_0 + OpBranch %218 %226 = OpLabel - %240 = OpLoad %int %i_3 - %241 = OpAccessChain %_ptr_Private_int %data %240 - OpStore %241 %int_n3 - OpBranch %222 + %247 = OpLoad %int %i_3 + %248 = OpAccessChain %_ptr_Private_int %data %247 + OpStore %248 %int_1 + OpBranch %218 %227 = OpLabel - %243 = OpLoad %int %i_3 - %244 = OpAccessChain %_ptr_Private_int %data %243 - OpStore %244 %int_n2 - OpBranch %222 - %228 = OpLabel - %246 = OpLoad %int %i_3 - %247 = OpAccessChain %_ptr_Private_int %data %246 - OpStore %247 %int_n1 - OpBranch %222 - %229 = OpLabel %249 = OpLoad %int %i_3 %250 = OpAccessChain %_ptr_Private_int %data %249 - OpStore %250 %int_0 - OpBranch %222 - %230 = OpLabel + OpStore %250 %int_2 + OpBranch %218 + %228 = OpLabel %251 = OpLoad %int %i_3 %252 = OpAccessChain %_ptr_Private_int %data %251 - OpStore %252 %int_1 - OpBranch %222 - %231 = OpLabel - %253 = OpLoad %int %i_3 - %254 = OpAccessChain %_ptr_Private_int %data %253 - OpStore %254 %int_2 - OpBranch %222 - %232 = OpLabel - %255 = OpLoad %int %i_3 - %256 = OpAccessChain %_ptr_Private_int %data %255 - OpStore %256 %int_3 - OpBranch %222 - %233 = OpLabel - %258 = OpLoad %int %i_3 - %259 = OpAccessChain %_ptr_Private_int %data %258 - OpStore %259 %int_4 - OpBranch %222 - %223 = OpLabel - OpBranch %222 - %222 = OpLabel - %261 = OpLoad %int %i_3 - %262 = OpIAdd %int %261 %int_1 - OpStore %i_3 %262 - OpBranch %219 - %219 = OpLabel - %263 = OpLoad %int %i_3 - %264 = OpSLessThan %bool %263 %int_10 - OpSelectionMerge %265 None - OpBranchConditional %264 %266 %267 - %266 = OpLabel - OpBranch %265 - %267 = OpLabel + OpStore %252 %int_3 + OpBranch %218 + %229 = OpLabel + %254 = OpLoad %int %i_3 + %255 = OpAccessChain %_ptr_Private_int %data %254 + OpStore %255 %int_4 + OpBranch %218 + %219 = OpLabel OpBranch %218 - %265 = OpLabel - OpBranch %217 %218 = OpLabel + %257 = OpLoad %int %i_3 + %258 = OpIAdd %int %257 %int_1 + OpStore %i_3 %258 + OpBranch %215 + %215 = OpLabel + %259 = OpLoad %int %i_3 + %260 = OpSLessThan %bool %259 %int_10 + OpBranchConditional %260 %213 %214 + %214 = OpLabel OpStore %j_1 %int_0 - OpBranch %268 + OpBranch %261 + %261 = OpLabel + OpLoopMerge %262 %263 None + OpBranch %264 + %264 = OpLabel + %265 = OpLoad %int %j_1 + %266 = OpSLessThan %bool %265 %int_10 + OpSelectionMerge %267 None + OpBranchConditional %266 %268 %269 %268 = OpLabel - OpLoopMerge %269 %270 None - OpBranch %271 - %271 = OpLabel - %272 = OpLoad %int %j_1 - %273 = OpSLessThan %bool %272 %int_10 - OpSelectionMerge %274 None - OpBranchConditional %273 %275 %276 - %275 = OpLabel - OpBranch %274 - %276 = OpLabel - OpBranch %269 - %274 = OpLabel - %277 = OpLoad %int %j_1 - %278 = OpLoad %int %j_1 - %279 = OpAccessChain %_ptr_Private_int %data %278 - %280 = OpLoad %int %279 - %281 = OpAccessChain %_ptr_Private_int %temp %277 - OpStore %281 %280 - OpBranch %270 - %270 = OpLabel - %282 = OpLoad %int %j_1 - %283 = OpIAdd %int %282 %int_1 - OpStore %j_1 %283 - OpBranch %268 + OpBranch %267 %269 = OpLabel - %284 = OpFunctionCall %void %mergeSort_ - %287 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %288 = OpLoad %float %287 - %289 = OpConvertFToS %int %288 - %291 = OpSLessThan %bool %289 %int_30 - OpSelectionMerge %292 None - OpBranchConditional %291 %293 %294 - %293 = OpLabel - %295 = OpAccessChain %_ptr_Private_int %data %int_0 - %296 = OpLoad %int %295 - %298 = OpConvertSToF %float %296 - %300 = OpFDiv %float %298 %float_10 - %301 = OpFAdd %float %float_0_5 %300 - OpStore %grey %301 - OpBranch %292 - %294 = OpLabel - %302 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %303 = OpLoad %float %302 - %304 = OpConvertFToS %int %303 - %306 = OpSLessThan %bool %304 %int_60 - OpSelectionMerge %307 None - OpBranchConditional %306 %308 %309 - %308 = OpLabel - %310 = OpAccessChain %_ptr_Private_int %data %int_1 - %311 = OpLoad %int %310 - %312 = OpConvertSToF %float %311 - %313 = OpFDiv %float %312 %float_10 - %314 = OpFAdd %float %float_0_5 %313 - OpStore %grey %314 - OpBranch %307 - %309 = OpLabel - %315 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %316 = OpLoad %float %315 - %317 = OpConvertFToS %int %316 - %319 = OpSLessThan %bool %317 %int_90 - OpSelectionMerge %320 None - OpBranchConditional %319 %321 %322 - %321 = OpLabel - %323 = OpAccessChain %_ptr_Private_int %data %int_2 - %324 = OpLoad %int %323 - %325 = OpConvertSToF %float %324 - %326 = OpFDiv %float %325 %float_10 - %327 = OpFAdd %float %float_0_5 %326 - OpStore %grey %327 - OpBranch %320 - %322 = OpLabel - %328 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %329 = OpLoad %float %328 - %330 = OpConvertFToS %int %329 - %332 = OpSLessThan %bool %330 %int_120 - OpSelectionMerge %333 None - OpBranchConditional %332 %334 %335 - %334 = OpLabel - %336 = OpAccessChain %_ptr_Private_int %data %int_3 - %337 = OpLoad %int %336 - %338 = OpConvertSToF %float %337 - %339 = OpFDiv %float %338 %float_10 - %340 = OpFAdd %float %float_0_5 %339 - OpStore %grey %340 - OpBranch %333 - %335 = OpLabel - %341 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %342 = OpLoad %float %341 - %343 = OpConvertFToS %int %342 - %345 = OpSLessThan %bool %343 %int_150 - OpSelectionMerge %346 None - OpBranchConditional %345 %347 %348 - %347 = OpLabel + OpBranch %262 + %267 = OpLabel + %270 = OpLoad %int %j_1 + %271 = OpLoad %int %j_1 + %272 = OpAccessChain %_ptr_Private_int %data %271 + %273 = OpLoad %int %272 + %274 = OpAccessChain %_ptr_Private_int %temp %270 + OpStore %274 %273 + OpBranch %263 + %263 = OpLabel + %275 = OpLoad %int %j_1 + %276 = OpIAdd %int %275 %int_1 + OpStore %j_1 %276 + OpBranch %261 + %262 = OpLabel + %277 = OpFunctionCall %void %mergeSort_ + %280 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %281 = OpLoad %float %280 + %282 = OpConvertFToS %int %281 + %284 = OpSLessThan %bool %282 %int_30 + OpSelectionMerge %285 None + OpBranchConditional %284 %286 %287 + %286 = OpLabel + %288 = OpAccessChain %_ptr_Private_int %data %int_0 + %289 = OpLoad %int %288 + %291 = OpConvertSToF %float %289 + %293 = OpFDiv %float %291 %float_10 + %294 = OpFAdd %float %float_0_5 %293 + OpStore %grey %294 + OpBranch %285 + %287 = OpLabel + %295 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %296 = OpLoad %float %295 + %297 = OpConvertFToS %int %296 + %299 = OpSLessThan %bool %297 %int_60 + OpSelectionMerge %300 None + OpBranchConditional %299 %301 %302 + %301 = OpLabel + %303 = OpAccessChain %_ptr_Private_int %data %int_1 + %304 = OpLoad %int %303 + %305 = OpConvertSToF %float %304 + %306 = OpFDiv %float %305 %float_10 + %307 = OpFAdd %float %float_0_5 %306 + OpStore %grey %307 + OpBranch %300 + %302 = OpLabel + %308 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %309 = OpLoad %float %308 + %310 = OpConvertFToS %int %309 + %312 = OpSLessThan %bool %310 %int_90 + OpSelectionMerge %313 None + OpBranchConditional %312 %314 %315 + %314 = OpLabel + %316 = OpAccessChain %_ptr_Private_int %data %int_2 + %317 = OpLoad %int %316 + %318 = OpConvertSToF %float %317 + %319 = OpFDiv %float %318 %float_10 + %320 = OpFAdd %float %float_0_5 %319 + OpStore %grey %320 + OpBranch %313 + %315 = OpLabel + %321 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %322 = OpLoad %float %321 + %323 = OpConvertFToS %int %322 + %325 = OpSLessThan %bool %323 %int_120 + OpSelectionMerge %326 None + OpBranchConditional %325 %327 %328 + %327 = OpLabel + %329 = OpAccessChain %_ptr_Private_int %data %int_3 + %330 = OpLoad %int %329 + %331 = OpConvertSToF %float %330 + %332 = OpFDiv %float %331 %float_10 + %333 = OpFAdd %float %float_0_5 %332 + OpStore %grey %333 + OpBranch %326 + %328 = OpLabel + %334 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %335 = OpLoad %float %334 + %336 = OpConvertFToS %int %335 + %338 = OpSLessThan %bool %336 %int_150 + OpSelectionMerge %339 None + OpBranchConditional %338 %340 %341 + %340 = OpLabel OpKill + %341 = OpLabel + %342 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %343 = OpLoad %float %342 + %344 = OpConvertFToS %int %343 + %346 = OpSLessThan %bool %344 %int_180 + OpSelectionMerge %347 None + OpBranchConditional %346 %348 %349 %348 = OpLabel - %349 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %350 = OpLoad %float %349 - %351 = OpConvertFToS %int %350 - %353 = OpSLessThan %bool %351 %int_180 - OpSelectionMerge %354 None - OpBranchConditional %353 %355 %356 - %355 = OpLabel - %358 = OpAccessChain %_ptr_Private_int %data %int_5 - %359 = OpLoad %int %358 - %360 = OpConvertSToF %float %359 - %361 = OpFDiv %float %360 %float_10 - %362 = OpFAdd %float %float_0_5 %361 - OpStore %grey %362 - OpBranch %354 - %356 = OpLabel - %363 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %364 = OpLoad %float %363 - %365 = OpConvertFToS %int %364 - %367 = OpSLessThan %bool %365 %int_210 - OpSelectionMerge %368 None - OpBranchConditional %367 %369 %370 - %369 = OpLabel - %372 = OpAccessChain %_ptr_Private_int %data %int_6 - %373 = OpLoad %int %372 - %374 = OpConvertSToF %float %373 - %375 = OpFDiv %float %374 %float_10 - %376 = OpFAdd %float %float_0_5 %375 - OpStore %grey %376 - OpBranch %368 - %370 = OpLabel - %377 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %378 = OpLoad %float %377 - %379 = OpConvertFToS %int %378 - %381 = OpSLessThan %bool %379 %int_240 - OpSelectionMerge %382 None - OpBranchConditional %381 %383 %384 - %383 = OpLabel - %386 = OpAccessChain %_ptr_Private_int %data %int_7 - %387 = OpLoad %int %386 - %388 = OpConvertSToF %float %387 - %389 = OpFDiv %float %388 %float_10 - %390 = OpFAdd %float %float_0_5 %389 - OpStore %grey %390 - OpBranch %382 - %384 = OpLabel - %391 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %392 = OpLoad %float %391 - %393 = OpConvertFToS %int %392 - %395 = OpSLessThan %bool %393 %int_270 - OpSelectionMerge %396 None - OpBranchConditional %395 %397 %398 - %397 = OpLabel - %400 = OpAccessChain %_ptr_Private_int %data %int_8 - %401 = OpLoad %int %400 - %402 = OpConvertSToF %float %401 - %403 = OpFDiv %float %402 %float_10 - %404 = OpFAdd %float %float_0_5 %403 - OpStore %grey %404 - OpBranch %396 - %398 = OpLabel + %351 = OpAccessChain %_ptr_Private_int %data %int_5 + %352 = OpLoad %int %351 + %353 = OpConvertSToF %float %352 + %354 = OpFDiv %float %353 %float_10 + %355 = OpFAdd %float %float_0_5 %354 + OpStore %grey %355 + OpBranch %347 + %349 = OpLabel + %356 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %357 = OpLoad %float %356 + %358 = OpConvertFToS %int %357 + %360 = OpSLessThan %bool %358 %int_210 + OpSelectionMerge %361 None + OpBranchConditional %360 %362 %363 + %362 = OpLabel + %365 = OpAccessChain %_ptr_Private_int %data %int_6 + %366 = OpLoad %int %365 + %367 = OpConvertSToF %float %366 + %368 = OpFDiv %float %367 %float_10 + %369 = OpFAdd %float %float_0_5 %368 + OpStore %grey %369 + OpBranch %361 + %363 = OpLabel + %370 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %371 = OpLoad %float %370 + %372 = OpConvertFToS %int %371 + %374 = OpSLessThan %bool %372 %int_240 + OpSelectionMerge %375 None + OpBranchConditional %374 %376 %377 + %376 = OpLabel + %379 = OpAccessChain %_ptr_Private_int %data %int_7 + %380 = OpLoad %int %379 + %381 = OpConvertSToF %float %380 + %382 = OpFDiv %float %381 %float_10 + %383 = OpFAdd %float %float_0_5 %382 + OpStore %grey %383 + OpBranch %375 + %377 = OpLabel + %384 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %385 = OpLoad %float %384 + %386 = OpConvertFToS %int %385 + %388 = OpSLessThan %bool %386 %int_270 + OpSelectionMerge %389 None + OpBranchConditional %388 %390 %391 + %390 = OpLabel + %393 = OpAccessChain %_ptr_Private_int %data %int_8 + %394 = OpLoad %int %393 + %395 = OpConvertSToF %float %394 + %396 = OpFDiv %float %395 %float_10 + %397 = OpFAdd %float %float_0_5 %396 + OpStore %grey %397 + OpBranch %389 + %391 = OpLabel OpKill - %396 = OpLabel - OpBranch %382 - %382 = OpLabel - OpBranch %368 - %368 = OpLabel - OpBranch %354 - %354 = OpLabel - OpBranch %346 - %346 = OpLabel - OpBranch %333 - %333 = OpLabel - OpBranch %320 - %320 = OpLabel - OpBranch %307 - %307 = OpLabel - OpBranch %292 - %292 = OpLabel - %405 = OpLoad %float %grey - %407 = OpCompositeConstruct %v3float %405 %405 %405 - %408 = OpCompositeExtract %float %407 0 - %409 = OpCompositeExtract %float %407 1 - %410 = OpCompositeExtract %float %407 2 - %411 = OpCompositeConstruct %v4float %408 %409 %410 %float_1 - OpStore %x_GLF_color %411 + %389 = OpLabel + OpBranch %375 + %375 = OpLabel + OpBranch %361 + %361 = OpLabel + OpBranch %347 + %347 = OpLabel + OpBranch %339 + %339 = OpLabel + OpBranch %326 + %326 = OpLabel + OpBranch %313 + %313 = OpLabel + OpBranch %300 + %300 = OpLabel + OpBranch %285 + %285 = OpLabel + %398 = OpLoad %float %grey + %400 = OpCompositeConstruct %v3float %398 %398 %398 + %401 = OpCompositeExtract %float %400 0 + %402 = OpCompositeExtract %float %400 1 + %403 = OpCompositeExtract %float %400 2 + %404 = OpCompositeConstruct %v4float %401 %402 %403 %float_1 + OpStore %x_GLF_color %404 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %412 +%tint_symbol_3 = OpFunction %void None %405 %tint_symbol_1 = OpFunctionParameter %main_out - %416 = OpLabel - %417 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %417 + %409 = OpLabel + %410 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %410 OpReturn OpFunctionEnd - %main = OpFunction %void None %142 - %419 = OpLabel - %420 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %420 - %421 = OpFunctionCall %void %main_1 - %423 = OpLoad %v4float %x_GLF_color - %424 = OpCompositeConstruct %main_out %423 - %422 = OpFunctionCall %void %tint_symbol_3 %424 + %main = OpFunction %void None %138 + %412 = OpLabel + %413 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %413 + %414 = OpFunctionCall %void %main_1 + %416 = OpLoad %v4float %x_GLF_color + %417 = OpCompositeConstruct %main_out %416 + %415 = OpFunctionCall %void %tint_symbol_3 %417 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 219[%219] is not post dominated by the back-edge block 265[%265] - %265 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.wgsl.expected.spvasm index f632619db4..b7687ce19b 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 425 +; Bound: 422 ; Schema: 0 OpCapability Shader %187 = OpExtInstImport "GLSL.std.450" @@ -133,7 +131,7 @@ SKIP: FAILED %int_8 = OpConstant %int 8 %v3float = OpTypeVector %float 3 %main_out = OpTypeStruct %v4float - %412 = OpTypeFunction %void %main_out + %409 = OpTypeFunction %void %main_out %merge_i1_i1_i1_ = OpFunction %void None %26 %from = OpFunctionParameter %_ptr_Function_int %mid = OpFunctionParameter %_ptr_Function_int @@ -454,217 +452,207 @@ SKIP: FAILED %219 = OpLabel %263 = OpLoad %int %i_3 %264 = OpSLessThan %bool %263 %int_10 - OpSelectionMerge %265 None - OpBranchConditional %264 %266 %267 - %266 = OpLabel - OpBranch %265 - %267 = OpLabel - OpBranch %218 - %265 = OpLabel - OpBranch %217 + OpBranchConditional %264 %217 %218 %218 = OpLabel OpStore %j_1 %int_0 + OpBranch %265 + %265 = OpLabel + OpLoopMerge %266 %267 None OpBranch %268 %268 = OpLabel - OpLoopMerge %269 %270 None + %269 = OpLoad %int %j_1 + %270 = OpSLessThan %bool %269 %int_10 + OpSelectionMerge %271 None + OpBranchConditional %270 %272 %273 + %272 = OpLabel OpBranch %271 + %273 = OpLabel + OpBranch %266 %271 = OpLabel - %272 = OpLoad %int %j_1 - %273 = OpSLessThan %bool %272 %int_10 - OpSelectionMerge %274 None - OpBranchConditional %273 %275 %276 - %275 = OpLabel - OpBranch %274 - %276 = OpLabel - OpBranch %269 - %274 = OpLabel - %277 = OpLoad %int %j_1 - %278 = OpLoad %int %j_1 - %279 = OpAccessChain %_ptr_Private_int %data %278 - %280 = OpLoad %int %279 - %281 = OpAccessChain %_ptr_Private_int %temp %277 - OpStore %281 %280 - OpBranch %270 - %270 = OpLabel - %282 = OpLoad %int %j_1 - %283 = OpIAdd %int %282 %int_1 - OpStore %j_1 %283 - OpBranch %268 - %269 = OpLabel - %284 = OpFunctionCall %void %mergeSort_ - %287 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %288 = OpLoad %float %287 - %289 = OpConvertFToS %int %288 - %291 = OpSLessThan %bool %289 %int_30 - OpSelectionMerge %292 None - OpBranchConditional %291 %293 %294 - %293 = OpLabel - %295 = OpAccessChain %_ptr_Private_int %data %int_0 - %296 = OpLoad %int %295 - %298 = OpConvertSToF %float %296 - %300 = OpFDiv %float %298 %float_10 - %301 = OpFAdd %float %float_0_5 %300 - OpStore %grey %301 - OpBranch %292 - %294 = OpLabel - %302 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %303 = OpLoad %float %302 - %304 = OpConvertFToS %int %303 - %306 = OpSLessThan %bool %304 %int_60 - OpSelectionMerge %307 None - OpBranchConditional %306 %308 %309 - %308 = OpLabel - %310 = OpAccessChain %_ptr_Private_int %data %int_1 - %311 = OpLoad %int %310 - %312 = OpConvertSToF %float %311 - %313 = OpFDiv %float %312 %float_10 - %314 = OpFAdd %float %float_0_5 %313 - OpStore %grey %314 - OpBranch %307 - %309 = OpLabel - %315 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %316 = OpLoad %float %315 - %317 = OpConvertFToS %int %316 - %319 = OpSLessThan %bool %317 %int_90 - OpSelectionMerge %320 None - OpBranchConditional %319 %321 %322 - %321 = OpLabel - %323 = OpAccessChain %_ptr_Private_int %data %int_2 - %324 = OpLoad %int %323 - %325 = OpConvertSToF %float %324 - %326 = OpFDiv %float %325 %float_10 - %327 = OpFAdd %float %float_0_5 %326 - OpStore %grey %327 - OpBranch %320 - %322 = OpLabel - %328 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %329 = OpLoad %float %328 - %330 = OpConvertFToS %int %329 - %332 = OpSLessThan %bool %330 %int_120 - OpSelectionMerge %333 None - OpBranchConditional %332 %334 %335 - %334 = OpLabel - %336 = OpAccessChain %_ptr_Private_int %data %int_3 - %337 = OpLoad %int %336 - %338 = OpConvertSToF %float %337 - %339 = OpFDiv %float %338 %float_10 - %340 = OpFAdd %float %float_0_5 %339 - OpStore %grey %340 - OpBranch %333 - %335 = OpLabel - %341 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %342 = OpLoad %float %341 - %343 = OpConvertFToS %int %342 - %345 = OpSLessThan %bool %343 %int_150 - OpSelectionMerge %346 None - OpBranchConditional %345 %347 %348 - %347 = OpLabel + %274 = OpLoad %int %j_1 + %275 = OpLoad %int %j_1 + %276 = OpAccessChain %_ptr_Private_int %data %275 + %277 = OpLoad %int %276 + %278 = OpAccessChain %_ptr_Private_int %temp %274 + OpStore %278 %277 + OpBranch %267 + %267 = OpLabel + %279 = OpLoad %int %j_1 + %280 = OpIAdd %int %279 %int_1 + OpStore %j_1 %280 + OpBranch %265 + %266 = OpLabel + %281 = OpFunctionCall %void %mergeSort_ + %284 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %285 = OpLoad %float %284 + %286 = OpConvertFToS %int %285 + %288 = OpSLessThan %bool %286 %int_30 + OpSelectionMerge %289 None + OpBranchConditional %288 %290 %291 + %290 = OpLabel + %292 = OpAccessChain %_ptr_Private_int %data %int_0 + %293 = OpLoad %int %292 + %295 = OpConvertSToF %float %293 + %297 = OpFDiv %float %295 %float_10 + %298 = OpFAdd %float %float_0_5 %297 + OpStore %grey %298 + OpBranch %289 + %291 = OpLabel + %299 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %300 = OpLoad %float %299 + %301 = OpConvertFToS %int %300 + %303 = OpSLessThan %bool %301 %int_60 + OpSelectionMerge %304 None + OpBranchConditional %303 %305 %306 + %305 = OpLabel + %307 = OpAccessChain %_ptr_Private_int %data %int_1 + %308 = OpLoad %int %307 + %309 = OpConvertSToF %float %308 + %310 = OpFDiv %float %309 %float_10 + %311 = OpFAdd %float %float_0_5 %310 + OpStore %grey %311 + OpBranch %304 + %306 = OpLabel + %312 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %313 = OpLoad %float %312 + %314 = OpConvertFToS %int %313 + %316 = OpSLessThan %bool %314 %int_90 + OpSelectionMerge %317 None + OpBranchConditional %316 %318 %319 + %318 = OpLabel + %320 = OpAccessChain %_ptr_Private_int %data %int_2 + %321 = OpLoad %int %320 + %322 = OpConvertSToF %float %321 + %323 = OpFDiv %float %322 %float_10 + %324 = OpFAdd %float %float_0_5 %323 + OpStore %grey %324 + OpBranch %317 + %319 = OpLabel + %325 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %326 = OpLoad %float %325 + %327 = OpConvertFToS %int %326 + %329 = OpSLessThan %bool %327 %int_120 + OpSelectionMerge %330 None + OpBranchConditional %329 %331 %332 + %331 = OpLabel + %333 = OpAccessChain %_ptr_Private_int %data %int_3 + %334 = OpLoad %int %333 + %335 = OpConvertSToF %float %334 + %336 = OpFDiv %float %335 %float_10 + %337 = OpFAdd %float %float_0_5 %336 + OpStore %grey %337 + OpBranch %330 + %332 = OpLabel + %338 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %339 = OpLoad %float %338 + %340 = OpConvertFToS %int %339 + %342 = OpSLessThan %bool %340 %int_150 + OpSelectionMerge %343 None + OpBranchConditional %342 %344 %345 + %344 = OpLabel OpKill - %348 = OpLabel - %349 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %350 = OpLoad %float %349 - %351 = OpConvertFToS %int %350 - %353 = OpSLessThan %bool %351 %int_180 - OpSelectionMerge %354 None - OpBranchConditional %353 %355 %356 - %355 = OpLabel - %358 = OpAccessChain %_ptr_Private_int %data %int_5 - %359 = OpLoad %int %358 - %360 = OpConvertSToF %float %359 - %361 = OpFDiv %float %360 %float_10 - %362 = OpFAdd %float %float_0_5 %361 - OpStore %grey %362 - OpBranch %354 - %356 = OpLabel - %363 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %364 = OpLoad %float %363 - %365 = OpConvertFToS %int %364 - %367 = OpSLessThan %bool %365 %int_210 - OpSelectionMerge %368 None - OpBranchConditional %367 %369 %370 - %369 = OpLabel - %372 = OpAccessChain %_ptr_Private_int %data %int_6 - %373 = OpLoad %int %372 - %374 = OpConvertSToF %float %373 - %375 = OpFDiv %float %374 %float_10 - %376 = OpFAdd %float %float_0_5 %375 - OpStore %grey %376 - OpBranch %368 - %370 = OpLabel - %377 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %378 = OpLoad %float %377 - %379 = OpConvertFToS %int %378 - %381 = OpSLessThan %bool %379 %int_240 - OpSelectionMerge %382 None - OpBranchConditional %381 %383 %384 - %383 = OpLabel - %386 = OpAccessChain %_ptr_Private_int %data %int_7 - %387 = OpLoad %int %386 - %388 = OpConvertSToF %float %387 - %389 = OpFDiv %float %388 %float_10 - %390 = OpFAdd %float %float_0_5 %389 - OpStore %grey %390 - OpBranch %382 - %384 = OpLabel - %391 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %392 = OpLoad %float %391 - %393 = OpConvertFToS %int %392 - %395 = OpSLessThan %bool %393 %int_270 - OpSelectionMerge %396 None - OpBranchConditional %395 %397 %398 - %397 = OpLabel - %400 = OpAccessChain %_ptr_Private_int %data %int_8 - %401 = OpLoad %int %400 - %402 = OpConvertSToF %float %401 - %403 = OpFDiv %float %402 %float_10 - %404 = OpFAdd %float %float_0_5 %403 - OpStore %grey %404 - OpBranch %396 - %398 = OpLabel + %345 = OpLabel + %346 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %347 = OpLoad %float %346 + %348 = OpConvertFToS %int %347 + %350 = OpSLessThan %bool %348 %int_180 + OpSelectionMerge %351 None + OpBranchConditional %350 %352 %353 + %352 = OpLabel + %355 = OpAccessChain %_ptr_Private_int %data %int_5 + %356 = OpLoad %int %355 + %357 = OpConvertSToF %float %356 + %358 = OpFDiv %float %357 %float_10 + %359 = OpFAdd %float %float_0_5 %358 + OpStore %grey %359 + OpBranch %351 + %353 = OpLabel + %360 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %361 = OpLoad %float %360 + %362 = OpConvertFToS %int %361 + %364 = OpSLessThan %bool %362 %int_210 + OpSelectionMerge %365 None + OpBranchConditional %364 %366 %367 + %366 = OpLabel + %369 = OpAccessChain %_ptr_Private_int %data %int_6 + %370 = OpLoad %int %369 + %371 = OpConvertSToF %float %370 + %372 = OpFDiv %float %371 %float_10 + %373 = OpFAdd %float %float_0_5 %372 + OpStore %grey %373 + OpBranch %365 + %367 = OpLabel + %374 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %375 = OpLoad %float %374 + %376 = OpConvertFToS %int %375 + %378 = OpSLessThan %bool %376 %int_240 + OpSelectionMerge %379 None + OpBranchConditional %378 %380 %381 + %380 = OpLabel + %383 = OpAccessChain %_ptr_Private_int %data %int_7 + %384 = OpLoad %int %383 + %385 = OpConvertSToF %float %384 + %386 = OpFDiv %float %385 %float_10 + %387 = OpFAdd %float %float_0_5 %386 + OpStore %grey %387 + OpBranch %379 + %381 = OpLabel + %388 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %389 = OpLoad %float %388 + %390 = OpConvertFToS %int %389 + %392 = OpSLessThan %bool %390 %int_270 + OpSelectionMerge %393 None + OpBranchConditional %392 %394 %395 + %394 = OpLabel + %397 = OpAccessChain %_ptr_Private_int %data %int_8 + %398 = OpLoad %int %397 + %399 = OpConvertSToF %float %398 + %400 = OpFDiv %float %399 %float_10 + %401 = OpFAdd %float %float_0_5 %400 + OpStore %grey %401 + OpBranch %393 + %395 = OpLabel OpKill - %396 = OpLabel - OpBranch %382 - %382 = OpLabel - OpBranch %368 - %368 = OpLabel - OpBranch %354 - %354 = OpLabel - OpBranch %346 - %346 = OpLabel - OpBranch %333 - %333 = OpLabel - OpBranch %320 - %320 = OpLabel - OpBranch %307 - %307 = OpLabel - OpBranch %292 - %292 = OpLabel - %405 = OpLoad %float %grey - %407 = OpCompositeConstruct %v3float %405 %405 %405 - %408 = OpCompositeExtract %float %407 0 - %409 = OpCompositeExtract %float %407 1 - %410 = OpCompositeExtract %float %407 2 - %411 = OpCompositeConstruct %v4float %408 %409 %410 %float_1 - OpStore %x_GLF_color %411 + %393 = OpLabel + OpBranch %379 + %379 = OpLabel + OpBranch %365 + %365 = OpLabel + OpBranch %351 + %351 = OpLabel + OpBranch %343 + %343 = OpLabel + OpBranch %330 + %330 = OpLabel + OpBranch %317 + %317 = OpLabel + OpBranch %304 + %304 = OpLabel + OpBranch %289 + %289 = OpLabel + %402 = OpLoad %float %grey + %404 = OpCompositeConstruct %v3float %402 %402 %402 + %405 = OpCompositeExtract %float %404 0 + %406 = OpCompositeExtract %float %404 1 + %407 = OpCompositeExtract %float %404 2 + %408 = OpCompositeConstruct %v4float %405 %406 %407 %float_1 + OpStore %x_GLF_color %408 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %412 +%tint_symbol_3 = OpFunction %void None %409 %tint_symbol_1 = OpFunctionParameter %main_out - %416 = OpLabel - %417 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %417 + %413 = OpLabel + %414 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %414 OpReturn OpFunctionEnd %main = OpFunction %void None %142 - %419 = OpLabel - %420 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %420 - %421 = OpFunctionCall %void %main_1 - %423 = OpLoad %v4float %x_GLF_color - %424 = OpCompositeConstruct %main_out %423 - %422 = OpFunctionCall %void %tint_symbol_3 %424 + %416 = OpLabel + %417 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %417 + %418 = OpFunctionCall %void %main_1 + %420 = OpLoad %v4float %x_GLF_color + %421 = OpCompositeConstruct %main_out %420 + %419 = OpFunctionCall %void %tint_symbol_3 %421 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 219[%219] is not post dominated by the back-edge block 265[%265] - %265 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.spvasm.expected.spvasm index bde11c85cf..77bd5f4659 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 548 +; Bound: 545 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -129,9 +127,9 @@ SKIP: FAILED %float_1 = OpConstant %float 1 %528 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 %float_0 = OpConstant %float 0 - %534 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 + %531 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 %main_out = OpTypeStruct %v4float - %535 = OpTypeFunction %void %main_out + %532 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %22 %25 = OpLabel %pos = OpVariable %_ptr_Function_v2float Function %28 @@ -826,35 +824,25 @@ SKIP: FAILED OpBranch %87 %87 = OpLabel %529 = OpLoad %bool %canwalk - OpSelectionMerge %530 None - OpBranchConditional %529 %531 %532 - %531 = OpLabel - OpBranch %530 - %532 = OpLabel - OpBranch %86 - %530 = OpLabel - OpBranch %85 + OpBranchConditional %529 %85 %86 %86 = OpLabel - OpStore %x_GLF_color %534 + OpStore %x_GLF_color %531 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %535 +%tint_symbol_3 = OpFunction %void None %532 %tint_symbol_1 = OpFunctionParameter %main_out - %539 = OpLabel - %540 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %540 + %536 = OpLabel + %537 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %537 OpReturn OpFunctionEnd %main = OpFunction %void None %22 - %542 = OpLabel - %543 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %543 - %544 = OpFunctionCall %void %main_1 - %546 = OpLoad %v4float %x_GLF_color - %547 = OpCompositeConstruct %main_out %546 - %545 = OpFunctionCall %void %tint_symbol_3 %547 + %539 = OpLabel + %540 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %540 + %541 = OpFunctionCall %void %main_1 + %543 = OpLoad %v4float %x_GLF_color + %544 = OpCompositeConstruct %main_out %543 + %542 = OpFunctionCall %void %tint_symbol_3 %544 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 87[%87] is not post dominated by the back-edge block 530[%530] - %530 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.wgsl.expected.spvasm index bde11c85cf..77bd5f4659 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 548 +; Bound: 545 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -129,9 +127,9 @@ SKIP: FAILED %float_1 = OpConstant %float 1 %528 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 %float_0 = OpConstant %float 0 - %534 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 + %531 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 %main_out = OpTypeStruct %v4float - %535 = OpTypeFunction %void %main_out + %532 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %22 %25 = OpLabel %pos = OpVariable %_ptr_Function_v2float Function %28 @@ -826,35 +824,25 @@ SKIP: FAILED OpBranch %87 %87 = OpLabel %529 = OpLoad %bool %canwalk - OpSelectionMerge %530 None - OpBranchConditional %529 %531 %532 - %531 = OpLabel - OpBranch %530 - %532 = OpLabel - OpBranch %86 - %530 = OpLabel - OpBranch %85 + OpBranchConditional %529 %85 %86 %86 = OpLabel - OpStore %x_GLF_color %534 + OpStore %x_GLF_color %531 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %535 +%tint_symbol_3 = OpFunction %void None %532 %tint_symbol_1 = OpFunctionParameter %main_out - %539 = OpLabel - %540 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %540 + %536 = OpLabel + %537 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %537 OpReturn OpFunctionEnd %main = OpFunction %void None %22 - %542 = OpLabel - %543 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %543 - %544 = OpFunctionCall %void %main_1 - %546 = OpLoad %v4float %x_GLF_color - %547 = OpCompositeConstruct %main_out %546 - %545 = OpFunctionCall %void %tint_symbol_3 %547 + %539 = OpLabel + %540 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %540 + %541 = OpFunctionCall %void %main_1 + %543 = OpLoad %v4float %x_GLF_color + %544 = OpCompositeConstruct %main_out %543 + %542 = OpFunctionCall %void %tint_symbol_3 %544 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 87[%87] is not post dominated by the back-edge block 530[%530] - %530 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.spvasm.expected.spvasm index 577b0fa261..25009f42ea 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 512 +; Bound: 509 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -118,9 +116,9 @@ SKIP: FAILED %float_1 = OpConstant %float 1 %492 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 %float_0 = OpConstant %float 0 - %498 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 + %495 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 %main_out = OpTypeStruct %v4float - %499 = OpTypeFunction %void %main_out + %496 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %22 %25 = OpLabel %pos = OpVariable %_ptr_Function_v2float Function %28 @@ -748,35 +746,25 @@ SKIP: FAILED OpBranch %87 %87 = OpLabel %493 = OpLoad %bool %canwalk - OpSelectionMerge %494 None - OpBranchConditional %493 %495 %496 - %495 = OpLabel - OpBranch %494 - %496 = OpLabel - OpBranch %86 - %494 = OpLabel - OpBranch %85 + OpBranchConditional %493 %85 %86 %86 = OpLabel - OpStore %x_GLF_color %498 + OpStore %x_GLF_color %495 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %499 +%tint_symbol_3 = OpFunction %void None %496 %tint_symbol_1 = OpFunctionParameter %main_out - %503 = OpLabel - %504 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %504 + %500 = OpLabel + %501 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %501 OpReturn OpFunctionEnd %main = OpFunction %void None %22 - %506 = OpLabel - %507 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %507 - %508 = OpFunctionCall %void %main_1 - %510 = OpLoad %v4float %x_GLF_color - %511 = OpCompositeConstruct %main_out %510 - %509 = OpFunctionCall %void %tint_symbol_3 %511 + %503 = OpLabel + %504 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %504 + %505 = OpFunctionCall %void %main_1 + %507 = OpLoad %v4float %x_GLF_color + %508 = OpCompositeConstruct %main_out %507 + %506 = OpFunctionCall %void %tint_symbol_3 %508 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 87[%87] is not post dominated by the back-edge block 494[%494] - %494 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.wgsl.expected.spvasm index 577b0fa261..25009f42ea 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 512 +; Bound: 509 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -118,9 +116,9 @@ SKIP: FAILED %float_1 = OpConstant %float 1 %492 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 %float_0 = OpConstant %float 0 - %498 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 + %495 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 %main_out = OpTypeStruct %v4float - %499 = OpTypeFunction %void %main_out + %496 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %22 %25 = OpLabel %pos = OpVariable %_ptr_Function_v2float Function %28 @@ -748,35 +746,25 @@ SKIP: FAILED OpBranch %87 %87 = OpLabel %493 = OpLoad %bool %canwalk - OpSelectionMerge %494 None - OpBranchConditional %493 %495 %496 - %495 = OpLabel - OpBranch %494 - %496 = OpLabel - OpBranch %86 - %494 = OpLabel - OpBranch %85 + OpBranchConditional %493 %85 %86 %86 = OpLabel - OpStore %x_GLF_color %498 + OpStore %x_GLF_color %495 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %499 +%tint_symbol_3 = OpFunction %void None %496 %tint_symbol_1 = OpFunctionParameter %main_out - %503 = OpLabel - %504 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %504 + %500 = OpLabel + %501 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %501 OpReturn OpFunctionEnd %main = OpFunction %void None %22 - %506 = OpLabel - %507 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %507 - %508 = OpFunctionCall %void %main_1 - %510 = OpLoad %v4float %x_GLF_color - %511 = OpCompositeConstruct %main_out %510 - %509 = OpFunctionCall %void %tint_symbol_3 %511 + %503 = OpLabel + %504 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %504 + %505 = OpFunctionCall %void %main_1 + %507 = OpLoad %v4float %x_GLF_color + %508 = OpCompositeConstruct %main_out %507 + %506 = OpFunctionCall %void %tint_symbol_3 %508 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 87[%87] is not post dominated by the back-edge block 494[%494] - %494 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.spvasm index 63a761de45..dc5e13f503 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.spvasm @@ -1,12 +1,10 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 424 +; Bound: 417 ; Schema: 0 OpCapability Shader - %169 = OpExtInstImport "GLSL.std.450" + %166 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2 OpExecutionMode %main OriginUpperLeft @@ -149,7 +147,7 @@ SKIP: FAILED %int_8 = OpConstant %int 8 %float_1 = OpConstant %float 1 %main_out = OpTypeStruct %v4float - %411 = OpTypeFunction %void %main_out + %404 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %15 %18 = OpLabel %temp = OpVariable %_ptr_Function__arr_int_uint_10 Function %25 @@ -313,434 +311,414 @@ SKIP: FAILED %44 = OpLabel OpStore %x_63_phi %113 %115 = OpSLessThan %bool %113 %int_10 - OpSelectionMerge %117 None - OpBranchConditional %115 %118 %119 - %118 = OpLabel - OpBranch %117 - %119 = OpLabel - OpBranch %43 - %117 = OpLabel - OpBranch %42 + OpBranchConditional %115 %42 %43 %43 = OpLabel OpStore %x_103_phi %int_0 + OpBranch %117 + %117 = OpLabel + OpLoopMerge %118 %119 None OpBranch %120 %120 = OpLabel - OpLoopMerge %121 %122 None - OpBranch %123 - %123 = OpLabel - %125 = OpLoad %int %x_103_phi - %126 = OpSLessThan %bool %125 %int_10 - OpSelectionMerge %127 None - OpBranchConditional %126 %128 %129 - %128 = OpLabel - OpBranch %127 - %129 = OpLabel - OpBranch %121 - %127 = OpLabel - OpBranch %122 - %122 = OpLabel - %130 = OpAccessChain %_ptr_Function_int %data %125 - %131 = OpLoad %int %130 - %132 = OpAccessChain %_ptr_Function_int %temp %125 - OpStore %132 %131 - %133 = OpIAdd %int %125 %int_1 - OpStore %x_104 %133 - %134 = OpLoad %int %x_104 - OpStore %x_103_phi %134 - OpBranch %120 - %121 = OpLabel + %122 = OpLoad %int %x_103_phi + %123 = OpSLessThan %bool %122 %int_10 + OpSelectionMerge %124 None + OpBranchConditional %123 %125 %126 + %125 = OpLabel + OpBranch %124 + %126 = OpLabel + OpBranch %118 + %124 = OpLabel + OpBranch %119 + %119 = OpLabel + %127 = OpAccessChain %_ptr_Function_int %data %122 + %128 = OpLoad %int %127 + %129 = OpAccessChain %_ptr_Function_int %temp %122 + OpStore %129 %128 + %130 = OpIAdd %int %122 %int_1 + OpStore %x_104 %130 + %131 = OpLoad %int %x_104 + OpStore %x_103_phi %131 + OpBranch %117 + %118 = OpLabel OpStore %x_112_phi %int_1 + OpBranch %132 + %132 = OpLabel + OpLoopMerge %133 %134 None OpBranch %135 %135 = OpLabel - OpLoopMerge %136 %137 None - OpBranch %138 - %138 = OpLabel - %141 = OpLoad %int %x_112_phi - %143 = OpSLessThanEqual %bool %141 %int_9 - OpSelectionMerge %144 None - OpBranchConditional %143 %145 %146 - %145 = OpLabel - OpBranch %144 - %146 = OpLabel - OpBranch %136 - %144 = OpLabel + %138 = OpLoad %int %x_112_phi + %140 = OpSLessThanEqual %bool %138 %int_9 + OpSelectionMerge %141 None + OpBranchConditional %140 %142 %143 + %142 = OpLabel + OpBranch %141 + %143 = OpLabel + OpBranch %133 + %141 = OpLabel OpStore %x_119_phi %int_0 + OpBranch %144 + %144 = OpLabel + OpLoopMerge %145 %146 None OpBranch %147 %147 = OpLabel - OpLoopMerge %148 %149 None - OpBranch %150 - %150 = OpLabel - %159 = OpLoad %int %x_119_phi - %160 = OpSLessThan %bool %159 %int_9 - OpSelectionMerge %161 None - OpBranchConditional %160 %162 %163 - %162 = OpLabel - OpBranch %161 - %163 = OpLabel - OpBranch %148 - %161 = OpLabel - %164 = OpIAdd %int %159 %141 - %165 = OpISub %int %164 %int_1 - %166 = OpIMul %int %int_2 %141 - %167 = OpIAdd %int %159 %166 - %170 = OpISub %int %167 %int_1 - %168 = OpExtInst %int %169 SMin %170 %int_9 - OpStore %x_131_phi %159 - OpStore %x_134_phi %164 - OpStore %x_136_phi %159 + %156 = OpLoad %int %x_119_phi + %157 = OpSLessThan %bool %156 %int_9 + OpSelectionMerge %158 None + OpBranchConditional %157 %159 %160 + %159 = OpLabel + OpBranch %158 + %160 = OpLabel + OpBranch %145 + %158 = OpLabel + %161 = OpIAdd %int %156 %138 + %162 = OpISub %int %161 %int_1 + %163 = OpIMul %int %int_2 %138 + %164 = OpIAdd %int %156 %163 + %167 = OpISub %int %164 %int_1 + %165 = OpExtInst %int %166 SMin %167 %int_9 + OpStore %x_131_phi %156 + OpStore %x_134_phi %161 + OpStore %x_136_phi %156 + OpBranch %168 + %168 = OpLabel + OpLoopMerge %169 %170 None OpBranch %171 %171 = OpLabel - OpLoopMerge %172 %173 None - OpBranch %174 - %174 = OpLabel - %179 = OpLoad %int %x_131_phi - OpStore %x_131 %179 - %180 = OpLoad %int %x_134_phi - %181 = OpLoad %int %x_136_phi - OpStore %x_136 %181 - %182 = OpLoad %int %x_136 - %183 = OpSLessThanEqual %bool %182 %165 - OpSelectionMerge %184 None - OpBranchConditional %183 %185 %184 - %185 = OpLabel - %186 = OpSLessThanEqual %bool %180 %168 - OpBranch %184 + %176 = OpLoad %int %x_131_phi + OpStore %x_131 %176 + %177 = OpLoad %int %x_134_phi + %178 = OpLoad %int %x_136_phi + OpStore %x_136 %178 + %179 = OpLoad %int %x_136 + %180 = OpSLessThanEqual %bool %179 %162 + %181 = OpSLessThanEqual %bool %177 %165 + %182 = OpLogicalAnd %bool %180 %181 + OpSelectionMerge %183 None + OpBranchConditional %182 %184 %185 %184 = OpLabel - %187 = OpPhi %bool %183 %174 %186 %185 - OpSelectionMerge %188 None - OpBranchConditional %187 %189 %190 - %189 = OpLabel - OpBranch %188 - %190 = OpLabel - OpBranch %172 - %188 = OpLabel - %191 = OpLoad %int %x_136 - %192 = OpAccessChain %_ptr_Function_int %data %191 - %193 = OpLoad %int %192 - %194 = OpAccessChain %_ptr_Function_int %data %180 - %195 = OpLoad %int %194 - %197 = OpLoad %int %x_131 - %198 = OpCopyObject %int %int_1 - %199 = OpIAdd %int %197 %198 - %196 = OpCopyObject %int %199 - %200 = OpSLessThan %bool %193 %195 - OpSelectionMerge %201 None - OpBranchConditional %200 %202 %203 - %202 = OpLabel - %205 = OpLoad %int %x_136 - %206 = OpCopyObject %int %int_1 - %207 = OpIAdd %int %205 %206 - %204 = OpCopyObject %int %207 - OpStore %x_151 %204 - %208 = OpAccessChain %_ptr_Function_int %data %191 - %209 = OpLoad %int %208 - %210 = OpLoad %int %x_131 - %211 = OpAccessChain %_ptr_Function_int %temp %210 - OpStore %211 %209 - OpStore %x_135_phi %180 - %212 = OpLoad %int %x_151 - OpStore %x_137_phi %212 - OpBranch %201 - %203 = OpLabel - %213 = OpIAdd %int %180 %int_1 - OpStore %x_154 %213 - %214 = OpAccessChain %_ptr_Function_int %data %180 - %215 = OpLoad %int %214 - %216 = OpLoad %int %x_131 - %217 = OpAccessChain %_ptr_Function_int %temp %216 - OpStore %217 %215 - %218 = OpLoad %int %x_154 - OpStore %x_135_phi %218 - %219 = OpLoad %int %x_136 - OpStore %x_137_phi %219 - OpBranch %201 - %201 = OpLabel - %220 = OpLoad %int %x_135_phi - %221 = OpLoad %int %x_137_phi - OpBranch %173 - %173 = OpLabel - OpStore %x_131_phi %196 - OpStore %x_134_phi %220 - OpStore %x_136_phi %221 - OpBranch %171 - %172 = OpLabel - %222 = OpLoad %int %x_131 - OpStore %x_158_phi %222 - %223 = OpLoad %int %x_136 - OpStore %x_161_phi %223 - OpBranch %224 - %224 = OpLabel - OpLoopMerge %225 %226 None - OpBranch %227 - %227 = OpLabel - %230 = OpLoad %int %x_158_phi - %231 = OpLoad %int %x_161_phi - %232 = OpSLessThan %bool %231 %int_10 - OpSelectionMerge %233 None - OpBranchConditional %232 %234 %233 - %234 = OpLabel - %235 = OpSLessThanEqual %bool %231 %165 - OpBranch %233 - %233 = OpLabel - %236 = OpPhi %bool %232 %227 %235 %234 - OpSelectionMerge %237 None - OpBranchConditional %236 %238 %239 - %238 = OpLabel - OpBranch %237 - %239 = OpLabel - OpBranch %225 - %237 = OpLabel - OpBranch %226 - %226 = OpLabel - %240 = OpIAdd %int %230 %int_1 - OpStore %x_159 %240 - %241 = OpIAdd %int %231 %int_1 - OpStore %x_162 %241 - %242 = OpAccessChain %_ptr_Function_int %data %231 - %243 = OpLoad %int %242 - %244 = OpAccessChain %_ptr_Function_int %temp %230 - OpStore %244 %243 - %245 = OpLoad %int %x_159 - OpStore %x_158_phi %245 - %246 = OpLoad %int %x_162 - OpStore %x_161_phi %246 - OpBranch %224 - %225 = OpLabel - OpStore %x_171_phi %159 - OpBranch %247 - %247 = OpLabel - OpLoopMerge %248 %249 None - OpBranch %250 - %250 = OpLabel - %252 = OpLoad %int %x_171_phi - %253 = OpSLessThanEqual %bool %252 %168 - OpSelectionMerge %254 None - OpBranchConditional %253 %255 %256 - %255 = OpLabel - OpBranch %254 - %256 = OpLabel - OpBranch %248 - %254 = OpLabel - OpBranch %249 - %249 = OpLabel - %257 = OpAccessChain %_ptr_Function_int %temp %252 - %258 = OpLoad %int %257 - %259 = OpAccessChain %_ptr_Function_int %data %252 - OpStore %259 %258 - %260 = OpIAdd %int %252 %int_1 - OpStore %x_172 %260 - %261 = OpLoad %int %x_172 - OpStore %x_171_phi %261 - OpBranch %247 + OpBranch %183 + %185 = OpLabel + OpBranch %169 + %183 = OpLabel + %186 = OpLoad %int %x_136 + %187 = OpAccessChain %_ptr_Function_int %data %186 + %188 = OpLoad %int %187 + %189 = OpAccessChain %_ptr_Function_int %data %177 + %190 = OpLoad %int %189 + %192 = OpLoad %int %x_131 + %193 = OpCopyObject %int %int_1 + %194 = OpIAdd %int %192 %193 + %191 = OpCopyObject %int %194 + %195 = OpSLessThan %bool %188 %190 + OpSelectionMerge %196 None + OpBranchConditional %195 %197 %198 + %197 = OpLabel + %200 = OpLoad %int %x_136 + %201 = OpCopyObject %int %int_1 + %202 = OpIAdd %int %200 %201 + %199 = OpCopyObject %int %202 + OpStore %x_151 %199 + %203 = OpAccessChain %_ptr_Function_int %data %186 + %204 = OpLoad %int %203 + %205 = OpLoad %int %x_131 + %206 = OpAccessChain %_ptr_Function_int %temp %205 + OpStore %206 %204 + OpStore %x_135_phi %177 + %207 = OpLoad %int %x_151 + OpStore %x_137_phi %207 + OpBranch %196 + %198 = OpLabel + %208 = OpIAdd %int %177 %int_1 + OpStore %x_154 %208 + %209 = OpAccessChain %_ptr_Function_int %data %177 + %210 = OpLoad %int %209 + %211 = OpLoad %int %x_131 + %212 = OpAccessChain %_ptr_Function_int %temp %211 + OpStore %212 %210 + %213 = OpLoad %int %x_154 + OpStore %x_135_phi %213 + %214 = OpLoad %int %x_136 + OpStore %x_137_phi %214 + OpBranch %196 + %196 = OpLabel + %215 = OpLoad %int %x_135_phi + %216 = OpLoad %int %x_137_phi + OpBranch %170 + %170 = OpLabel + OpStore %x_131_phi %191 + OpStore %x_134_phi %215 + OpStore %x_136_phi %216 + OpBranch %168 + %169 = OpLabel + %217 = OpLoad %int %x_131 + OpStore %x_158_phi %217 + %218 = OpLoad %int %x_136 + OpStore %x_161_phi %218 + OpBranch %219 + %219 = OpLabel + OpLoopMerge %220 %221 None + OpBranch %222 + %222 = OpLabel + %225 = OpLoad %int %x_158_phi + %226 = OpLoad %int %x_161_phi + %227 = OpSLessThan %bool %226 %int_10 + %228 = OpSLessThanEqual %bool %226 %162 + %229 = OpLogicalAnd %bool %227 %228 + OpSelectionMerge %230 None + OpBranchConditional %229 %231 %232 + %231 = OpLabel + OpBranch %230 + %232 = OpLabel + OpBranch %220 + %230 = OpLabel + OpBranch %221 + %221 = OpLabel + %233 = OpIAdd %int %225 %int_1 + OpStore %x_159 %233 + %234 = OpIAdd %int %226 %int_1 + OpStore %x_162 %234 + %235 = OpAccessChain %_ptr_Function_int %data %226 + %236 = OpLoad %int %235 + %237 = OpAccessChain %_ptr_Function_int %temp %225 + OpStore %237 %236 + %238 = OpLoad %int %x_159 + OpStore %x_158_phi %238 + %239 = OpLoad %int %x_162 + OpStore %x_161_phi %239 + OpBranch %219 + %220 = OpLabel + OpStore %x_171_phi %156 + OpBranch %240 + %240 = OpLabel + OpLoopMerge %241 %242 None + OpBranch %243 + %243 = OpLabel + %245 = OpLoad %int %x_171_phi + %246 = OpSLessThanEqual %bool %245 %165 + OpSelectionMerge %247 None + OpBranchConditional %246 %248 %249 %248 = OpLabel - OpBranch %149 - %149 = OpLabel - OpStore %x_119_phi %167 - OpBranch %147 - %148 = OpLabel - OpBranch %137 - %137 = OpLabel - %262 = OpIMul %int %int_2 %141 - OpStore %x_113 %262 - %263 = OpLoad %int %x_113 - OpStore %x_112_phi %263 - OpBranch %135 - %136 = OpLabel - %270 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %271 = OpLoad %float %270 - %272 = OpConvertFToS %int %271 - OpStore %x_181 %272 - %273 = OpLoad %int %x_181 - %275 = OpSLessThan %bool %273 %int_30 - OpSelectionMerge %276 None - OpBranchConditional %275 %277 %278 - %277 = OpLabel - %279 = OpAccessChain %_ptr_Function_int %data %int_0 - %280 = OpLoad %int %279 - %282 = OpConvertSToF %float %280 - %284 = OpFMul %float %282 %float_0_100000001 - %285 = OpFAdd %float %float_0_5 %284 - OpStore %x_190 %285 - %286 = OpLoad %float %x_190 - OpStore %x_263_phi %286 - OpBranch %276 - %278 = OpLabel - %290 = OpLoad %int %x_181 - %292 = OpSLessThan %bool %290 %int_60 - OpSelectionMerge %293 None - OpBranchConditional %292 %294 %295 - %294 = OpLabel - %296 = OpAccessChain %_ptr_Function_int %data %int_1 - %297 = OpLoad %int %296 - %298 = OpConvertSToF %float %297 - %299 = OpFMul %float %298 %float_0_100000001 - %300 = OpFAdd %float %float_0_5 %299 - OpStore %x_199 %300 - %301 = OpLoad %float %x_199 - OpStore %x_262_phi %301 - OpBranch %293 - %295 = OpLabel - %305 = OpLoad %int %x_181 - %307 = OpSLessThan %bool %305 %int_90 - OpSelectionMerge %308 None - OpBranchConditional %307 %309 %310 - %309 = OpLabel - %311 = OpAccessChain %_ptr_Function_int %data %int_2 - %312 = OpLoad %int %311 - %313 = OpConvertSToF %float %312 - %314 = OpFMul %float %313 %float_0_100000001 - %315 = OpFAdd %float %float_0_5 %314 - OpStore %x_208 %315 - %316 = OpLoad %float %x_208 - OpStore %x_261_phi %316 - OpBranch %308 - %310 = OpLabel - %317 = OpLoad %int %x_181 - %319 = OpSLessThan %bool %317 %int_120 - OpSelectionMerge %320 None - OpBranchConditional %319 %321 %322 - %321 = OpLabel - %323 = OpAccessChain %_ptr_Function_int %data %int_3 - %324 = OpLoad %int %323 - %325 = OpConvertSToF %float %324 - %326 = OpFMul %float %325 %float_0_100000001 - %327 = OpFAdd %float %float_0_5 %326 - OpStore %x_217 %327 - %328 = OpLoad %float %x_217 - OpStore %x_260_phi %328 - OpBranch %320 - %322 = OpLabel - %332 = OpLoad %int %x_181 - %334 = OpSLessThan %bool %332 %int_150 - OpSelectionMerge %335 None - OpBranchConditional %334 %336 %337 - %336 = OpLabel + OpBranch %247 + %249 = OpLabel + OpBranch %241 + %247 = OpLabel + OpBranch %242 + %242 = OpLabel + %250 = OpAccessChain %_ptr_Function_int %temp %245 + %251 = OpLoad %int %250 + %252 = OpAccessChain %_ptr_Function_int %data %245 + OpStore %252 %251 + %253 = OpIAdd %int %245 %int_1 + OpStore %x_172 %253 + %254 = OpLoad %int %x_172 + OpStore %x_171_phi %254 + OpBranch %240 + %241 = OpLabel + OpBranch %146 + %146 = OpLabel + OpStore %x_119_phi %164 + OpBranch %144 + %145 = OpLabel + OpBranch %134 + %134 = OpLabel + %255 = OpIMul %int %int_2 %138 + OpStore %x_113 %255 + %256 = OpLoad %int %x_113 + OpStore %x_112_phi %256 + OpBranch %132 + %133 = OpLabel + %263 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %264 = OpLoad %float %263 + %265 = OpConvertFToS %int %264 + OpStore %x_181 %265 + %266 = OpLoad %int %x_181 + %268 = OpSLessThan %bool %266 %int_30 + OpSelectionMerge %269 None + OpBranchConditional %268 %270 %271 + %270 = OpLabel + %272 = OpAccessChain %_ptr_Function_int %data %int_0 + %273 = OpLoad %int %272 + %275 = OpConvertSToF %float %273 + %277 = OpFMul %float %275 %float_0_100000001 + %278 = OpFAdd %float %float_0_5 %277 + OpStore %x_190 %278 + %279 = OpLoad %float %x_190 + OpStore %x_263_phi %279 + OpBranch %269 + %271 = OpLabel + %283 = OpLoad %int %x_181 + %285 = OpSLessThan %bool %283 %int_60 + OpSelectionMerge %286 None + OpBranchConditional %285 %287 %288 + %287 = OpLabel + %289 = OpAccessChain %_ptr_Function_int %data %int_1 + %290 = OpLoad %int %289 + %291 = OpConvertSToF %float %290 + %292 = OpFMul %float %291 %float_0_100000001 + %293 = OpFAdd %float %float_0_5 %292 + OpStore %x_199 %293 + %294 = OpLoad %float %x_199 + OpStore %x_262_phi %294 + OpBranch %286 + %288 = OpLabel + %298 = OpLoad %int %x_181 + %300 = OpSLessThan %bool %298 %int_90 + OpSelectionMerge %301 None + OpBranchConditional %300 %302 %303 + %302 = OpLabel + %304 = OpAccessChain %_ptr_Function_int %data %int_2 + %305 = OpLoad %int %304 + %306 = OpConvertSToF %float %305 + %307 = OpFMul %float %306 %float_0_100000001 + %308 = OpFAdd %float %float_0_5 %307 + OpStore %x_208 %308 + %309 = OpLoad %float %x_208 + OpStore %x_261_phi %309 + OpBranch %301 + %303 = OpLabel + %310 = OpLoad %int %x_181 + %312 = OpSLessThan %bool %310 %int_120 + OpSelectionMerge %313 None + OpBranchConditional %312 %314 %315 + %314 = OpLabel + %316 = OpAccessChain %_ptr_Function_int %data %int_3 + %317 = OpLoad %int %316 + %318 = OpConvertSToF %float %317 + %319 = OpFMul %float %318 %float_0_100000001 + %320 = OpFAdd %float %float_0_5 %319 + OpStore %x_217 %320 + %321 = OpLoad %float %x_217 + OpStore %x_260_phi %321 + OpBranch %313 + %315 = OpLabel + %325 = OpLoad %int %x_181 + %327 = OpSLessThan %bool %325 %int_150 + OpSelectionMerge %328 None + OpBranchConditional %327 %329 %330 + %329 = OpLabel OpKill + %330 = OpLabel + %334 = OpLoad %int %x_181 + %336 = OpSLessThan %bool %334 %int_180 + OpSelectionMerge %337 None + OpBranchConditional %336 %338 %339 + %338 = OpLabel + %341 = OpAccessChain %_ptr_Function_int %data %int_5 + %342 = OpLoad %int %341 + %343 = OpConvertSToF %float %342 + %344 = OpFMul %float %343 %float_0_100000001 + %345 = OpFAdd %float %float_0_5 %344 + OpStore %x_230 %345 + %346 = OpLoad %float %x_230 + OpStore %x_259_phi %346 + OpBranch %337 + %339 = OpLabel + %350 = OpLoad %int %x_181 + %352 = OpSLessThan %bool %350 %int_210 + OpSelectionMerge %353 None + OpBranchConditional %352 %354 %355 + %354 = OpLabel + %357 = OpAccessChain %_ptr_Function_int %data %int_6 + %358 = OpLoad %int %357 + %359 = OpConvertSToF %float %358 + %360 = OpFMul %float %359 %float_0_100000001 + %361 = OpFAdd %float %float_0_5 %360 + OpStore %x_239 %361 + %362 = OpLoad %float %x_239 + OpStore %x_258_phi %362 + OpBranch %353 + %355 = OpLabel + %363 = OpLoad %int %x_181 + %365 = OpSLessThan %bool %363 %int_240 + OpSelectionMerge %366 None + OpBranchConditional %365 %367 %368 + %367 = OpLabel + %370 = OpAccessChain %_ptr_Function_int %data %int_7 + %371 = OpLoad %int %370 + %372 = OpConvertSToF %float %371 + %373 = OpFMul %float %372 %float_0_100000001 + %374 = OpFAdd %float %float_0_5 %373 + OpStore %x_248 %374 + %375 = OpLoad %float %x_248 + OpStore %x_257_phi %375 + OpBranch %366 + %368 = OpLabel + %376 = OpLoad %int %x_181 + %378 = OpSLessThan %bool %376 %int_270 + OpSelectionMerge %379 None + OpBranchConditional %378 %380 %381 + %380 = OpLabel + OpBranch %379 + %381 = OpLabel + OpKill + %379 = OpLabel + %383 = OpAccessChain %_ptr_Function_int %data %int_8 + %384 = OpLoad %int %383 + %385 = OpConvertSToF %float %384 + %386 = OpFMul %float %385 %float_0_100000001 + %387 = OpFAdd %float %float_0_5 %386 + OpStore %x_256 %387 + %388 = OpLoad %float %x_256 + OpStore %x_257_phi %388 + OpBranch %366 + %366 = OpLabel + %389 = OpLoad %float %x_257_phi + OpStore %x_257 %389 + %390 = OpLoad %float %x_257 + OpStore %x_258_phi %390 + OpBranch %353 + %353 = OpLabel + %391 = OpLoad %float %x_258_phi + OpStore %x_258 %391 + %392 = OpLoad %float %x_258 + OpStore %x_259_phi %392 + OpBranch %337 %337 = OpLabel - %341 = OpLoad %int %x_181 - %343 = OpSLessThan %bool %341 %int_180 - OpSelectionMerge %344 None - OpBranchConditional %343 %345 %346 - %345 = OpLabel - %348 = OpAccessChain %_ptr_Function_int %data %int_5 - %349 = OpLoad %int %348 - %350 = OpConvertSToF %float %349 - %351 = OpFMul %float %350 %float_0_100000001 - %352 = OpFAdd %float %float_0_5 %351 - OpStore %x_230 %352 - %353 = OpLoad %float %x_230 - OpStore %x_259_phi %353 - OpBranch %344 - %346 = OpLabel - %357 = OpLoad %int %x_181 - %359 = OpSLessThan %bool %357 %int_210 - OpSelectionMerge %360 None - OpBranchConditional %359 %361 %362 - %361 = OpLabel - %364 = OpAccessChain %_ptr_Function_int %data %int_6 - %365 = OpLoad %int %364 - %366 = OpConvertSToF %float %365 - %367 = OpFMul %float %366 %float_0_100000001 - %368 = OpFAdd %float %float_0_5 %367 - OpStore %x_239 %368 - %369 = OpLoad %float %x_239 - OpStore %x_258_phi %369 - OpBranch %360 - %362 = OpLabel - %370 = OpLoad %int %x_181 - %372 = OpSLessThan %bool %370 %int_240 - OpSelectionMerge %373 None - OpBranchConditional %372 %374 %375 - %374 = OpLabel - %377 = OpAccessChain %_ptr_Function_int %data %int_7 - %378 = OpLoad %int %377 - %379 = OpConvertSToF %float %378 - %380 = OpFMul %float %379 %float_0_100000001 - %381 = OpFAdd %float %float_0_5 %380 - OpStore %x_248 %381 - %382 = OpLoad %float %x_248 - OpStore %x_257_phi %382 - OpBranch %373 - %375 = OpLabel - %383 = OpLoad %int %x_181 - %385 = OpSLessThan %bool %383 %int_270 - OpSelectionMerge %386 None - OpBranchConditional %385 %387 %388 - %387 = OpLabel - OpBranch %386 - %388 = OpLabel - OpKill - %386 = OpLabel - %390 = OpAccessChain %_ptr_Function_int %data %int_8 - %391 = OpLoad %int %390 - %392 = OpConvertSToF %float %391 - %393 = OpFMul %float %392 %float_0_100000001 - %394 = OpFAdd %float %float_0_5 %393 - OpStore %x_256 %394 - %395 = OpLoad %float %x_256 - OpStore %x_257_phi %395 - OpBranch %373 - %373 = OpLabel - %396 = OpLoad %float %x_257_phi - OpStore %x_257 %396 - %397 = OpLoad %float %x_257 - OpStore %x_258_phi %397 - OpBranch %360 - %360 = OpLabel - %398 = OpLoad %float %x_258_phi - OpStore %x_258 %398 - %399 = OpLoad %float %x_258 - OpStore %x_259_phi %399 - OpBranch %344 - %344 = OpLabel - %400 = OpLoad %float %x_259_phi - OpStore %x_259 %400 - OpBranch %335 - %335 = OpLabel - %401 = OpLoad %float %x_259 - OpStore %x_260_phi %401 - OpBranch %320 - %320 = OpLabel - %402 = OpLoad %float %x_260_phi - OpStore %x_260 %402 - %403 = OpLoad %float %x_260 - OpStore %x_261_phi %403 - OpBranch %308 - %308 = OpLabel - %404 = OpLoad %float %x_261_phi - OpStore %x_261 %404 - %405 = OpLoad %float %x_261 - OpStore %x_262_phi %405 - OpBranch %293 - %293 = OpLabel - %406 = OpLoad %float %x_262_phi - OpStore %x_262 %406 - %407 = OpLoad %float %x_262 - OpStore %x_263_phi %407 - OpBranch %276 - %276 = OpLabel - %408 = OpLoad %float %x_263_phi - %410 = OpCompositeConstruct %v4float %408 %408 %408 %float_1 - OpStore %x_GLF_color %410 + %393 = OpLoad %float %x_259_phi + OpStore %x_259 %393 + OpBranch %328 + %328 = OpLabel + %394 = OpLoad %float %x_259 + OpStore %x_260_phi %394 + OpBranch %313 + %313 = OpLabel + %395 = OpLoad %float %x_260_phi + OpStore %x_260 %395 + %396 = OpLoad %float %x_260 + OpStore %x_261_phi %396 + OpBranch %301 + %301 = OpLabel + %397 = OpLoad %float %x_261_phi + OpStore %x_261 %397 + %398 = OpLoad %float %x_261 + OpStore %x_262_phi %398 + OpBranch %286 + %286 = OpLabel + %399 = OpLoad %float %x_262_phi + OpStore %x_262 %399 + %400 = OpLoad %float %x_262 + OpStore %x_263_phi %400 + OpBranch %269 + %269 = OpLabel + %401 = OpLoad %float %x_263_phi + %403 = OpCompositeConstruct %v4float %401 %401 %401 %float_1 + OpStore %x_GLF_color %403 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %411 +%tint_symbol_3 = OpFunction %void None %404 %tint_symbol_1 = OpFunctionParameter %main_out - %415 = OpLabel - %416 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %416 + %408 = OpLabel + %409 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %409 OpReturn OpFunctionEnd %main = OpFunction %void None %15 - %418 = OpLabel - %419 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %419 - %420 = OpFunctionCall %void %main_1 - %422 = OpLoad %v4float %x_GLF_color - %423 = OpCompositeConstruct %main_out %422 - %421 = OpFunctionCall %void %tint_symbol_3 %423 + %411 = OpLabel + %412 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %412 + %413 = OpFunctionCall %void %main_1 + %415 = OpLoad %v4float %x_GLF_color + %416 = OpCompositeConstruct %main_out %415 + %414 = OpFunctionCall %void %tint_symbol_3 %416 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 44[%44] is not post dominated by the back-edge block 117[%117] - %117 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.wgsl.expected.spvasm index 63a761de45..62be4a896a 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.wgsl.expected.spvasm @@ -1,12 +1,10 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 424 +; Bound: 421 ; Schema: 0 OpCapability Shader - %169 = OpExtInstImport "GLSL.std.450" + %166 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2 OpExecutionMode %main OriginUpperLeft @@ -149,7 +147,7 @@ SKIP: FAILED %int_8 = OpConstant %int 8 %float_1 = OpConstant %float 1 %main_out = OpTypeStruct %v4float - %411 = OpTypeFunction %void %main_out + %408 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %15 %18 = OpLabel %temp = OpVariable %_ptr_Function__arr_int_uint_10 Function %25 @@ -313,434 +311,424 @@ SKIP: FAILED %44 = OpLabel OpStore %x_63_phi %113 %115 = OpSLessThan %bool %113 %int_10 - OpSelectionMerge %117 None - OpBranchConditional %115 %118 %119 - %118 = OpLabel - OpBranch %117 - %119 = OpLabel - OpBranch %43 - %117 = OpLabel - OpBranch %42 + OpBranchConditional %115 %42 %43 %43 = OpLabel OpStore %x_103_phi %int_0 + OpBranch %117 + %117 = OpLabel + OpLoopMerge %118 %119 None OpBranch %120 %120 = OpLabel - OpLoopMerge %121 %122 None - OpBranch %123 - %123 = OpLabel - %125 = OpLoad %int %x_103_phi - %126 = OpSLessThan %bool %125 %int_10 - OpSelectionMerge %127 None - OpBranchConditional %126 %128 %129 - %128 = OpLabel - OpBranch %127 - %129 = OpLabel - OpBranch %121 - %127 = OpLabel - OpBranch %122 - %122 = OpLabel - %130 = OpAccessChain %_ptr_Function_int %data %125 - %131 = OpLoad %int %130 - %132 = OpAccessChain %_ptr_Function_int %temp %125 - OpStore %132 %131 - %133 = OpIAdd %int %125 %int_1 - OpStore %x_104 %133 - %134 = OpLoad %int %x_104 - OpStore %x_103_phi %134 - OpBranch %120 - %121 = OpLabel + %122 = OpLoad %int %x_103_phi + %123 = OpSLessThan %bool %122 %int_10 + OpSelectionMerge %124 None + OpBranchConditional %123 %125 %126 + %125 = OpLabel + OpBranch %124 + %126 = OpLabel + OpBranch %118 + %124 = OpLabel + OpBranch %119 + %119 = OpLabel + %127 = OpAccessChain %_ptr_Function_int %data %122 + %128 = OpLoad %int %127 + %129 = OpAccessChain %_ptr_Function_int %temp %122 + OpStore %129 %128 + %130 = OpIAdd %int %122 %int_1 + OpStore %x_104 %130 + %131 = OpLoad %int %x_104 + OpStore %x_103_phi %131 + OpBranch %117 + %118 = OpLabel OpStore %x_112_phi %int_1 + OpBranch %132 + %132 = OpLabel + OpLoopMerge %133 %134 None OpBranch %135 %135 = OpLabel - OpLoopMerge %136 %137 None - OpBranch %138 - %138 = OpLabel - %141 = OpLoad %int %x_112_phi - %143 = OpSLessThanEqual %bool %141 %int_9 - OpSelectionMerge %144 None - OpBranchConditional %143 %145 %146 - %145 = OpLabel - OpBranch %144 - %146 = OpLabel - OpBranch %136 - %144 = OpLabel + %138 = OpLoad %int %x_112_phi + %140 = OpSLessThanEqual %bool %138 %int_9 + OpSelectionMerge %141 None + OpBranchConditional %140 %142 %143 + %142 = OpLabel + OpBranch %141 + %143 = OpLabel + OpBranch %133 + %141 = OpLabel OpStore %x_119_phi %int_0 + OpBranch %144 + %144 = OpLabel + OpLoopMerge %145 %146 None OpBranch %147 %147 = OpLabel - OpLoopMerge %148 %149 None - OpBranch %150 - %150 = OpLabel - %159 = OpLoad %int %x_119_phi - %160 = OpSLessThan %bool %159 %int_9 - OpSelectionMerge %161 None - OpBranchConditional %160 %162 %163 - %162 = OpLabel - OpBranch %161 - %163 = OpLabel - OpBranch %148 - %161 = OpLabel - %164 = OpIAdd %int %159 %141 - %165 = OpISub %int %164 %int_1 - %166 = OpIMul %int %int_2 %141 - %167 = OpIAdd %int %159 %166 - %170 = OpISub %int %167 %int_1 - %168 = OpExtInst %int %169 SMin %170 %int_9 - OpStore %x_131_phi %159 - OpStore %x_134_phi %164 - OpStore %x_136_phi %159 + %156 = OpLoad %int %x_119_phi + %157 = OpSLessThan %bool %156 %int_9 + OpSelectionMerge %158 None + OpBranchConditional %157 %159 %160 + %159 = OpLabel + OpBranch %158 + %160 = OpLabel + OpBranch %145 + %158 = OpLabel + %161 = OpIAdd %int %156 %138 + %162 = OpISub %int %161 %int_1 + %163 = OpIMul %int %int_2 %138 + %164 = OpIAdd %int %156 %163 + %167 = OpISub %int %164 %int_1 + %165 = OpExtInst %int %166 SMin %167 %int_9 + OpStore %x_131_phi %156 + OpStore %x_134_phi %161 + OpStore %x_136_phi %156 + OpBranch %168 + %168 = OpLabel + OpLoopMerge %169 %170 None OpBranch %171 %171 = OpLabel - OpLoopMerge %172 %173 None - OpBranch %174 - %174 = OpLabel - %179 = OpLoad %int %x_131_phi - OpStore %x_131 %179 - %180 = OpLoad %int %x_134_phi - %181 = OpLoad %int %x_136_phi - OpStore %x_136 %181 - %182 = OpLoad %int %x_136 - %183 = OpSLessThanEqual %bool %182 %165 - OpSelectionMerge %184 None - OpBranchConditional %183 %185 %184 + %176 = OpLoad %int %x_131_phi + OpStore %x_131 %176 + %177 = OpLoad %int %x_134_phi + %178 = OpLoad %int %x_136_phi + OpStore %x_136 %178 + %179 = OpLoad %int %x_136 + %180 = OpSLessThanEqual %bool %179 %162 + OpSelectionMerge %181 None + OpBranchConditional %180 %182 %181 + %182 = OpLabel + %183 = OpSLessThanEqual %bool %177 %165 + OpBranch %181 + %181 = OpLabel + %184 = OpPhi %bool %180 %171 %183 %182 + OpSelectionMerge %185 None + OpBranchConditional %184 %186 %187 + %186 = OpLabel + OpBranch %185 + %187 = OpLabel + OpBranch %169 %185 = OpLabel - %186 = OpSLessThanEqual %bool %180 %168 - OpBranch %184 - %184 = OpLabel - %187 = OpPhi %bool %183 %174 %186 %185 - OpSelectionMerge %188 None - OpBranchConditional %187 %189 %190 - %189 = OpLabel - OpBranch %188 - %190 = OpLabel - OpBranch %172 - %188 = OpLabel - %191 = OpLoad %int %x_136 - %192 = OpAccessChain %_ptr_Function_int %data %191 - %193 = OpLoad %int %192 - %194 = OpAccessChain %_ptr_Function_int %data %180 - %195 = OpLoad %int %194 - %197 = OpLoad %int %x_131 - %198 = OpCopyObject %int %int_1 - %199 = OpIAdd %int %197 %198 - %196 = OpCopyObject %int %199 - %200 = OpSLessThan %bool %193 %195 - OpSelectionMerge %201 None - OpBranchConditional %200 %202 %203 - %202 = OpLabel - %205 = OpLoad %int %x_136 - %206 = OpCopyObject %int %int_1 - %207 = OpIAdd %int %205 %206 - %204 = OpCopyObject %int %207 - OpStore %x_151 %204 - %208 = OpAccessChain %_ptr_Function_int %data %191 - %209 = OpLoad %int %208 - %210 = OpLoad %int %x_131 - %211 = OpAccessChain %_ptr_Function_int %temp %210 - OpStore %211 %209 - OpStore %x_135_phi %180 - %212 = OpLoad %int %x_151 - OpStore %x_137_phi %212 - OpBranch %201 - %203 = OpLabel - %213 = OpIAdd %int %180 %int_1 - OpStore %x_154 %213 - %214 = OpAccessChain %_ptr_Function_int %data %180 - %215 = OpLoad %int %214 - %216 = OpLoad %int %x_131 - %217 = OpAccessChain %_ptr_Function_int %temp %216 - OpStore %217 %215 - %218 = OpLoad %int %x_154 - OpStore %x_135_phi %218 - %219 = OpLoad %int %x_136 - OpStore %x_137_phi %219 - OpBranch %201 - %201 = OpLabel - %220 = OpLoad %int %x_135_phi - %221 = OpLoad %int %x_137_phi - OpBranch %173 - %173 = OpLabel - OpStore %x_131_phi %196 - OpStore %x_134_phi %220 - OpStore %x_136_phi %221 - OpBranch %171 - %172 = OpLabel - %222 = OpLoad %int %x_131 - OpStore %x_158_phi %222 - %223 = OpLoad %int %x_136 - OpStore %x_161_phi %223 + %188 = OpLoad %int %x_136 + %189 = OpAccessChain %_ptr_Function_int %data %188 + %190 = OpLoad %int %189 + %191 = OpAccessChain %_ptr_Function_int %data %177 + %192 = OpLoad %int %191 + %194 = OpLoad %int %x_131 + %195 = OpCopyObject %int %int_1 + %196 = OpIAdd %int %194 %195 + %193 = OpCopyObject %int %196 + %197 = OpSLessThan %bool %190 %192 + OpSelectionMerge %198 None + OpBranchConditional %197 %199 %200 + %199 = OpLabel + %202 = OpLoad %int %x_136 + %203 = OpCopyObject %int %int_1 + %204 = OpIAdd %int %202 %203 + %201 = OpCopyObject %int %204 + OpStore %x_151 %201 + %205 = OpAccessChain %_ptr_Function_int %data %188 + %206 = OpLoad %int %205 + %207 = OpLoad %int %x_131 + %208 = OpAccessChain %_ptr_Function_int %temp %207 + OpStore %208 %206 + OpStore %x_135_phi %177 + %209 = OpLoad %int %x_151 + OpStore %x_137_phi %209 + OpBranch %198 + %200 = OpLabel + %210 = OpIAdd %int %177 %int_1 + OpStore %x_154 %210 + %211 = OpAccessChain %_ptr_Function_int %data %177 + %212 = OpLoad %int %211 + %213 = OpLoad %int %x_131 + %214 = OpAccessChain %_ptr_Function_int %temp %213 + OpStore %214 %212 + %215 = OpLoad %int %x_154 + OpStore %x_135_phi %215 + %216 = OpLoad %int %x_136 + OpStore %x_137_phi %216 + OpBranch %198 + %198 = OpLabel + %217 = OpLoad %int %x_135_phi + %218 = OpLoad %int %x_137_phi + OpBranch %170 + %170 = OpLabel + OpStore %x_131_phi %193 + OpStore %x_134_phi %217 + OpStore %x_136_phi %218 + OpBranch %168 + %169 = OpLabel + %219 = OpLoad %int %x_131 + OpStore %x_158_phi %219 + %220 = OpLoad %int %x_136 + OpStore %x_161_phi %220 + OpBranch %221 + %221 = OpLabel + OpLoopMerge %222 %223 None OpBranch %224 %224 = OpLabel - OpLoopMerge %225 %226 None - OpBranch %227 - %227 = OpLabel - %230 = OpLoad %int %x_158_phi - %231 = OpLoad %int %x_161_phi - %232 = OpSLessThan %bool %231 %int_10 - OpSelectionMerge %233 None - OpBranchConditional %232 %234 %233 + %227 = OpLoad %int %x_158_phi + %228 = OpLoad %int %x_161_phi + %229 = OpSLessThan %bool %228 %int_10 + OpSelectionMerge %230 None + OpBranchConditional %229 %231 %230 + %231 = OpLabel + %232 = OpSLessThanEqual %bool %228 %162 + OpBranch %230 + %230 = OpLabel + %233 = OpPhi %bool %229 %224 %232 %231 + OpSelectionMerge %234 None + OpBranchConditional %233 %235 %236 + %235 = OpLabel + OpBranch %234 + %236 = OpLabel + OpBranch %222 %234 = OpLabel - %235 = OpSLessThanEqual %bool %231 %165 - OpBranch %233 - %233 = OpLabel - %236 = OpPhi %bool %232 %227 %235 %234 - OpSelectionMerge %237 None - OpBranchConditional %236 %238 %239 - %238 = OpLabel - OpBranch %237 - %239 = OpLabel - OpBranch %225 - %237 = OpLabel - OpBranch %226 - %226 = OpLabel - %240 = OpIAdd %int %230 %int_1 - OpStore %x_159 %240 - %241 = OpIAdd %int %231 %int_1 - OpStore %x_162 %241 - %242 = OpAccessChain %_ptr_Function_int %data %231 - %243 = OpLoad %int %242 - %244 = OpAccessChain %_ptr_Function_int %temp %230 - OpStore %244 %243 - %245 = OpLoad %int %x_159 - OpStore %x_158_phi %245 - %246 = OpLoad %int %x_162 - OpStore %x_161_phi %246 - OpBranch %224 - %225 = OpLabel - OpStore %x_171_phi %159 + OpBranch %223 + %223 = OpLabel + %237 = OpIAdd %int %227 %int_1 + OpStore %x_159 %237 + %238 = OpIAdd %int %228 %int_1 + OpStore %x_162 %238 + %239 = OpAccessChain %_ptr_Function_int %data %228 + %240 = OpLoad %int %239 + %241 = OpAccessChain %_ptr_Function_int %temp %227 + OpStore %241 %240 + %242 = OpLoad %int %x_159 + OpStore %x_158_phi %242 + %243 = OpLoad %int %x_162 + OpStore %x_161_phi %243 + OpBranch %221 + %222 = OpLabel + OpStore %x_171_phi %156 + OpBranch %244 + %244 = OpLabel + OpLoopMerge %245 %246 None OpBranch %247 %247 = OpLabel - OpLoopMerge %248 %249 None - OpBranch %250 - %250 = OpLabel - %252 = OpLoad %int %x_171_phi - %253 = OpSLessThanEqual %bool %252 %168 - OpSelectionMerge %254 None - OpBranchConditional %253 %255 %256 - %255 = OpLabel - OpBranch %254 - %256 = OpLabel - OpBranch %248 - %254 = OpLabel - OpBranch %249 - %249 = OpLabel - %257 = OpAccessChain %_ptr_Function_int %temp %252 - %258 = OpLoad %int %257 - %259 = OpAccessChain %_ptr_Function_int %data %252 - OpStore %259 %258 - %260 = OpIAdd %int %252 %int_1 - OpStore %x_172 %260 - %261 = OpLoad %int %x_172 - OpStore %x_171_phi %261 - OpBranch %247 - %248 = OpLabel - OpBranch %149 - %149 = OpLabel - OpStore %x_119_phi %167 - OpBranch %147 - %148 = OpLabel - OpBranch %137 - %137 = OpLabel - %262 = OpIMul %int %int_2 %141 - OpStore %x_113 %262 - %263 = OpLoad %int %x_113 - OpStore %x_112_phi %263 - OpBranch %135 - %136 = OpLabel - %270 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %271 = OpLoad %float %270 - %272 = OpConvertFToS %int %271 - OpStore %x_181 %272 - %273 = OpLoad %int %x_181 - %275 = OpSLessThan %bool %273 %int_30 - OpSelectionMerge %276 None - OpBranchConditional %275 %277 %278 - %277 = OpLabel - %279 = OpAccessChain %_ptr_Function_int %data %int_0 - %280 = OpLoad %int %279 - %282 = OpConvertSToF %float %280 - %284 = OpFMul %float %282 %float_0_100000001 - %285 = OpFAdd %float %float_0_5 %284 - OpStore %x_190 %285 - %286 = OpLoad %float %x_190 - OpStore %x_263_phi %286 - OpBranch %276 - %278 = OpLabel - %290 = OpLoad %int %x_181 - %292 = OpSLessThan %bool %290 %int_60 - OpSelectionMerge %293 None - OpBranchConditional %292 %294 %295 - %294 = OpLabel - %296 = OpAccessChain %_ptr_Function_int %data %int_1 - %297 = OpLoad %int %296 - %298 = OpConvertSToF %float %297 - %299 = OpFMul %float %298 %float_0_100000001 - %300 = OpFAdd %float %float_0_5 %299 - OpStore %x_199 %300 - %301 = OpLoad %float %x_199 - OpStore %x_262_phi %301 - OpBranch %293 - %295 = OpLabel - %305 = OpLoad %int %x_181 - %307 = OpSLessThan %bool %305 %int_90 - OpSelectionMerge %308 None - OpBranchConditional %307 %309 %310 - %309 = OpLabel - %311 = OpAccessChain %_ptr_Function_int %data %int_2 - %312 = OpLoad %int %311 - %313 = OpConvertSToF %float %312 - %314 = OpFMul %float %313 %float_0_100000001 - %315 = OpFAdd %float %float_0_5 %314 - OpStore %x_208 %315 - %316 = OpLoad %float %x_208 - OpStore %x_261_phi %316 - OpBranch %308 - %310 = OpLabel - %317 = OpLoad %int %x_181 - %319 = OpSLessThan %bool %317 %int_120 - OpSelectionMerge %320 None - OpBranchConditional %319 %321 %322 - %321 = OpLabel - %323 = OpAccessChain %_ptr_Function_int %data %int_3 - %324 = OpLoad %int %323 - %325 = OpConvertSToF %float %324 - %326 = OpFMul %float %325 %float_0_100000001 - %327 = OpFAdd %float %float_0_5 %326 - OpStore %x_217 %327 - %328 = OpLoad %float %x_217 - OpStore %x_260_phi %328 - OpBranch %320 - %322 = OpLabel - %332 = OpLoad %int %x_181 - %334 = OpSLessThan %bool %332 %int_150 - OpSelectionMerge %335 None - OpBranchConditional %334 %336 %337 - %336 = OpLabel + %249 = OpLoad %int %x_171_phi + %250 = OpSLessThanEqual %bool %249 %165 + OpSelectionMerge %251 None + OpBranchConditional %250 %252 %253 + %252 = OpLabel + OpBranch %251 + %253 = OpLabel + OpBranch %245 + %251 = OpLabel + OpBranch %246 + %246 = OpLabel + %254 = OpAccessChain %_ptr_Function_int %temp %249 + %255 = OpLoad %int %254 + %256 = OpAccessChain %_ptr_Function_int %data %249 + OpStore %256 %255 + %257 = OpIAdd %int %249 %int_1 + OpStore %x_172 %257 + %258 = OpLoad %int %x_172 + OpStore %x_171_phi %258 + OpBranch %244 + %245 = OpLabel + OpBranch %146 + %146 = OpLabel + OpStore %x_119_phi %164 + OpBranch %144 + %145 = OpLabel + OpBranch %134 + %134 = OpLabel + %259 = OpIMul %int %int_2 %138 + OpStore %x_113 %259 + %260 = OpLoad %int %x_113 + OpStore %x_112_phi %260 + OpBranch %132 + %133 = OpLabel + %267 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %268 = OpLoad %float %267 + %269 = OpConvertFToS %int %268 + OpStore %x_181 %269 + %270 = OpLoad %int %x_181 + %272 = OpSLessThan %bool %270 %int_30 + OpSelectionMerge %273 None + OpBranchConditional %272 %274 %275 + %274 = OpLabel + %276 = OpAccessChain %_ptr_Function_int %data %int_0 + %277 = OpLoad %int %276 + %279 = OpConvertSToF %float %277 + %281 = OpFMul %float %279 %float_0_100000001 + %282 = OpFAdd %float %float_0_5 %281 + OpStore %x_190 %282 + %283 = OpLoad %float %x_190 + OpStore %x_263_phi %283 + OpBranch %273 + %275 = OpLabel + %287 = OpLoad %int %x_181 + %289 = OpSLessThan %bool %287 %int_60 + OpSelectionMerge %290 None + OpBranchConditional %289 %291 %292 + %291 = OpLabel + %293 = OpAccessChain %_ptr_Function_int %data %int_1 + %294 = OpLoad %int %293 + %295 = OpConvertSToF %float %294 + %296 = OpFMul %float %295 %float_0_100000001 + %297 = OpFAdd %float %float_0_5 %296 + OpStore %x_199 %297 + %298 = OpLoad %float %x_199 + OpStore %x_262_phi %298 + OpBranch %290 + %292 = OpLabel + %302 = OpLoad %int %x_181 + %304 = OpSLessThan %bool %302 %int_90 + OpSelectionMerge %305 None + OpBranchConditional %304 %306 %307 + %306 = OpLabel + %308 = OpAccessChain %_ptr_Function_int %data %int_2 + %309 = OpLoad %int %308 + %310 = OpConvertSToF %float %309 + %311 = OpFMul %float %310 %float_0_100000001 + %312 = OpFAdd %float %float_0_5 %311 + OpStore %x_208 %312 + %313 = OpLoad %float %x_208 + OpStore %x_261_phi %313 + OpBranch %305 + %307 = OpLabel + %314 = OpLoad %int %x_181 + %316 = OpSLessThan %bool %314 %int_120 + OpSelectionMerge %317 None + OpBranchConditional %316 %318 %319 + %318 = OpLabel + %320 = OpAccessChain %_ptr_Function_int %data %int_3 + %321 = OpLoad %int %320 + %322 = OpConvertSToF %float %321 + %323 = OpFMul %float %322 %float_0_100000001 + %324 = OpFAdd %float %float_0_5 %323 + OpStore %x_217 %324 + %325 = OpLoad %float %x_217 + OpStore %x_260_phi %325 + OpBranch %317 + %319 = OpLabel + %329 = OpLoad %int %x_181 + %331 = OpSLessThan %bool %329 %int_150 + OpSelectionMerge %332 None + OpBranchConditional %331 %333 %334 + %333 = OpLabel OpKill - %337 = OpLabel - %341 = OpLoad %int %x_181 - %343 = OpSLessThan %bool %341 %int_180 - OpSelectionMerge %344 None - OpBranchConditional %343 %345 %346 - %345 = OpLabel - %348 = OpAccessChain %_ptr_Function_int %data %int_5 - %349 = OpLoad %int %348 - %350 = OpConvertSToF %float %349 - %351 = OpFMul %float %350 %float_0_100000001 - %352 = OpFAdd %float %float_0_5 %351 - OpStore %x_230 %352 - %353 = OpLoad %float %x_230 - OpStore %x_259_phi %353 - OpBranch %344 - %346 = OpLabel - %357 = OpLoad %int %x_181 - %359 = OpSLessThan %bool %357 %int_210 - OpSelectionMerge %360 None - OpBranchConditional %359 %361 %362 - %361 = OpLabel - %364 = OpAccessChain %_ptr_Function_int %data %int_6 - %365 = OpLoad %int %364 - %366 = OpConvertSToF %float %365 - %367 = OpFMul %float %366 %float_0_100000001 - %368 = OpFAdd %float %float_0_5 %367 - OpStore %x_239 %368 - %369 = OpLoad %float %x_239 - OpStore %x_258_phi %369 - OpBranch %360 - %362 = OpLabel - %370 = OpLoad %int %x_181 - %372 = OpSLessThan %bool %370 %int_240 - OpSelectionMerge %373 None - OpBranchConditional %372 %374 %375 - %374 = OpLabel - %377 = OpAccessChain %_ptr_Function_int %data %int_7 - %378 = OpLoad %int %377 - %379 = OpConvertSToF %float %378 - %380 = OpFMul %float %379 %float_0_100000001 - %381 = OpFAdd %float %float_0_5 %380 - OpStore %x_248 %381 - %382 = OpLoad %float %x_248 - OpStore %x_257_phi %382 - OpBranch %373 - %375 = OpLabel - %383 = OpLoad %int %x_181 - %385 = OpSLessThan %bool %383 %int_270 - OpSelectionMerge %386 None - OpBranchConditional %385 %387 %388 - %387 = OpLabel - OpBranch %386 - %388 = OpLabel + %334 = OpLabel + %338 = OpLoad %int %x_181 + %340 = OpSLessThan %bool %338 %int_180 + OpSelectionMerge %341 None + OpBranchConditional %340 %342 %343 + %342 = OpLabel + %345 = OpAccessChain %_ptr_Function_int %data %int_5 + %346 = OpLoad %int %345 + %347 = OpConvertSToF %float %346 + %348 = OpFMul %float %347 %float_0_100000001 + %349 = OpFAdd %float %float_0_5 %348 + OpStore %x_230 %349 + %350 = OpLoad %float %x_230 + OpStore %x_259_phi %350 + OpBranch %341 + %343 = OpLabel + %354 = OpLoad %int %x_181 + %356 = OpSLessThan %bool %354 %int_210 + OpSelectionMerge %357 None + OpBranchConditional %356 %358 %359 + %358 = OpLabel + %361 = OpAccessChain %_ptr_Function_int %data %int_6 + %362 = OpLoad %int %361 + %363 = OpConvertSToF %float %362 + %364 = OpFMul %float %363 %float_0_100000001 + %365 = OpFAdd %float %float_0_5 %364 + OpStore %x_239 %365 + %366 = OpLoad %float %x_239 + OpStore %x_258_phi %366 + OpBranch %357 + %359 = OpLabel + %367 = OpLoad %int %x_181 + %369 = OpSLessThan %bool %367 %int_240 + OpSelectionMerge %370 None + OpBranchConditional %369 %371 %372 + %371 = OpLabel + %374 = OpAccessChain %_ptr_Function_int %data %int_7 + %375 = OpLoad %int %374 + %376 = OpConvertSToF %float %375 + %377 = OpFMul %float %376 %float_0_100000001 + %378 = OpFAdd %float %float_0_5 %377 + OpStore %x_248 %378 + %379 = OpLoad %float %x_248 + OpStore %x_257_phi %379 + OpBranch %370 + %372 = OpLabel + %380 = OpLoad %int %x_181 + %382 = OpSLessThan %bool %380 %int_270 + OpSelectionMerge %383 None + OpBranchConditional %382 %384 %385 + %384 = OpLabel + OpBranch %383 + %385 = OpLabel OpKill - %386 = OpLabel - %390 = OpAccessChain %_ptr_Function_int %data %int_8 - %391 = OpLoad %int %390 - %392 = OpConvertSToF %float %391 - %393 = OpFMul %float %392 %float_0_100000001 - %394 = OpFAdd %float %float_0_5 %393 - OpStore %x_256 %394 - %395 = OpLoad %float %x_256 - OpStore %x_257_phi %395 - OpBranch %373 - %373 = OpLabel - %396 = OpLoad %float %x_257_phi - OpStore %x_257 %396 - %397 = OpLoad %float %x_257 - OpStore %x_258_phi %397 - OpBranch %360 - %360 = OpLabel - %398 = OpLoad %float %x_258_phi - OpStore %x_258 %398 - %399 = OpLoad %float %x_258 - OpStore %x_259_phi %399 - OpBranch %344 - %344 = OpLabel - %400 = OpLoad %float %x_259_phi - OpStore %x_259 %400 - OpBranch %335 - %335 = OpLabel - %401 = OpLoad %float %x_259 - OpStore %x_260_phi %401 - OpBranch %320 - %320 = OpLabel - %402 = OpLoad %float %x_260_phi - OpStore %x_260 %402 - %403 = OpLoad %float %x_260 - OpStore %x_261_phi %403 - OpBranch %308 - %308 = OpLabel - %404 = OpLoad %float %x_261_phi - OpStore %x_261 %404 - %405 = OpLoad %float %x_261 - OpStore %x_262_phi %405 - OpBranch %293 - %293 = OpLabel - %406 = OpLoad %float %x_262_phi - OpStore %x_262 %406 - %407 = OpLoad %float %x_262 - OpStore %x_263_phi %407 - OpBranch %276 - %276 = OpLabel - %408 = OpLoad %float %x_263_phi - %410 = OpCompositeConstruct %v4float %408 %408 %408 %float_1 - OpStore %x_GLF_color %410 + %383 = OpLabel + %387 = OpAccessChain %_ptr_Function_int %data %int_8 + %388 = OpLoad %int %387 + %389 = OpConvertSToF %float %388 + %390 = OpFMul %float %389 %float_0_100000001 + %391 = OpFAdd %float %float_0_5 %390 + OpStore %x_256 %391 + %392 = OpLoad %float %x_256 + OpStore %x_257_phi %392 + OpBranch %370 + %370 = OpLabel + %393 = OpLoad %float %x_257_phi + OpStore %x_257 %393 + %394 = OpLoad %float %x_257 + OpStore %x_258_phi %394 + OpBranch %357 + %357 = OpLabel + %395 = OpLoad %float %x_258_phi + OpStore %x_258 %395 + %396 = OpLoad %float %x_258 + OpStore %x_259_phi %396 + OpBranch %341 + %341 = OpLabel + %397 = OpLoad %float %x_259_phi + OpStore %x_259 %397 + OpBranch %332 + %332 = OpLabel + %398 = OpLoad %float %x_259 + OpStore %x_260_phi %398 + OpBranch %317 + %317 = OpLabel + %399 = OpLoad %float %x_260_phi + OpStore %x_260 %399 + %400 = OpLoad %float %x_260 + OpStore %x_261_phi %400 + OpBranch %305 + %305 = OpLabel + %401 = OpLoad %float %x_261_phi + OpStore %x_261 %401 + %402 = OpLoad %float %x_261 + OpStore %x_262_phi %402 + OpBranch %290 + %290 = OpLabel + %403 = OpLoad %float %x_262_phi + OpStore %x_262 %403 + %404 = OpLoad %float %x_262 + OpStore %x_263_phi %404 + OpBranch %273 + %273 = OpLabel + %405 = OpLoad %float %x_263_phi + %407 = OpCompositeConstruct %v4float %405 %405 %405 %float_1 + OpStore %x_GLF_color %407 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %411 +%tint_symbol_3 = OpFunction %void None %408 %tint_symbol_1 = OpFunctionParameter %main_out - %415 = OpLabel - %416 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %416 + %412 = OpLabel + %413 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %413 OpReturn OpFunctionEnd %main = OpFunction %void None %15 - %418 = OpLabel - %419 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %419 - %420 = OpFunctionCall %void %main_1 - %422 = OpLoad %v4float %x_GLF_color - %423 = OpCompositeConstruct %main_out %422 - %421 = OpFunctionCall %void %tint_symbol_3 %423 + %415 = OpLabel + %416 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %416 + %417 = OpFunctionCall %void %main_1 + %419 = OpLoad %v4float %x_GLF_color + %420 = OpCompositeConstruct %main_out %419 + %418 = OpFunctionCall %void %tint_symbol_3 %420 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 44[%44] is not post dominated by the back-edge block 117[%117] - %117 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.spvasm index 105bea0bd2..2cc6c8d781 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.spvasm @@ -1,12 +1,10 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 422 +; Bound: 415 ; Schema: 0 OpCapability Shader - %167 = OpExtInstImport "GLSL.std.450" + %164 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2 OpExecutionMode %main OriginUpperLeft @@ -148,7 +146,7 @@ SKIP: FAILED %int_8 = OpConstant %int 8 %float_1 = OpConstant %float 1 %main_out = OpTypeStruct %v4float - %409 = OpTypeFunction %void %main_out + %402 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %15 %18 = OpLabel %temp = OpVariable %_ptr_Function__arr_int_uint_10 Function %25 @@ -309,434 +307,414 @@ SKIP: FAILED %44 = OpLabel OpStore %x_63_phi %111 %113 = OpSLessThan %bool %111 %int_10 - OpSelectionMerge %115 None - OpBranchConditional %113 %116 %117 - %116 = OpLabel - OpBranch %115 - %117 = OpLabel - OpBranch %43 - %115 = OpLabel - OpBranch %42 + OpBranchConditional %113 %42 %43 %43 = OpLabel OpStore %x_102_phi %int_0 + OpBranch %115 + %115 = OpLabel + OpLoopMerge %116 %117 None OpBranch %118 %118 = OpLabel - OpLoopMerge %119 %120 None - OpBranch %121 - %121 = OpLabel - %123 = OpLoad %int %x_102_phi - %124 = OpSLessThan %bool %123 %int_10 - OpSelectionMerge %125 None - OpBranchConditional %124 %126 %127 - %126 = OpLabel - OpBranch %125 - %127 = OpLabel - OpBranch %119 - %125 = OpLabel - OpBranch %120 - %120 = OpLabel - %128 = OpAccessChain %_ptr_Function_int %data %123 - %129 = OpLoad %int %128 - %130 = OpAccessChain %_ptr_Function_int %temp %123 - OpStore %130 %129 - %131 = OpIAdd %int %123 %int_1 - OpStore %x_103 %131 - %132 = OpLoad %int %x_103 - OpStore %x_102_phi %132 - OpBranch %118 - %119 = OpLabel + %120 = OpLoad %int %x_102_phi + %121 = OpSLessThan %bool %120 %int_10 + OpSelectionMerge %122 None + OpBranchConditional %121 %123 %124 + %123 = OpLabel + OpBranch %122 + %124 = OpLabel + OpBranch %116 + %122 = OpLabel + OpBranch %117 + %117 = OpLabel + %125 = OpAccessChain %_ptr_Function_int %data %120 + %126 = OpLoad %int %125 + %127 = OpAccessChain %_ptr_Function_int %temp %120 + OpStore %127 %126 + %128 = OpIAdd %int %120 %int_1 + OpStore %x_103 %128 + %129 = OpLoad %int %x_103 + OpStore %x_102_phi %129 + OpBranch %115 + %116 = OpLabel OpStore %x_111_phi %int_1 + OpBranch %130 + %130 = OpLabel + OpLoopMerge %131 %132 None OpBranch %133 %133 = OpLabel - OpLoopMerge %134 %135 None - OpBranch %136 - %136 = OpLabel - %139 = OpLoad %int %x_111_phi - %141 = OpSLessThanEqual %bool %139 %int_9 - OpSelectionMerge %142 None - OpBranchConditional %141 %143 %144 - %143 = OpLabel - OpBranch %142 - %144 = OpLabel - OpBranch %134 - %142 = OpLabel + %136 = OpLoad %int %x_111_phi + %138 = OpSLessThanEqual %bool %136 %int_9 + OpSelectionMerge %139 None + OpBranchConditional %138 %140 %141 + %140 = OpLabel + OpBranch %139 + %141 = OpLabel + OpBranch %131 + %139 = OpLabel OpStore %x_118_phi %int_0 + OpBranch %142 + %142 = OpLabel + OpLoopMerge %143 %144 None OpBranch %145 %145 = OpLabel - OpLoopMerge %146 %147 None - OpBranch %148 - %148 = OpLabel - %157 = OpLoad %int %x_118_phi - %158 = OpSLessThan %bool %157 %int_9 - OpSelectionMerge %159 None - OpBranchConditional %158 %160 %161 - %160 = OpLabel - OpBranch %159 - %161 = OpLabel - OpBranch %146 - %159 = OpLabel - %162 = OpIAdd %int %157 %139 - %163 = OpISub %int %162 %int_1 - %164 = OpIMul %int %int_2 %139 - %165 = OpIAdd %int %157 %164 - %168 = OpISub %int %165 %int_1 - %166 = OpExtInst %int %167 SMin %168 %int_9 - OpStore %x_130_phi %157 - OpStore %x_133_phi %162 - OpStore %x_135_phi %157 + %154 = OpLoad %int %x_118_phi + %155 = OpSLessThan %bool %154 %int_9 + OpSelectionMerge %156 None + OpBranchConditional %155 %157 %158 + %157 = OpLabel + OpBranch %156 + %158 = OpLabel + OpBranch %143 + %156 = OpLabel + %159 = OpIAdd %int %154 %136 + %160 = OpISub %int %159 %int_1 + %161 = OpIMul %int %int_2 %136 + %162 = OpIAdd %int %154 %161 + %165 = OpISub %int %162 %int_1 + %163 = OpExtInst %int %164 SMin %165 %int_9 + OpStore %x_130_phi %154 + OpStore %x_133_phi %159 + OpStore %x_135_phi %154 + OpBranch %166 + %166 = OpLabel + OpLoopMerge %167 %168 None OpBranch %169 %169 = OpLabel - OpLoopMerge %170 %171 None - OpBranch %172 - %172 = OpLabel - %177 = OpLoad %int %x_130_phi - OpStore %x_130 %177 - %178 = OpLoad %int %x_133_phi - %179 = OpLoad %int %x_135_phi - OpStore %x_135 %179 - %180 = OpLoad %int %x_135 - %181 = OpSLessThanEqual %bool %180 %163 - OpSelectionMerge %182 None - OpBranchConditional %181 %183 %182 - %183 = OpLabel - %184 = OpSLessThanEqual %bool %178 %166 - OpBranch %182 + %174 = OpLoad %int %x_130_phi + OpStore %x_130 %174 + %175 = OpLoad %int %x_133_phi + %176 = OpLoad %int %x_135_phi + OpStore %x_135 %176 + %177 = OpLoad %int %x_135 + %178 = OpSLessThanEqual %bool %177 %160 + %179 = OpSLessThanEqual %bool %175 %163 + %180 = OpLogicalAnd %bool %178 %179 + OpSelectionMerge %181 None + OpBranchConditional %180 %182 %183 %182 = OpLabel - %185 = OpPhi %bool %181 %172 %184 %183 - OpSelectionMerge %186 None - OpBranchConditional %185 %187 %188 - %187 = OpLabel - OpBranch %186 - %188 = OpLabel - OpBranch %170 - %186 = OpLabel - %189 = OpLoad %int %x_135 - %190 = OpAccessChain %_ptr_Function_int %data %189 - %191 = OpLoad %int %190 - %192 = OpAccessChain %_ptr_Function_int %data %178 - %193 = OpLoad %int %192 - %195 = OpLoad %int %x_130 - %196 = OpCopyObject %int %int_1 - %197 = OpIAdd %int %195 %196 - %194 = OpCopyObject %int %197 - %198 = OpSLessThan %bool %191 %193 - OpSelectionMerge %199 None - OpBranchConditional %198 %200 %201 - %200 = OpLabel - %203 = OpLoad %int %x_135 - %204 = OpCopyObject %int %int_1 - %205 = OpIAdd %int %203 %204 - %202 = OpCopyObject %int %205 - OpStore %x_150 %202 - %206 = OpAccessChain %_ptr_Function_int %data %189 - %207 = OpLoad %int %206 - %208 = OpLoad %int %x_130 - %209 = OpAccessChain %_ptr_Function_int %temp %208 - OpStore %209 %207 - OpStore %x_134_phi %178 - %210 = OpLoad %int %x_150 - OpStore %x_136_phi %210 - OpBranch %199 - %201 = OpLabel - %211 = OpIAdd %int %178 %int_1 - OpStore %x_153 %211 - %212 = OpAccessChain %_ptr_Function_int %data %178 - %213 = OpLoad %int %212 - %214 = OpLoad %int %x_130 - %215 = OpAccessChain %_ptr_Function_int %temp %214 - OpStore %215 %213 - %216 = OpLoad %int %x_153 - OpStore %x_134_phi %216 - %217 = OpLoad %int %x_135 - OpStore %x_136_phi %217 - OpBranch %199 - %199 = OpLabel - %218 = OpLoad %int %x_134_phi - %219 = OpLoad %int %x_136_phi - OpBranch %171 - %171 = OpLabel - OpStore %x_130_phi %194 - OpStore %x_133_phi %218 - OpStore %x_135_phi %219 - OpBranch %169 - %170 = OpLabel - %220 = OpLoad %int %x_130 - OpStore %x_157_phi %220 - %221 = OpLoad %int %x_135 - OpStore %x_160_phi %221 - OpBranch %222 - %222 = OpLabel - OpLoopMerge %223 %224 None - OpBranch %225 - %225 = OpLabel - %228 = OpLoad %int %x_157_phi - %229 = OpLoad %int %x_160_phi - %230 = OpSLessThan %bool %229 %int_10 - OpSelectionMerge %231 None - OpBranchConditional %230 %232 %231 - %232 = OpLabel - %233 = OpSLessThanEqual %bool %229 %163 - OpBranch %231 - %231 = OpLabel - %234 = OpPhi %bool %230 %225 %233 %232 - OpSelectionMerge %235 None - OpBranchConditional %234 %236 %237 - %236 = OpLabel - OpBranch %235 - %237 = OpLabel - OpBranch %223 - %235 = OpLabel - OpBranch %224 - %224 = OpLabel - %238 = OpIAdd %int %228 %int_1 - OpStore %x_158 %238 - %239 = OpIAdd %int %229 %int_1 - OpStore %x_161 %239 - %240 = OpAccessChain %_ptr_Function_int %data %229 - %241 = OpLoad %int %240 - %242 = OpAccessChain %_ptr_Function_int %temp %228 - OpStore %242 %241 - %243 = OpLoad %int %x_158 - OpStore %x_157_phi %243 - %244 = OpLoad %int %x_161 - OpStore %x_160_phi %244 - OpBranch %222 - %223 = OpLabel - OpStore %x_170_phi %157 - OpBranch %245 - %245 = OpLabel - OpLoopMerge %246 %247 None - OpBranch %248 - %248 = OpLabel - %250 = OpLoad %int %x_170_phi - %251 = OpSLessThanEqual %bool %250 %166 - OpSelectionMerge %252 None - OpBranchConditional %251 %253 %254 - %253 = OpLabel - OpBranch %252 - %254 = OpLabel - OpBranch %246 - %252 = OpLabel - OpBranch %247 - %247 = OpLabel - %255 = OpAccessChain %_ptr_Function_int %temp %250 - %256 = OpLoad %int %255 - %257 = OpAccessChain %_ptr_Function_int %data %250 - OpStore %257 %256 - %258 = OpIAdd %int %250 %int_1 - OpStore %x_171 %258 - %259 = OpLoad %int %x_171 - OpStore %x_170_phi %259 - OpBranch %245 + OpBranch %181 + %183 = OpLabel + OpBranch %167 + %181 = OpLabel + %184 = OpLoad %int %x_135 + %185 = OpAccessChain %_ptr_Function_int %data %184 + %186 = OpLoad %int %185 + %187 = OpAccessChain %_ptr_Function_int %data %175 + %188 = OpLoad %int %187 + %190 = OpLoad %int %x_130 + %191 = OpCopyObject %int %int_1 + %192 = OpIAdd %int %190 %191 + %189 = OpCopyObject %int %192 + %193 = OpSLessThan %bool %186 %188 + OpSelectionMerge %194 None + OpBranchConditional %193 %195 %196 + %195 = OpLabel + %198 = OpLoad %int %x_135 + %199 = OpCopyObject %int %int_1 + %200 = OpIAdd %int %198 %199 + %197 = OpCopyObject %int %200 + OpStore %x_150 %197 + %201 = OpAccessChain %_ptr_Function_int %data %184 + %202 = OpLoad %int %201 + %203 = OpLoad %int %x_130 + %204 = OpAccessChain %_ptr_Function_int %temp %203 + OpStore %204 %202 + OpStore %x_134_phi %175 + %205 = OpLoad %int %x_150 + OpStore %x_136_phi %205 + OpBranch %194 + %196 = OpLabel + %206 = OpIAdd %int %175 %int_1 + OpStore %x_153 %206 + %207 = OpAccessChain %_ptr_Function_int %data %175 + %208 = OpLoad %int %207 + %209 = OpLoad %int %x_130 + %210 = OpAccessChain %_ptr_Function_int %temp %209 + OpStore %210 %208 + %211 = OpLoad %int %x_153 + OpStore %x_134_phi %211 + %212 = OpLoad %int %x_135 + OpStore %x_136_phi %212 + OpBranch %194 + %194 = OpLabel + %213 = OpLoad %int %x_134_phi + %214 = OpLoad %int %x_136_phi + OpBranch %168 + %168 = OpLabel + OpStore %x_130_phi %189 + OpStore %x_133_phi %213 + OpStore %x_135_phi %214 + OpBranch %166 + %167 = OpLabel + %215 = OpLoad %int %x_130 + OpStore %x_157_phi %215 + %216 = OpLoad %int %x_135 + OpStore %x_160_phi %216 + OpBranch %217 + %217 = OpLabel + OpLoopMerge %218 %219 None + OpBranch %220 + %220 = OpLabel + %223 = OpLoad %int %x_157_phi + %224 = OpLoad %int %x_160_phi + %225 = OpSLessThan %bool %224 %int_10 + %226 = OpSLessThanEqual %bool %224 %160 + %227 = OpLogicalAnd %bool %225 %226 + OpSelectionMerge %228 None + OpBranchConditional %227 %229 %230 + %229 = OpLabel + OpBranch %228 + %230 = OpLabel + OpBranch %218 + %228 = OpLabel + OpBranch %219 + %219 = OpLabel + %231 = OpIAdd %int %223 %int_1 + OpStore %x_158 %231 + %232 = OpIAdd %int %224 %int_1 + OpStore %x_161 %232 + %233 = OpAccessChain %_ptr_Function_int %data %224 + %234 = OpLoad %int %233 + %235 = OpAccessChain %_ptr_Function_int %temp %223 + OpStore %235 %234 + %236 = OpLoad %int %x_158 + OpStore %x_157_phi %236 + %237 = OpLoad %int %x_161 + OpStore %x_160_phi %237 + OpBranch %217 + %218 = OpLabel + OpStore %x_170_phi %154 + OpBranch %238 + %238 = OpLabel + OpLoopMerge %239 %240 None + OpBranch %241 + %241 = OpLabel + %243 = OpLoad %int %x_170_phi + %244 = OpSLessThanEqual %bool %243 %163 + OpSelectionMerge %245 None + OpBranchConditional %244 %246 %247 %246 = OpLabel - OpBranch %147 - %147 = OpLabel - OpStore %x_118_phi %165 - OpBranch %145 - %146 = OpLabel - OpBranch %135 - %135 = OpLabel - %260 = OpIMul %int %int_2 %139 - OpStore %x_112 %260 - %261 = OpLoad %int %x_112 - OpStore %x_111_phi %261 - OpBranch %133 - %134 = OpLabel - %268 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %269 = OpLoad %float %268 - %270 = OpConvertFToS %int %269 - OpStore %x_180 %270 - %271 = OpLoad %int %x_180 - %273 = OpSLessThan %bool %271 %int_30 - OpSelectionMerge %274 None - OpBranchConditional %273 %275 %276 - %275 = OpLabel - %277 = OpAccessChain %_ptr_Function_int %data %int_0 - %278 = OpLoad %int %277 - %280 = OpConvertSToF %float %278 - %282 = OpFMul %float %280 %float_0_100000001 - %283 = OpFAdd %float %float_0_5 %282 - OpStore %x_189 %283 - %284 = OpLoad %float %x_189 - OpStore %x_262_phi %284 - OpBranch %274 - %276 = OpLabel - %288 = OpLoad %int %x_180 - %290 = OpSLessThan %bool %288 %int_60 - OpSelectionMerge %291 None - OpBranchConditional %290 %292 %293 - %292 = OpLabel - %294 = OpAccessChain %_ptr_Function_int %data %int_1 - %295 = OpLoad %int %294 - %296 = OpConvertSToF %float %295 - %297 = OpFMul %float %296 %float_0_100000001 - %298 = OpFAdd %float %float_0_5 %297 - OpStore %x_198 %298 - %299 = OpLoad %float %x_198 - OpStore %x_261_phi %299 - OpBranch %291 - %293 = OpLabel - %303 = OpLoad %int %x_180 - %305 = OpSLessThan %bool %303 %int_90 - OpSelectionMerge %306 None - OpBranchConditional %305 %307 %308 - %307 = OpLabel - %309 = OpAccessChain %_ptr_Function_int %data %int_2 - %310 = OpLoad %int %309 - %311 = OpConvertSToF %float %310 - %312 = OpFMul %float %311 %float_0_100000001 - %313 = OpFAdd %float %float_0_5 %312 - OpStore %x_207 %313 - %314 = OpLoad %float %x_207 - OpStore %x_260_phi %314 - OpBranch %306 - %308 = OpLabel - %315 = OpLoad %int %x_180 - %317 = OpSLessThan %bool %315 %int_120 - OpSelectionMerge %318 None - OpBranchConditional %317 %319 %320 - %319 = OpLabel - %321 = OpAccessChain %_ptr_Function_int %data %int_3 - %322 = OpLoad %int %321 - %323 = OpConvertSToF %float %322 - %324 = OpFMul %float %323 %float_0_100000001 - %325 = OpFAdd %float %float_0_5 %324 - OpStore %x_216 %325 - %326 = OpLoad %float %x_216 - OpStore %x_259_phi %326 - OpBranch %318 - %320 = OpLabel - %330 = OpLoad %int %x_180 - %332 = OpSLessThan %bool %330 %int_150 - OpSelectionMerge %333 None - OpBranchConditional %332 %334 %335 - %334 = OpLabel + OpBranch %245 + %247 = OpLabel + OpBranch %239 + %245 = OpLabel + OpBranch %240 + %240 = OpLabel + %248 = OpAccessChain %_ptr_Function_int %temp %243 + %249 = OpLoad %int %248 + %250 = OpAccessChain %_ptr_Function_int %data %243 + OpStore %250 %249 + %251 = OpIAdd %int %243 %int_1 + OpStore %x_171 %251 + %252 = OpLoad %int %x_171 + OpStore %x_170_phi %252 + OpBranch %238 + %239 = OpLabel + OpBranch %144 + %144 = OpLabel + OpStore %x_118_phi %162 + OpBranch %142 + %143 = OpLabel + OpBranch %132 + %132 = OpLabel + %253 = OpIMul %int %int_2 %136 + OpStore %x_112 %253 + %254 = OpLoad %int %x_112 + OpStore %x_111_phi %254 + OpBranch %130 + %131 = OpLabel + %261 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %262 = OpLoad %float %261 + %263 = OpConvertFToS %int %262 + OpStore %x_180 %263 + %264 = OpLoad %int %x_180 + %266 = OpSLessThan %bool %264 %int_30 + OpSelectionMerge %267 None + OpBranchConditional %266 %268 %269 + %268 = OpLabel + %270 = OpAccessChain %_ptr_Function_int %data %int_0 + %271 = OpLoad %int %270 + %273 = OpConvertSToF %float %271 + %275 = OpFMul %float %273 %float_0_100000001 + %276 = OpFAdd %float %float_0_5 %275 + OpStore %x_189 %276 + %277 = OpLoad %float %x_189 + OpStore %x_262_phi %277 + OpBranch %267 + %269 = OpLabel + %281 = OpLoad %int %x_180 + %283 = OpSLessThan %bool %281 %int_60 + OpSelectionMerge %284 None + OpBranchConditional %283 %285 %286 + %285 = OpLabel + %287 = OpAccessChain %_ptr_Function_int %data %int_1 + %288 = OpLoad %int %287 + %289 = OpConvertSToF %float %288 + %290 = OpFMul %float %289 %float_0_100000001 + %291 = OpFAdd %float %float_0_5 %290 + OpStore %x_198 %291 + %292 = OpLoad %float %x_198 + OpStore %x_261_phi %292 + OpBranch %284 + %286 = OpLabel + %296 = OpLoad %int %x_180 + %298 = OpSLessThan %bool %296 %int_90 + OpSelectionMerge %299 None + OpBranchConditional %298 %300 %301 + %300 = OpLabel + %302 = OpAccessChain %_ptr_Function_int %data %int_2 + %303 = OpLoad %int %302 + %304 = OpConvertSToF %float %303 + %305 = OpFMul %float %304 %float_0_100000001 + %306 = OpFAdd %float %float_0_5 %305 + OpStore %x_207 %306 + %307 = OpLoad %float %x_207 + OpStore %x_260_phi %307 + OpBranch %299 + %301 = OpLabel + %308 = OpLoad %int %x_180 + %310 = OpSLessThan %bool %308 %int_120 + OpSelectionMerge %311 None + OpBranchConditional %310 %312 %313 + %312 = OpLabel + %314 = OpAccessChain %_ptr_Function_int %data %int_3 + %315 = OpLoad %int %314 + %316 = OpConvertSToF %float %315 + %317 = OpFMul %float %316 %float_0_100000001 + %318 = OpFAdd %float %float_0_5 %317 + OpStore %x_216 %318 + %319 = OpLoad %float %x_216 + OpStore %x_259_phi %319 + OpBranch %311 + %313 = OpLabel + %323 = OpLoad %int %x_180 + %325 = OpSLessThan %bool %323 %int_150 + OpSelectionMerge %326 None + OpBranchConditional %325 %327 %328 + %327 = OpLabel OpKill + %328 = OpLabel + %332 = OpLoad %int %x_180 + %334 = OpSLessThan %bool %332 %int_180 + OpSelectionMerge %335 None + OpBranchConditional %334 %336 %337 + %336 = OpLabel + %339 = OpAccessChain %_ptr_Function_int %data %int_5 + %340 = OpLoad %int %339 + %341 = OpConvertSToF %float %340 + %342 = OpFMul %float %341 %float_0_100000001 + %343 = OpFAdd %float %float_0_5 %342 + OpStore %x_229 %343 + %344 = OpLoad %float %x_229 + OpStore %x_258_phi %344 + OpBranch %335 + %337 = OpLabel + %348 = OpLoad %int %x_180 + %350 = OpSLessThan %bool %348 %int_210 + OpSelectionMerge %351 None + OpBranchConditional %350 %352 %353 + %352 = OpLabel + %355 = OpAccessChain %_ptr_Function_int %data %int_6 + %356 = OpLoad %int %355 + %357 = OpConvertSToF %float %356 + %358 = OpFMul %float %357 %float_0_100000001 + %359 = OpFAdd %float %float_0_5 %358 + OpStore %x_238 %359 + %360 = OpLoad %float %x_238 + OpStore %x_257_phi %360 + OpBranch %351 + %353 = OpLabel + %361 = OpLoad %int %x_180 + %363 = OpSLessThan %bool %361 %int_240 + OpSelectionMerge %364 None + OpBranchConditional %363 %365 %366 + %365 = OpLabel + %368 = OpAccessChain %_ptr_Function_int %data %int_7 + %369 = OpLoad %int %368 + %370 = OpConvertSToF %float %369 + %371 = OpFMul %float %370 %float_0_100000001 + %372 = OpFAdd %float %float_0_5 %371 + OpStore %x_247 %372 + %373 = OpLoad %float %x_247 + OpStore %x_256_phi %373 + OpBranch %364 + %366 = OpLabel + %374 = OpLoad %int %x_180 + %376 = OpSLessThan %bool %374 %int_270 + OpSelectionMerge %377 None + OpBranchConditional %376 %378 %379 + %378 = OpLabel + OpBranch %377 + %379 = OpLabel + OpKill + %377 = OpLabel + %381 = OpAccessChain %_ptr_Function_int %data %int_8 + %382 = OpLoad %int %381 + %383 = OpConvertSToF %float %382 + %384 = OpFMul %float %383 %float_0_100000001 + %385 = OpFAdd %float %float_0_5 %384 + OpStore %x_255 %385 + %386 = OpLoad %float %x_255 + OpStore %x_256_phi %386 + OpBranch %364 + %364 = OpLabel + %387 = OpLoad %float %x_256_phi + OpStore %x_256 %387 + %388 = OpLoad %float %x_256 + OpStore %x_257_phi %388 + OpBranch %351 + %351 = OpLabel + %389 = OpLoad %float %x_257_phi + OpStore %x_257 %389 + %390 = OpLoad %float %x_257 + OpStore %x_258_phi %390 + OpBranch %335 %335 = OpLabel - %339 = OpLoad %int %x_180 - %341 = OpSLessThan %bool %339 %int_180 - OpSelectionMerge %342 None - OpBranchConditional %341 %343 %344 - %343 = OpLabel - %346 = OpAccessChain %_ptr_Function_int %data %int_5 - %347 = OpLoad %int %346 - %348 = OpConvertSToF %float %347 - %349 = OpFMul %float %348 %float_0_100000001 - %350 = OpFAdd %float %float_0_5 %349 - OpStore %x_229 %350 - %351 = OpLoad %float %x_229 - OpStore %x_258_phi %351 - OpBranch %342 - %344 = OpLabel - %355 = OpLoad %int %x_180 - %357 = OpSLessThan %bool %355 %int_210 - OpSelectionMerge %358 None - OpBranchConditional %357 %359 %360 - %359 = OpLabel - %362 = OpAccessChain %_ptr_Function_int %data %int_6 - %363 = OpLoad %int %362 - %364 = OpConvertSToF %float %363 - %365 = OpFMul %float %364 %float_0_100000001 - %366 = OpFAdd %float %float_0_5 %365 - OpStore %x_238 %366 - %367 = OpLoad %float %x_238 - OpStore %x_257_phi %367 - OpBranch %358 - %360 = OpLabel - %368 = OpLoad %int %x_180 - %370 = OpSLessThan %bool %368 %int_240 - OpSelectionMerge %371 None - OpBranchConditional %370 %372 %373 - %372 = OpLabel - %375 = OpAccessChain %_ptr_Function_int %data %int_7 - %376 = OpLoad %int %375 - %377 = OpConvertSToF %float %376 - %378 = OpFMul %float %377 %float_0_100000001 - %379 = OpFAdd %float %float_0_5 %378 - OpStore %x_247 %379 - %380 = OpLoad %float %x_247 - OpStore %x_256_phi %380 - OpBranch %371 - %373 = OpLabel - %381 = OpLoad %int %x_180 - %383 = OpSLessThan %bool %381 %int_270 - OpSelectionMerge %384 None - OpBranchConditional %383 %385 %386 - %385 = OpLabel - OpBranch %384 - %386 = OpLabel - OpKill - %384 = OpLabel - %388 = OpAccessChain %_ptr_Function_int %data %int_8 - %389 = OpLoad %int %388 - %390 = OpConvertSToF %float %389 - %391 = OpFMul %float %390 %float_0_100000001 - %392 = OpFAdd %float %float_0_5 %391 - OpStore %x_255 %392 - %393 = OpLoad %float %x_255 - OpStore %x_256_phi %393 - OpBranch %371 - %371 = OpLabel - %394 = OpLoad %float %x_256_phi - OpStore %x_256 %394 - %395 = OpLoad %float %x_256 - OpStore %x_257_phi %395 - OpBranch %358 - %358 = OpLabel - %396 = OpLoad %float %x_257_phi - OpStore %x_257 %396 - %397 = OpLoad %float %x_257 - OpStore %x_258_phi %397 - OpBranch %342 - %342 = OpLabel - %398 = OpLoad %float %x_258_phi - OpStore %x_258 %398 - OpBranch %333 - %333 = OpLabel - %399 = OpLoad %float %x_258 - OpStore %x_259_phi %399 - OpBranch %318 - %318 = OpLabel - %400 = OpLoad %float %x_259_phi - OpStore %x_259 %400 - %401 = OpLoad %float %x_259 - OpStore %x_260_phi %401 - OpBranch %306 - %306 = OpLabel - %402 = OpLoad %float %x_260_phi - OpStore %x_260 %402 - %403 = OpLoad %float %x_260 - OpStore %x_261_phi %403 - OpBranch %291 - %291 = OpLabel - %404 = OpLoad %float %x_261_phi - OpStore %x_261 %404 - %405 = OpLoad %float %x_261 - OpStore %x_262_phi %405 - OpBranch %274 - %274 = OpLabel - %406 = OpLoad %float %x_262_phi - %408 = OpCompositeConstruct %v4float %406 %406 %406 %float_1 - OpStore %x_GLF_color %408 + %391 = OpLoad %float %x_258_phi + OpStore %x_258 %391 + OpBranch %326 + %326 = OpLabel + %392 = OpLoad %float %x_258 + OpStore %x_259_phi %392 + OpBranch %311 + %311 = OpLabel + %393 = OpLoad %float %x_259_phi + OpStore %x_259 %393 + %394 = OpLoad %float %x_259 + OpStore %x_260_phi %394 + OpBranch %299 + %299 = OpLabel + %395 = OpLoad %float %x_260_phi + OpStore %x_260 %395 + %396 = OpLoad %float %x_260 + OpStore %x_261_phi %396 + OpBranch %284 + %284 = OpLabel + %397 = OpLoad %float %x_261_phi + OpStore %x_261 %397 + %398 = OpLoad %float %x_261 + OpStore %x_262_phi %398 + OpBranch %267 + %267 = OpLabel + %399 = OpLoad %float %x_262_phi + %401 = OpCompositeConstruct %v4float %399 %399 %399 %float_1 + OpStore %x_GLF_color %401 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %409 +%tint_symbol_3 = OpFunction %void None %402 %tint_symbol_1 = OpFunctionParameter %main_out - %413 = OpLabel - %414 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %414 + %406 = OpLabel + %407 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %407 OpReturn OpFunctionEnd %main = OpFunction %void None %15 - %416 = OpLabel - %417 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %417 - %418 = OpFunctionCall %void %main_1 - %420 = OpLoad %v4float %x_GLF_color - %421 = OpCompositeConstruct %main_out %420 - %419 = OpFunctionCall %void %tint_symbol_3 %421 + %409 = OpLabel + %410 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %410 + %411 = OpFunctionCall %void %main_1 + %413 = OpLoad %v4float %x_GLF_color + %414 = OpCompositeConstruct %main_out %413 + %412 = OpFunctionCall %void %tint_symbol_3 %414 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 44[%44] is not post dominated by the back-edge block 115[%115] - %115 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.wgsl.expected.spvasm index 105bea0bd2..4e098fd084 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.wgsl.expected.spvasm @@ -1,12 +1,10 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 422 +; Bound: 419 ; Schema: 0 OpCapability Shader - %167 = OpExtInstImport "GLSL.std.450" + %164 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2 OpExecutionMode %main OriginUpperLeft @@ -148,7 +146,7 @@ SKIP: FAILED %int_8 = OpConstant %int 8 %float_1 = OpConstant %float 1 %main_out = OpTypeStruct %v4float - %409 = OpTypeFunction %void %main_out + %406 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %15 %18 = OpLabel %temp = OpVariable %_ptr_Function__arr_int_uint_10 Function %25 @@ -309,434 +307,424 @@ SKIP: FAILED %44 = OpLabel OpStore %x_63_phi %111 %113 = OpSLessThan %bool %111 %int_10 - OpSelectionMerge %115 None - OpBranchConditional %113 %116 %117 - %116 = OpLabel - OpBranch %115 - %117 = OpLabel - OpBranch %43 - %115 = OpLabel - OpBranch %42 + OpBranchConditional %113 %42 %43 %43 = OpLabel OpStore %x_102_phi %int_0 + OpBranch %115 + %115 = OpLabel + OpLoopMerge %116 %117 None OpBranch %118 %118 = OpLabel - OpLoopMerge %119 %120 None - OpBranch %121 - %121 = OpLabel - %123 = OpLoad %int %x_102_phi - %124 = OpSLessThan %bool %123 %int_10 - OpSelectionMerge %125 None - OpBranchConditional %124 %126 %127 - %126 = OpLabel - OpBranch %125 - %127 = OpLabel - OpBranch %119 - %125 = OpLabel - OpBranch %120 - %120 = OpLabel - %128 = OpAccessChain %_ptr_Function_int %data %123 - %129 = OpLoad %int %128 - %130 = OpAccessChain %_ptr_Function_int %temp %123 - OpStore %130 %129 - %131 = OpIAdd %int %123 %int_1 - OpStore %x_103 %131 - %132 = OpLoad %int %x_103 - OpStore %x_102_phi %132 - OpBranch %118 - %119 = OpLabel + %120 = OpLoad %int %x_102_phi + %121 = OpSLessThan %bool %120 %int_10 + OpSelectionMerge %122 None + OpBranchConditional %121 %123 %124 + %123 = OpLabel + OpBranch %122 + %124 = OpLabel + OpBranch %116 + %122 = OpLabel + OpBranch %117 + %117 = OpLabel + %125 = OpAccessChain %_ptr_Function_int %data %120 + %126 = OpLoad %int %125 + %127 = OpAccessChain %_ptr_Function_int %temp %120 + OpStore %127 %126 + %128 = OpIAdd %int %120 %int_1 + OpStore %x_103 %128 + %129 = OpLoad %int %x_103 + OpStore %x_102_phi %129 + OpBranch %115 + %116 = OpLabel OpStore %x_111_phi %int_1 + OpBranch %130 + %130 = OpLabel + OpLoopMerge %131 %132 None OpBranch %133 %133 = OpLabel - OpLoopMerge %134 %135 None - OpBranch %136 - %136 = OpLabel - %139 = OpLoad %int %x_111_phi - %141 = OpSLessThanEqual %bool %139 %int_9 - OpSelectionMerge %142 None - OpBranchConditional %141 %143 %144 - %143 = OpLabel - OpBranch %142 - %144 = OpLabel - OpBranch %134 - %142 = OpLabel + %136 = OpLoad %int %x_111_phi + %138 = OpSLessThanEqual %bool %136 %int_9 + OpSelectionMerge %139 None + OpBranchConditional %138 %140 %141 + %140 = OpLabel + OpBranch %139 + %141 = OpLabel + OpBranch %131 + %139 = OpLabel OpStore %x_118_phi %int_0 + OpBranch %142 + %142 = OpLabel + OpLoopMerge %143 %144 None OpBranch %145 %145 = OpLabel - OpLoopMerge %146 %147 None - OpBranch %148 - %148 = OpLabel - %157 = OpLoad %int %x_118_phi - %158 = OpSLessThan %bool %157 %int_9 - OpSelectionMerge %159 None - OpBranchConditional %158 %160 %161 - %160 = OpLabel - OpBranch %159 - %161 = OpLabel - OpBranch %146 - %159 = OpLabel - %162 = OpIAdd %int %157 %139 - %163 = OpISub %int %162 %int_1 - %164 = OpIMul %int %int_2 %139 - %165 = OpIAdd %int %157 %164 - %168 = OpISub %int %165 %int_1 - %166 = OpExtInst %int %167 SMin %168 %int_9 - OpStore %x_130_phi %157 - OpStore %x_133_phi %162 - OpStore %x_135_phi %157 + %154 = OpLoad %int %x_118_phi + %155 = OpSLessThan %bool %154 %int_9 + OpSelectionMerge %156 None + OpBranchConditional %155 %157 %158 + %157 = OpLabel + OpBranch %156 + %158 = OpLabel + OpBranch %143 + %156 = OpLabel + %159 = OpIAdd %int %154 %136 + %160 = OpISub %int %159 %int_1 + %161 = OpIMul %int %int_2 %136 + %162 = OpIAdd %int %154 %161 + %165 = OpISub %int %162 %int_1 + %163 = OpExtInst %int %164 SMin %165 %int_9 + OpStore %x_130_phi %154 + OpStore %x_133_phi %159 + OpStore %x_135_phi %154 + OpBranch %166 + %166 = OpLabel + OpLoopMerge %167 %168 None OpBranch %169 %169 = OpLabel - OpLoopMerge %170 %171 None - OpBranch %172 - %172 = OpLabel - %177 = OpLoad %int %x_130_phi - OpStore %x_130 %177 - %178 = OpLoad %int %x_133_phi - %179 = OpLoad %int %x_135_phi - OpStore %x_135 %179 - %180 = OpLoad %int %x_135 - %181 = OpSLessThanEqual %bool %180 %163 - OpSelectionMerge %182 None - OpBranchConditional %181 %183 %182 + %174 = OpLoad %int %x_130_phi + OpStore %x_130 %174 + %175 = OpLoad %int %x_133_phi + %176 = OpLoad %int %x_135_phi + OpStore %x_135 %176 + %177 = OpLoad %int %x_135 + %178 = OpSLessThanEqual %bool %177 %160 + OpSelectionMerge %179 None + OpBranchConditional %178 %180 %179 + %180 = OpLabel + %181 = OpSLessThanEqual %bool %175 %163 + OpBranch %179 + %179 = OpLabel + %182 = OpPhi %bool %178 %169 %181 %180 + OpSelectionMerge %183 None + OpBranchConditional %182 %184 %185 + %184 = OpLabel + OpBranch %183 + %185 = OpLabel + OpBranch %167 %183 = OpLabel - %184 = OpSLessThanEqual %bool %178 %166 - OpBranch %182 - %182 = OpLabel - %185 = OpPhi %bool %181 %172 %184 %183 - OpSelectionMerge %186 None - OpBranchConditional %185 %187 %188 - %187 = OpLabel - OpBranch %186 - %188 = OpLabel - OpBranch %170 - %186 = OpLabel - %189 = OpLoad %int %x_135 - %190 = OpAccessChain %_ptr_Function_int %data %189 - %191 = OpLoad %int %190 - %192 = OpAccessChain %_ptr_Function_int %data %178 - %193 = OpLoad %int %192 - %195 = OpLoad %int %x_130 - %196 = OpCopyObject %int %int_1 - %197 = OpIAdd %int %195 %196 - %194 = OpCopyObject %int %197 - %198 = OpSLessThan %bool %191 %193 - OpSelectionMerge %199 None - OpBranchConditional %198 %200 %201 - %200 = OpLabel - %203 = OpLoad %int %x_135 - %204 = OpCopyObject %int %int_1 - %205 = OpIAdd %int %203 %204 - %202 = OpCopyObject %int %205 - OpStore %x_150 %202 - %206 = OpAccessChain %_ptr_Function_int %data %189 - %207 = OpLoad %int %206 - %208 = OpLoad %int %x_130 - %209 = OpAccessChain %_ptr_Function_int %temp %208 - OpStore %209 %207 - OpStore %x_134_phi %178 - %210 = OpLoad %int %x_150 - OpStore %x_136_phi %210 - OpBranch %199 - %201 = OpLabel - %211 = OpIAdd %int %178 %int_1 - OpStore %x_153 %211 - %212 = OpAccessChain %_ptr_Function_int %data %178 - %213 = OpLoad %int %212 - %214 = OpLoad %int %x_130 - %215 = OpAccessChain %_ptr_Function_int %temp %214 - OpStore %215 %213 - %216 = OpLoad %int %x_153 - OpStore %x_134_phi %216 - %217 = OpLoad %int %x_135 - OpStore %x_136_phi %217 - OpBranch %199 - %199 = OpLabel - %218 = OpLoad %int %x_134_phi - %219 = OpLoad %int %x_136_phi - OpBranch %171 - %171 = OpLabel - OpStore %x_130_phi %194 - OpStore %x_133_phi %218 - OpStore %x_135_phi %219 - OpBranch %169 - %170 = OpLabel - %220 = OpLoad %int %x_130 - OpStore %x_157_phi %220 - %221 = OpLoad %int %x_135 - OpStore %x_160_phi %221 + %186 = OpLoad %int %x_135 + %187 = OpAccessChain %_ptr_Function_int %data %186 + %188 = OpLoad %int %187 + %189 = OpAccessChain %_ptr_Function_int %data %175 + %190 = OpLoad %int %189 + %192 = OpLoad %int %x_130 + %193 = OpCopyObject %int %int_1 + %194 = OpIAdd %int %192 %193 + %191 = OpCopyObject %int %194 + %195 = OpSLessThan %bool %188 %190 + OpSelectionMerge %196 None + OpBranchConditional %195 %197 %198 + %197 = OpLabel + %200 = OpLoad %int %x_135 + %201 = OpCopyObject %int %int_1 + %202 = OpIAdd %int %200 %201 + %199 = OpCopyObject %int %202 + OpStore %x_150 %199 + %203 = OpAccessChain %_ptr_Function_int %data %186 + %204 = OpLoad %int %203 + %205 = OpLoad %int %x_130 + %206 = OpAccessChain %_ptr_Function_int %temp %205 + OpStore %206 %204 + OpStore %x_134_phi %175 + %207 = OpLoad %int %x_150 + OpStore %x_136_phi %207 + OpBranch %196 + %198 = OpLabel + %208 = OpIAdd %int %175 %int_1 + OpStore %x_153 %208 + %209 = OpAccessChain %_ptr_Function_int %data %175 + %210 = OpLoad %int %209 + %211 = OpLoad %int %x_130 + %212 = OpAccessChain %_ptr_Function_int %temp %211 + OpStore %212 %210 + %213 = OpLoad %int %x_153 + OpStore %x_134_phi %213 + %214 = OpLoad %int %x_135 + OpStore %x_136_phi %214 + OpBranch %196 + %196 = OpLabel + %215 = OpLoad %int %x_134_phi + %216 = OpLoad %int %x_136_phi + OpBranch %168 + %168 = OpLabel + OpStore %x_130_phi %191 + OpStore %x_133_phi %215 + OpStore %x_135_phi %216 + OpBranch %166 + %167 = OpLabel + %217 = OpLoad %int %x_130 + OpStore %x_157_phi %217 + %218 = OpLoad %int %x_135 + OpStore %x_160_phi %218 + OpBranch %219 + %219 = OpLabel + OpLoopMerge %220 %221 None OpBranch %222 %222 = OpLabel - OpLoopMerge %223 %224 None - OpBranch %225 - %225 = OpLabel - %228 = OpLoad %int %x_157_phi - %229 = OpLoad %int %x_160_phi - %230 = OpSLessThan %bool %229 %int_10 - OpSelectionMerge %231 None - OpBranchConditional %230 %232 %231 + %225 = OpLoad %int %x_157_phi + %226 = OpLoad %int %x_160_phi + %227 = OpSLessThan %bool %226 %int_10 + OpSelectionMerge %228 None + OpBranchConditional %227 %229 %228 + %229 = OpLabel + %230 = OpSLessThanEqual %bool %226 %160 + OpBranch %228 + %228 = OpLabel + %231 = OpPhi %bool %227 %222 %230 %229 + OpSelectionMerge %232 None + OpBranchConditional %231 %233 %234 + %233 = OpLabel + OpBranch %232 + %234 = OpLabel + OpBranch %220 %232 = OpLabel - %233 = OpSLessThanEqual %bool %229 %163 - OpBranch %231 - %231 = OpLabel - %234 = OpPhi %bool %230 %225 %233 %232 - OpSelectionMerge %235 None - OpBranchConditional %234 %236 %237 - %236 = OpLabel - OpBranch %235 - %237 = OpLabel - OpBranch %223 - %235 = OpLabel - OpBranch %224 - %224 = OpLabel - %238 = OpIAdd %int %228 %int_1 - OpStore %x_158 %238 - %239 = OpIAdd %int %229 %int_1 - OpStore %x_161 %239 - %240 = OpAccessChain %_ptr_Function_int %data %229 - %241 = OpLoad %int %240 - %242 = OpAccessChain %_ptr_Function_int %temp %228 - OpStore %242 %241 - %243 = OpLoad %int %x_158 - OpStore %x_157_phi %243 - %244 = OpLoad %int %x_161 - OpStore %x_160_phi %244 - OpBranch %222 - %223 = OpLabel - OpStore %x_170_phi %157 + OpBranch %221 + %221 = OpLabel + %235 = OpIAdd %int %225 %int_1 + OpStore %x_158 %235 + %236 = OpIAdd %int %226 %int_1 + OpStore %x_161 %236 + %237 = OpAccessChain %_ptr_Function_int %data %226 + %238 = OpLoad %int %237 + %239 = OpAccessChain %_ptr_Function_int %temp %225 + OpStore %239 %238 + %240 = OpLoad %int %x_158 + OpStore %x_157_phi %240 + %241 = OpLoad %int %x_161 + OpStore %x_160_phi %241 + OpBranch %219 + %220 = OpLabel + OpStore %x_170_phi %154 + OpBranch %242 + %242 = OpLabel + OpLoopMerge %243 %244 None OpBranch %245 %245 = OpLabel - OpLoopMerge %246 %247 None - OpBranch %248 - %248 = OpLabel - %250 = OpLoad %int %x_170_phi - %251 = OpSLessThanEqual %bool %250 %166 - OpSelectionMerge %252 None - OpBranchConditional %251 %253 %254 - %253 = OpLabel - OpBranch %252 - %254 = OpLabel - OpBranch %246 - %252 = OpLabel - OpBranch %247 - %247 = OpLabel - %255 = OpAccessChain %_ptr_Function_int %temp %250 - %256 = OpLoad %int %255 - %257 = OpAccessChain %_ptr_Function_int %data %250 - OpStore %257 %256 - %258 = OpIAdd %int %250 %int_1 - OpStore %x_171 %258 - %259 = OpLoad %int %x_171 - OpStore %x_170_phi %259 - OpBranch %245 - %246 = OpLabel - OpBranch %147 - %147 = OpLabel - OpStore %x_118_phi %165 - OpBranch %145 - %146 = OpLabel - OpBranch %135 - %135 = OpLabel - %260 = OpIMul %int %int_2 %139 - OpStore %x_112 %260 - %261 = OpLoad %int %x_112 - OpStore %x_111_phi %261 - OpBranch %133 - %134 = OpLabel - %268 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %269 = OpLoad %float %268 - %270 = OpConvertFToS %int %269 - OpStore %x_180 %270 - %271 = OpLoad %int %x_180 - %273 = OpSLessThan %bool %271 %int_30 - OpSelectionMerge %274 None - OpBranchConditional %273 %275 %276 - %275 = OpLabel - %277 = OpAccessChain %_ptr_Function_int %data %int_0 - %278 = OpLoad %int %277 - %280 = OpConvertSToF %float %278 - %282 = OpFMul %float %280 %float_0_100000001 - %283 = OpFAdd %float %float_0_5 %282 - OpStore %x_189 %283 - %284 = OpLoad %float %x_189 - OpStore %x_262_phi %284 - OpBranch %274 - %276 = OpLabel - %288 = OpLoad %int %x_180 - %290 = OpSLessThan %bool %288 %int_60 - OpSelectionMerge %291 None - OpBranchConditional %290 %292 %293 - %292 = OpLabel - %294 = OpAccessChain %_ptr_Function_int %data %int_1 - %295 = OpLoad %int %294 - %296 = OpConvertSToF %float %295 - %297 = OpFMul %float %296 %float_0_100000001 - %298 = OpFAdd %float %float_0_5 %297 - OpStore %x_198 %298 - %299 = OpLoad %float %x_198 - OpStore %x_261_phi %299 - OpBranch %291 - %293 = OpLabel - %303 = OpLoad %int %x_180 - %305 = OpSLessThan %bool %303 %int_90 - OpSelectionMerge %306 None - OpBranchConditional %305 %307 %308 - %307 = OpLabel - %309 = OpAccessChain %_ptr_Function_int %data %int_2 - %310 = OpLoad %int %309 - %311 = OpConvertSToF %float %310 - %312 = OpFMul %float %311 %float_0_100000001 - %313 = OpFAdd %float %float_0_5 %312 - OpStore %x_207 %313 - %314 = OpLoad %float %x_207 - OpStore %x_260_phi %314 - OpBranch %306 - %308 = OpLabel - %315 = OpLoad %int %x_180 - %317 = OpSLessThan %bool %315 %int_120 - OpSelectionMerge %318 None - OpBranchConditional %317 %319 %320 - %319 = OpLabel - %321 = OpAccessChain %_ptr_Function_int %data %int_3 - %322 = OpLoad %int %321 - %323 = OpConvertSToF %float %322 - %324 = OpFMul %float %323 %float_0_100000001 - %325 = OpFAdd %float %float_0_5 %324 - OpStore %x_216 %325 - %326 = OpLoad %float %x_216 - OpStore %x_259_phi %326 - OpBranch %318 - %320 = OpLabel - %330 = OpLoad %int %x_180 - %332 = OpSLessThan %bool %330 %int_150 - OpSelectionMerge %333 None - OpBranchConditional %332 %334 %335 - %334 = OpLabel + %247 = OpLoad %int %x_170_phi + %248 = OpSLessThanEqual %bool %247 %163 + OpSelectionMerge %249 None + OpBranchConditional %248 %250 %251 + %250 = OpLabel + OpBranch %249 + %251 = OpLabel + OpBranch %243 + %249 = OpLabel + OpBranch %244 + %244 = OpLabel + %252 = OpAccessChain %_ptr_Function_int %temp %247 + %253 = OpLoad %int %252 + %254 = OpAccessChain %_ptr_Function_int %data %247 + OpStore %254 %253 + %255 = OpIAdd %int %247 %int_1 + OpStore %x_171 %255 + %256 = OpLoad %int %x_171 + OpStore %x_170_phi %256 + OpBranch %242 + %243 = OpLabel + OpBranch %144 + %144 = OpLabel + OpStore %x_118_phi %162 + OpBranch %142 + %143 = OpLabel + OpBranch %132 + %132 = OpLabel + %257 = OpIMul %int %int_2 %136 + OpStore %x_112 %257 + %258 = OpLoad %int %x_112 + OpStore %x_111_phi %258 + OpBranch %130 + %131 = OpLabel + %265 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %266 = OpLoad %float %265 + %267 = OpConvertFToS %int %266 + OpStore %x_180 %267 + %268 = OpLoad %int %x_180 + %270 = OpSLessThan %bool %268 %int_30 + OpSelectionMerge %271 None + OpBranchConditional %270 %272 %273 + %272 = OpLabel + %274 = OpAccessChain %_ptr_Function_int %data %int_0 + %275 = OpLoad %int %274 + %277 = OpConvertSToF %float %275 + %279 = OpFMul %float %277 %float_0_100000001 + %280 = OpFAdd %float %float_0_5 %279 + OpStore %x_189 %280 + %281 = OpLoad %float %x_189 + OpStore %x_262_phi %281 + OpBranch %271 + %273 = OpLabel + %285 = OpLoad %int %x_180 + %287 = OpSLessThan %bool %285 %int_60 + OpSelectionMerge %288 None + OpBranchConditional %287 %289 %290 + %289 = OpLabel + %291 = OpAccessChain %_ptr_Function_int %data %int_1 + %292 = OpLoad %int %291 + %293 = OpConvertSToF %float %292 + %294 = OpFMul %float %293 %float_0_100000001 + %295 = OpFAdd %float %float_0_5 %294 + OpStore %x_198 %295 + %296 = OpLoad %float %x_198 + OpStore %x_261_phi %296 + OpBranch %288 + %290 = OpLabel + %300 = OpLoad %int %x_180 + %302 = OpSLessThan %bool %300 %int_90 + OpSelectionMerge %303 None + OpBranchConditional %302 %304 %305 + %304 = OpLabel + %306 = OpAccessChain %_ptr_Function_int %data %int_2 + %307 = OpLoad %int %306 + %308 = OpConvertSToF %float %307 + %309 = OpFMul %float %308 %float_0_100000001 + %310 = OpFAdd %float %float_0_5 %309 + OpStore %x_207 %310 + %311 = OpLoad %float %x_207 + OpStore %x_260_phi %311 + OpBranch %303 + %305 = OpLabel + %312 = OpLoad %int %x_180 + %314 = OpSLessThan %bool %312 %int_120 + OpSelectionMerge %315 None + OpBranchConditional %314 %316 %317 + %316 = OpLabel + %318 = OpAccessChain %_ptr_Function_int %data %int_3 + %319 = OpLoad %int %318 + %320 = OpConvertSToF %float %319 + %321 = OpFMul %float %320 %float_0_100000001 + %322 = OpFAdd %float %float_0_5 %321 + OpStore %x_216 %322 + %323 = OpLoad %float %x_216 + OpStore %x_259_phi %323 + OpBranch %315 + %317 = OpLabel + %327 = OpLoad %int %x_180 + %329 = OpSLessThan %bool %327 %int_150 + OpSelectionMerge %330 None + OpBranchConditional %329 %331 %332 + %331 = OpLabel OpKill - %335 = OpLabel - %339 = OpLoad %int %x_180 - %341 = OpSLessThan %bool %339 %int_180 - OpSelectionMerge %342 None - OpBranchConditional %341 %343 %344 - %343 = OpLabel - %346 = OpAccessChain %_ptr_Function_int %data %int_5 - %347 = OpLoad %int %346 - %348 = OpConvertSToF %float %347 - %349 = OpFMul %float %348 %float_0_100000001 - %350 = OpFAdd %float %float_0_5 %349 - OpStore %x_229 %350 - %351 = OpLoad %float %x_229 - OpStore %x_258_phi %351 - OpBranch %342 - %344 = OpLabel - %355 = OpLoad %int %x_180 - %357 = OpSLessThan %bool %355 %int_210 - OpSelectionMerge %358 None - OpBranchConditional %357 %359 %360 - %359 = OpLabel - %362 = OpAccessChain %_ptr_Function_int %data %int_6 - %363 = OpLoad %int %362 - %364 = OpConvertSToF %float %363 - %365 = OpFMul %float %364 %float_0_100000001 - %366 = OpFAdd %float %float_0_5 %365 - OpStore %x_238 %366 - %367 = OpLoad %float %x_238 - OpStore %x_257_phi %367 - OpBranch %358 - %360 = OpLabel - %368 = OpLoad %int %x_180 - %370 = OpSLessThan %bool %368 %int_240 - OpSelectionMerge %371 None - OpBranchConditional %370 %372 %373 - %372 = OpLabel - %375 = OpAccessChain %_ptr_Function_int %data %int_7 - %376 = OpLoad %int %375 - %377 = OpConvertSToF %float %376 - %378 = OpFMul %float %377 %float_0_100000001 - %379 = OpFAdd %float %float_0_5 %378 - OpStore %x_247 %379 - %380 = OpLoad %float %x_247 - OpStore %x_256_phi %380 - OpBranch %371 - %373 = OpLabel - %381 = OpLoad %int %x_180 - %383 = OpSLessThan %bool %381 %int_270 - OpSelectionMerge %384 None - OpBranchConditional %383 %385 %386 - %385 = OpLabel - OpBranch %384 - %386 = OpLabel + %332 = OpLabel + %336 = OpLoad %int %x_180 + %338 = OpSLessThan %bool %336 %int_180 + OpSelectionMerge %339 None + OpBranchConditional %338 %340 %341 + %340 = OpLabel + %343 = OpAccessChain %_ptr_Function_int %data %int_5 + %344 = OpLoad %int %343 + %345 = OpConvertSToF %float %344 + %346 = OpFMul %float %345 %float_0_100000001 + %347 = OpFAdd %float %float_0_5 %346 + OpStore %x_229 %347 + %348 = OpLoad %float %x_229 + OpStore %x_258_phi %348 + OpBranch %339 + %341 = OpLabel + %352 = OpLoad %int %x_180 + %354 = OpSLessThan %bool %352 %int_210 + OpSelectionMerge %355 None + OpBranchConditional %354 %356 %357 + %356 = OpLabel + %359 = OpAccessChain %_ptr_Function_int %data %int_6 + %360 = OpLoad %int %359 + %361 = OpConvertSToF %float %360 + %362 = OpFMul %float %361 %float_0_100000001 + %363 = OpFAdd %float %float_0_5 %362 + OpStore %x_238 %363 + %364 = OpLoad %float %x_238 + OpStore %x_257_phi %364 + OpBranch %355 + %357 = OpLabel + %365 = OpLoad %int %x_180 + %367 = OpSLessThan %bool %365 %int_240 + OpSelectionMerge %368 None + OpBranchConditional %367 %369 %370 + %369 = OpLabel + %372 = OpAccessChain %_ptr_Function_int %data %int_7 + %373 = OpLoad %int %372 + %374 = OpConvertSToF %float %373 + %375 = OpFMul %float %374 %float_0_100000001 + %376 = OpFAdd %float %float_0_5 %375 + OpStore %x_247 %376 + %377 = OpLoad %float %x_247 + OpStore %x_256_phi %377 + OpBranch %368 + %370 = OpLabel + %378 = OpLoad %int %x_180 + %380 = OpSLessThan %bool %378 %int_270 + OpSelectionMerge %381 None + OpBranchConditional %380 %382 %383 + %382 = OpLabel + OpBranch %381 + %383 = OpLabel OpKill - %384 = OpLabel - %388 = OpAccessChain %_ptr_Function_int %data %int_8 - %389 = OpLoad %int %388 - %390 = OpConvertSToF %float %389 - %391 = OpFMul %float %390 %float_0_100000001 - %392 = OpFAdd %float %float_0_5 %391 - OpStore %x_255 %392 - %393 = OpLoad %float %x_255 - OpStore %x_256_phi %393 - OpBranch %371 - %371 = OpLabel - %394 = OpLoad %float %x_256_phi - OpStore %x_256 %394 - %395 = OpLoad %float %x_256 - OpStore %x_257_phi %395 - OpBranch %358 - %358 = OpLabel - %396 = OpLoad %float %x_257_phi - OpStore %x_257 %396 - %397 = OpLoad %float %x_257 - OpStore %x_258_phi %397 - OpBranch %342 - %342 = OpLabel - %398 = OpLoad %float %x_258_phi - OpStore %x_258 %398 - OpBranch %333 - %333 = OpLabel - %399 = OpLoad %float %x_258 - OpStore %x_259_phi %399 - OpBranch %318 - %318 = OpLabel - %400 = OpLoad %float %x_259_phi - OpStore %x_259 %400 - %401 = OpLoad %float %x_259 - OpStore %x_260_phi %401 - OpBranch %306 - %306 = OpLabel - %402 = OpLoad %float %x_260_phi - OpStore %x_260 %402 - %403 = OpLoad %float %x_260 - OpStore %x_261_phi %403 - OpBranch %291 - %291 = OpLabel - %404 = OpLoad %float %x_261_phi - OpStore %x_261 %404 - %405 = OpLoad %float %x_261 - OpStore %x_262_phi %405 - OpBranch %274 - %274 = OpLabel - %406 = OpLoad %float %x_262_phi - %408 = OpCompositeConstruct %v4float %406 %406 %406 %float_1 - OpStore %x_GLF_color %408 + %381 = OpLabel + %385 = OpAccessChain %_ptr_Function_int %data %int_8 + %386 = OpLoad %int %385 + %387 = OpConvertSToF %float %386 + %388 = OpFMul %float %387 %float_0_100000001 + %389 = OpFAdd %float %float_0_5 %388 + OpStore %x_255 %389 + %390 = OpLoad %float %x_255 + OpStore %x_256_phi %390 + OpBranch %368 + %368 = OpLabel + %391 = OpLoad %float %x_256_phi + OpStore %x_256 %391 + %392 = OpLoad %float %x_256 + OpStore %x_257_phi %392 + OpBranch %355 + %355 = OpLabel + %393 = OpLoad %float %x_257_phi + OpStore %x_257 %393 + %394 = OpLoad %float %x_257 + OpStore %x_258_phi %394 + OpBranch %339 + %339 = OpLabel + %395 = OpLoad %float %x_258_phi + OpStore %x_258 %395 + OpBranch %330 + %330 = OpLabel + %396 = OpLoad %float %x_258 + OpStore %x_259_phi %396 + OpBranch %315 + %315 = OpLabel + %397 = OpLoad %float %x_259_phi + OpStore %x_259 %397 + %398 = OpLoad %float %x_259 + OpStore %x_260_phi %398 + OpBranch %303 + %303 = OpLabel + %399 = OpLoad %float %x_260_phi + OpStore %x_260 %399 + %400 = OpLoad %float %x_260 + OpStore %x_261_phi %400 + OpBranch %288 + %288 = OpLabel + %401 = OpLoad %float %x_261_phi + OpStore %x_261 %401 + %402 = OpLoad %float %x_261 + OpStore %x_262_phi %402 + OpBranch %271 + %271 = OpLabel + %403 = OpLoad %float %x_262_phi + %405 = OpCompositeConstruct %v4float %403 %403 %403 %float_1 + OpStore %x_GLF_color %405 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %409 +%tint_symbol_3 = OpFunction %void None %406 %tint_symbol_1 = OpFunctionParameter %main_out - %413 = OpLabel - %414 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %414 + %410 = OpLabel + %411 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %411 OpReturn OpFunctionEnd %main = OpFunction %void None %15 - %416 = OpLabel - %417 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %417 - %418 = OpFunctionCall %void %main_1 - %420 = OpLoad %v4float %x_GLF_color - %421 = OpCompositeConstruct %main_out %420 - %419 = OpFunctionCall %void %tint_symbol_3 %421 + %413 = OpLabel + %414 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %414 + %415 = OpFunctionCall %void %main_1 + %417 = OpLoad %v4float %x_GLF_color + %418 = OpCompositeConstruct %main_out %417 + %416 = OpFunctionCall %void %tint_symbol_3 %418 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 44[%44] is not post dominated by the back-edge block 115[%115] - %115 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.spvasm index 4df39a6a63..446ddb557e 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.spvasm @@ -1,12 +1,10 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 416 +; Bound: 409 ; Schema: 0 OpCapability Shader - %177 = OpExtInstImport "GLSL.std.450" + %173 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2 OpExecutionMode %main OriginUpperLeft @@ -86,12 +84,12 @@ SKIP: FAILED %bool = OpTypeBool %_ptr_Private_int = OpTypePointer Private %int %int_10 = OpConstant %int 10 - %132 = OpTypeFunction %void + %128 = OpTypeFunction %void %int_0 = OpConstant %int 0 %int_9 = OpConstant %int 9 %int_2 = OpConstant %int 2 %_ptr_Function_float = OpTypePointer Function %float - %201 = OpConstantNull %float + %197 = OpConstantNull %float %uint_0 = OpConstant %uint 0 %_ptr_Uniform_float = OpTypePointer Uniform %float %int_n5 = OpConstant %int -5 @@ -121,7 +119,7 @@ SKIP: FAILED %v3float = OpTypeVector %float 3 %float_1 = OpConstant %float 1 %main_out = OpTypeStruct %v4float - %403 = OpTypeFunction %void %main_out + %396 = OpTypeFunction %void %main_out %merge_i1_i1_i1_ = OpFunction %void None %23 %from = OpFunctionParameter %_ptr_Function_int %mid = OpFunctionParameter %_ptr_Function_int @@ -148,129 +146,119 @@ SKIP: FAILED %51 = OpLoad %int %j %53 = OpLoad %int %to %54 = OpSLessThanEqual %bool %48 %50 - OpSelectionMerge %56 None - OpBranchConditional %54 %57 %56 - %57 = OpLabel - %58 = OpSLessThanEqual %bool %51 %53 - OpBranch %56 - %56 = OpLabel - %59 = OpPhi %bool %54 %47 %58 %57 - OpSelectionMerge %60 None - OpBranchConditional %59 %61 %62 - %61 = OpLabel - OpBranch %60 - %62 = OpLabel - OpBranch %45 + %56 = OpSLessThanEqual %bool %51 %53 + %57 = OpLogicalAnd %bool %54 %56 + OpSelectionMerge %58 None + OpBranchConditional %57 %59 %60 + %59 = OpLabel + OpBranch %58 %60 = OpLabel - %63 = OpLoad %int %i - %65 = OpAccessChain %_ptr_Private_int %data %63 - %66 = OpLoad %int %65 - %67 = OpLoad %int %j - %68 = OpAccessChain %_ptr_Private_int %data %67 - %69 = OpLoad %int %68 - %70 = OpSLessThan %bool %66 %69 - OpSelectionMerge %71 None - OpBranchConditional %70 %72 %73 - %72 = OpLabel - %74 = OpLoad %int %k + OpBranch %45 + %58 = OpLabel + %61 = OpLoad %int %i + %63 = OpAccessChain %_ptr_Private_int %data %61 + %64 = OpLoad %int %63 + %65 = OpLoad %int %j + %66 = OpAccessChain %_ptr_Private_int %data %65 + %67 = OpLoad %int %66 + %68 = OpSLessThan %bool %64 %67 + OpSelectionMerge %69 None + OpBranchConditional %68 %70 %71 + %70 = OpLabel + %72 = OpLoad %int %k + %73 = OpIAdd %int %72 %int_1 + OpStore %k %73 + %74 = OpLoad %int %i %75 = OpIAdd %int %74 %int_1 - OpStore %k %75 - %76 = OpLoad %int %i - %77 = OpIAdd %int %76 %int_1 - OpStore %i %77 - %78 = OpAccessChain %_ptr_Private_int %data %76 - %79 = OpLoad %int %78 - %80 = OpAccessChain %_ptr_Private_int %temp %74 - OpStore %80 %79 - OpBranch %71 - %73 = OpLabel - %81 = OpLoad %int %k - %82 = OpIAdd %int %81 %int_1 - OpStore %k %82 - %83 = OpLoad %int %j - %84 = OpIAdd %int %83 %int_1 - OpStore %j %84 - %85 = OpAccessChain %_ptr_Private_int %data %83 - %86 = OpLoad %int %85 - %87 = OpAccessChain %_ptr_Private_int %temp %81 - OpStore %87 %86 - OpBranch %71 + OpStore %i %75 + %76 = OpAccessChain %_ptr_Private_int %data %74 + %77 = OpLoad %int %76 + %78 = OpAccessChain %_ptr_Private_int %temp %72 + OpStore %78 %77 + OpBranch %69 %71 = OpLabel + %79 = OpLoad %int %k + %80 = OpIAdd %int %79 %int_1 + OpStore %k %80 + %81 = OpLoad %int %j + %82 = OpIAdd %int %81 %int_1 + OpStore %j %82 + %83 = OpAccessChain %_ptr_Private_int %data %81 + %84 = OpLoad %int %83 + %85 = OpAccessChain %_ptr_Private_int %temp %79 + OpStore %85 %84 + OpBranch %69 + %69 = OpLabel OpBranch %46 %46 = OpLabel OpBranch %44 %45 = OpLabel + OpBranch %86 + %86 = OpLabel + OpLoopMerge %87 %88 None + OpBranch %89 + %89 = OpLabel + %90 = OpLoad %int %i + %91 = OpLoad %int %i + %93 = OpLoad %int %mid + %95 = OpSLessThan %bool %90 %int_10 + %96 = OpSLessThanEqual %bool %91 %93 + %97 = OpLogicalAnd %bool %95 %96 + OpSelectionMerge %98 None + OpBranchConditional %97 %99 %100 + %99 = OpLabel + OpBranch %98 + %100 = OpLabel + OpBranch %87 + %98 = OpLabel + %101 = OpLoad %int %k + %102 = OpIAdd %int %101 %int_1 + OpStore %k %102 + %103 = OpLoad %int %i + %104 = OpIAdd %int %103 %int_1 + OpStore %i %104 + %105 = OpAccessChain %_ptr_Private_int %data %103 + %106 = OpLoad %int %105 + %107 = OpAccessChain %_ptr_Private_int %temp %101 + OpStore %107 %106 OpBranch %88 %88 = OpLabel - OpLoopMerge %89 %90 None - OpBranch %91 - %91 = OpLabel - %92 = OpLoad %int %i - %93 = OpLoad %int %i - %95 = OpLoad %int %mid - %97 = OpSLessThan %bool %92 %int_10 - OpSelectionMerge %98 None - OpBranchConditional %97 %99 %98 - %99 = OpLabel - %100 = OpSLessThanEqual %bool %93 %95 - OpBranch %98 - %98 = OpLabel - %101 = OpPhi %bool %97 %91 %100 %99 - OpSelectionMerge %102 None - OpBranchConditional %101 %103 %104 - %103 = OpLabel - OpBranch %102 - %104 = OpLabel - OpBranch %89 - %102 = OpLabel - %105 = OpLoad %int %k - %106 = OpIAdd %int %105 %int_1 - OpStore %k %106 - %107 = OpLoad %int %i - %108 = OpIAdd %int %107 %int_1 - OpStore %i %108 - %109 = OpAccessChain %_ptr_Private_int %data %107 - %110 = OpLoad %int %109 - %111 = OpAccessChain %_ptr_Private_int %temp %105 - OpStore %111 %110 - OpBranch %90 - %90 = OpLabel - OpBranch %88 - %89 = OpLabel - %113 = OpLoad %int %from - OpStore %i_1 %113 - OpBranch %114 - %114 = OpLabel - OpLoopMerge %115 %116 None - OpBranch %117 - %117 = OpLabel - %118 = OpLoad %int %i_1 - %120 = OpLoad %int %to - %121 = OpSLessThanEqual %bool %118 %120 - OpSelectionMerge %122 None - OpBranchConditional %121 %123 %124 - %123 = OpLabel - OpBranch %122 - %124 = OpLabel - OpBranch %115 - %122 = OpLabel - %125 = OpLoad %int %i_1 + OpBranch %86 + %87 = OpLabel + %109 = OpLoad %int %from + OpStore %i_1 %109 + OpBranch %110 + %110 = OpLabel + OpLoopMerge %111 %112 None + OpBranch %113 + %113 = OpLabel + %114 = OpLoad %int %i_1 + %116 = OpLoad %int %to + %117 = OpSLessThanEqual %bool %114 %116 + OpSelectionMerge %118 None + OpBranchConditional %117 %119 %120 + %119 = OpLabel + OpBranch %118 + %120 = OpLabel + OpBranch %111 + %118 = OpLabel + %121 = OpLoad %int %i_1 + %122 = OpLoad %int %i_1 + %123 = OpAccessChain %_ptr_Private_int %temp %122 + %124 = OpLoad %int %123 + %125 = OpAccessChain %_ptr_Private_int %data %121 + OpStore %125 %124 + OpBranch %112 + %112 = OpLabel %126 = OpLoad %int %i_1 - %127 = OpAccessChain %_ptr_Private_int %temp %126 - %128 = OpLoad %int %127 - %129 = OpAccessChain %_ptr_Private_int %data %125 - OpStore %129 %128 - OpBranch %116 - %116 = OpLabel - %130 = OpLoad %int %i_1 - %131 = OpIAdd %int %130 %int_1 - OpStore %i_1 %131 - OpBranch %114 - %115 = OpLabel + %127 = OpIAdd %int %126 %int_1 + OpStore %i_1 %127 + OpBranch %110 + %111 = OpLabel OpReturn OpFunctionEnd - %mergeSort_ = OpFunction %void None %132 - %134 = OpLabel + %mergeSort_ = OpFunction %void None %128 + %130 = OpLabel %low = OpVariable %_ptr_Function_int Function %32 %high = OpVariable %_ptr_Function_int Function %32 %m = OpVariable %_ptr_Function_int Function %32 @@ -284,366 +272,356 @@ SKIP: FAILED OpStore %low %int_0 OpStore %high %int_9 OpStore %m %int_1 - OpBranch %147 - %147 = OpLabel - OpLoopMerge %148 %149 None + OpBranch %143 + %143 = OpLabel + OpLoopMerge %144 %145 None + OpBranch %146 + %146 = OpLabel + %147 = OpLoad %int %m + %148 = OpLoad %int %high + %149 = OpSLessThanEqual %bool %147 %148 + OpSelectionMerge %150 None + OpBranchConditional %149 %151 %152 + %151 = OpLabel OpBranch %150 + %152 = OpLabel + OpBranch %144 %150 = OpLabel - %151 = OpLoad %int %m - %152 = OpLoad %int %high - %153 = OpSLessThanEqual %bool %151 %152 - OpSelectionMerge %154 None - OpBranchConditional %153 %155 %156 - %155 = OpLabel + %153 = OpLoad %int %low + OpStore %i_2 %153 OpBranch %154 - %156 = OpLabel - OpBranch %148 %154 = OpLabel - %157 = OpLoad %int %low - OpStore %i_2 %157 - OpBranch %158 - %158 = OpLabel - OpLoopMerge %159 %160 None + OpLoopMerge %155 %156 None + OpBranch %157 + %157 = OpLabel + %158 = OpLoad %int %i_2 + %159 = OpLoad %int %high + %160 = OpSLessThan %bool %158 %159 + OpSelectionMerge %161 None + OpBranchConditional %160 %162 %163 + %162 = OpLabel OpBranch %161 + %163 = OpLabel + OpBranch %155 %161 = OpLabel - %162 = OpLoad %int %i_2 - %163 = OpLoad %int %high - %164 = OpSLessThan %bool %162 %163 - OpSelectionMerge %165 None - OpBranchConditional %164 %166 %167 - %166 = OpLabel - OpBranch %165 - %167 = OpLabel - OpBranch %159 - %165 = OpLabel - %168 = OpLoad %int %i_2 - OpStore %from_1 %168 + %164 = OpLoad %int %i_2 + OpStore %from_1 %164 + %165 = OpLoad %int %i_2 + %166 = OpLoad %int %m + %167 = OpIAdd %int %165 %166 + %168 = OpISub %int %167 %int_1 + OpStore %mid_1 %168 %169 = OpLoad %int %i_2 %170 = OpLoad %int %m - %171 = OpIAdd %int %169 %170 - %172 = OpISub %int %171 %int_1 - OpStore %mid_1 %172 - %173 = OpLoad %int %i_2 - %174 = OpLoad %int %m - %175 = OpLoad %int %high - %179 = OpIMul %int %int_2 %174 - %180 = OpIAdd %int %173 %179 - %181 = OpISub %int %180 %int_1 - %176 = OpExtInst %int %177 SMin %181 %175 - OpStore %to_1 %176 - %182 = OpLoad %int %from_1 - OpStore %param %182 - %183 = OpLoad %int %mid_1 - OpStore %param_1 %183 - %184 = OpLoad %int %to_1 - OpStore %param_2 %184 - %185 = OpFunctionCall %void %merge_i1_i1_i1_ %param %param_1 %param_2 - OpBranch %160 - %160 = OpLabel + %171 = OpLoad %int %high + %175 = OpIMul %int %int_2 %170 + %176 = OpIAdd %int %169 %175 + %177 = OpISub %int %176 %int_1 + %172 = OpExtInst %int %173 SMin %177 %171 + OpStore %to_1 %172 + %178 = OpLoad %int %from_1 + OpStore %param %178 + %179 = OpLoad %int %mid_1 + OpStore %param_1 %179 + %180 = OpLoad %int %to_1 + OpStore %param_2 %180 + %181 = OpFunctionCall %void %merge_i1_i1_i1_ %param %param_1 %param_2 + OpBranch %156 + %156 = OpLabel + %185 = OpLoad %int %m + %186 = OpLoad %int %i_2 + %187 = OpIMul %int %int_2 %185 + %188 = OpIAdd %int %186 %187 + OpStore %i_2 %188 + OpBranch %154 + %155 = OpLabel + OpBranch %145 + %145 = OpLabel %189 = OpLoad %int %m - %190 = OpLoad %int %i_2 - %191 = OpIMul %int %int_2 %189 - %192 = OpIAdd %int %190 %191 - OpStore %i_2 %192 - OpBranch %158 - %159 = OpLabel - OpBranch %149 - %149 = OpLabel - %193 = OpLoad %int %m - %194 = OpIMul %int %int_2 %193 - OpStore %m %194 - OpBranch %147 - %148 = OpLabel + %190 = OpIMul %int %int_2 %189 + OpStore %m %190 + OpBranch %143 + %144 = OpLabel OpReturn OpFunctionEnd - %main_1 = OpFunction %void None %132 - %196 = OpLabel + %main_1 = OpFunction %void None %128 + %192 = OpLabel %i_3 = OpVariable %_ptr_Function_int Function %32 %j_1 = OpVariable %_ptr_Function_int Function %32 - %grey = OpVariable %_ptr_Function_float Function %201 - %204 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 - %205 = OpLoad %float %204 - %206 = OpConvertFToS %int %205 - OpStore %i_3 %206 - OpBranch %207 - %207 = OpLabel - OpLoopMerge %208 %209 None - OpBranch %210 + %grey = OpVariable %_ptr_Function_float Function %197 + %200 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 + %201 = OpLoad %float %200 + %202 = OpConvertFToS %int %201 + OpStore %i_3 %202 + OpBranch %203 + %203 = OpLabel + OpLoopMerge %204 %205 None + OpBranch %206 + %206 = OpLabel + %207 = OpLoad %int %i_3 + OpSelectionMerge %208 None + OpSwitch %207 %209 9 %210 8 %211 7 %212 6 %213 5 %214 4 %215 3 %216 2 %217 1 %218 0 %219 %210 = OpLabel - %211 = OpLoad %int %i_3 - OpSelectionMerge %212 None - OpSwitch %211 %213 9 %214 8 %215 7 %216 6 %217 5 %218 4 %219 3 %220 2 %221 1 %222 0 %223 + %220 = OpLoad %int %i_3 + %221 = OpAccessChain %_ptr_Private_int %data %220 + OpStore %221 %int_n5 + OpBranch %208 + %211 = OpLabel + %223 = OpLoad %int %i_3 + %224 = OpAccessChain %_ptr_Private_int %data %223 + OpStore %224 %int_n4 + OpBranch %208 + %212 = OpLabel + %226 = OpLoad %int %i_3 + %227 = OpAccessChain %_ptr_Private_int %data %226 + OpStore %227 %int_n3 + OpBranch %208 + %213 = OpLabel + %229 = OpLoad %int %i_3 + %230 = OpAccessChain %_ptr_Private_int %data %229 + OpStore %230 %int_n2 + OpBranch %208 %214 = OpLabel - %224 = OpLoad %int %i_3 - %225 = OpAccessChain %_ptr_Private_int %data %224 - OpStore %225 %int_n5 - OpBranch %212 + %232 = OpLoad %int %i_3 + %233 = OpAccessChain %_ptr_Private_int %data %232 + OpStore %233 %int_n1 + OpBranch %208 %215 = OpLabel - %227 = OpLoad %int %i_3 - %228 = OpAccessChain %_ptr_Private_int %data %227 - OpStore %228 %int_n4 - OpBranch %212 + %235 = OpLoad %int %i_3 + %236 = OpAccessChain %_ptr_Private_int %data %235 + OpStore %236 %int_0 + OpBranch %208 %216 = OpLabel - %230 = OpLoad %int %i_3 - %231 = OpAccessChain %_ptr_Private_int %data %230 - OpStore %231 %int_n3 - OpBranch %212 + %237 = OpLoad %int %i_3 + %238 = OpAccessChain %_ptr_Private_int %data %237 + OpStore %238 %int_1 + OpBranch %208 %217 = OpLabel - %233 = OpLoad %int %i_3 - %234 = OpAccessChain %_ptr_Private_int %data %233 - OpStore %234 %int_n2 - OpBranch %212 - %218 = OpLabel - %236 = OpLoad %int %i_3 - %237 = OpAccessChain %_ptr_Private_int %data %236 - OpStore %237 %int_n1 - OpBranch %212 - %219 = OpLabel %239 = OpLoad %int %i_3 %240 = OpAccessChain %_ptr_Private_int %data %239 - OpStore %240 %int_0 - OpBranch %212 - %220 = OpLabel + OpStore %240 %int_2 + OpBranch %208 + %218 = OpLabel %241 = OpLoad %int %i_3 %242 = OpAccessChain %_ptr_Private_int %data %241 - OpStore %242 %int_1 - OpBranch %212 - %221 = OpLabel - %243 = OpLoad %int %i_3 - %244 = OpAccessChain %_ptr_Private_int %data %243 - OpStore %244 %int_2 - OpBranch %212 - %222 = OpLabel - %245 = OpLoad %int %i_3 - %246 = OpAccessChain %_ptr_Private_int %data %245 - OpStore %246 %int_3 - OpBranch %212 - %223 = OpLabel - %248 = OpLoad %int %i_3 - %249 = OpAccessChain %_ptr_Private_int %data %248 - OpStore %249 %int_4 - OpBranch %212 - %213 = OpLabel - OpBranch %212 - %212 = OpLabel - %251 = OpLoad %int %i_3 - %252 = OpIAdd %int %251 %int_1 - OpStore %i_3 %252 - OpBranch %209 - %209 = OpLabel - %253 = OpLoad %int %i_3 - %254 = OpSLessThan %bool %253 %int_10 - OpSelectionMerge %255 None - OpBranchConditional %254 %256 %257 - %256 = OpLabel - OpBranch %255 - %257 = OpLabel + OpStore %242 %int_3 + OpBranch %208 + %219 = OpLabel + %244 = OpLoad %int %i_3 + %245 = OpAccessChain %_ptr_Private_int %data %244 + OpStore %245 %int_4 + OpBranch %208 + %209 = OpLabel OpBranch %208 - %255 = OpLabel - OpBranch %207 %208 = OpLabel + %247 = OpLoad %int %i_3 + %248 = OpIAdd %int %247 %int_1 + OpStore %i_3 %248 + OpBranch %205 + %205 = OpLabel + %249 = OpLoad %int %i_3 + %250 = OpSLessThan %bool %249 %int_10 + OpBranchConditional %250 %203 %204 + %204 = OpLabel OpStore %j_1 %int_0 - OpBranch %258 + OpBranch %251 + %251 = OpLabel + OpLoopMerge %252 %253 None + OpBranch %254 + %254 = OpLabel + %255 = OpLoad %int %j_1 + %256 = OpSLessThan %bool %255 %int_10 + OpSelectionMerge %257 None + OpBranchConditional %256 %258 %259 %258 = OpLabel - OpLoopMerge %259 %260 None - OpBranch %261 - %261 = OpLabel - %262 = OpLoad %int %j_1 - %263 = OpSLessThan %bool %262 %int_10 - OpSelectionMerge %264 None - OpBranchConditional %263 %265 %266 - %265 = OpLabel - OpBranch %264 - %266 = OpLabel - OpBranch %259 - %264 = OpLabel - %267 = OpLoad %int %j_1 - %268 = OpLoad %int %j_1 - %269 = OpAccessChain %_ptr_Private_int %data %268 - %270 = OpLoad %int %269 - %271 = OpAccessChain %_ptr_Private_int %temp %267 - OpStore %271 %270 - OpBranch %260 - %260 = OpLabel - %272 = OpLoad %int %j_1 - %273 = OpIAdd %int %272 %int_1 - OpStore %j_1 %273 - OpBranch %258 + OpBranch %257 %259 = OpLabel - %274 = OpFunctionCall %void %mergeSort_ - %277 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %278 = OpLoad %float %277 - %279 = OpConvertFToS %int %278 - %281 = OpSLessThan %bool %279 %int_30 - OpSelectionMerge %282 None - OpBranchConditional %281 %283 %284 - %283 = OpLabel - %285 = OpAccessChain %_ptr_Private_int %data %int_0 - %286 = OpLoad %int %285 - %288 = OpConvertSToF %float %286 - %290 = OpFDiv %float %288 %float_10 - %291 = OpFAdd %float %float_0_5 %290 - OpStore %grey %291 - OpBranch %282 - %284 = OpLabel - %292 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %293 = OpLoad %float %292 - %294 = OpConvertFToS %int %293 - %296 = OpSLessThan %bool %294 %int_60 - OpSelectionMerge %297 None - OpBranchConditional %296 %298 %299 - %298 = OpLabel - %300 = OpAccessChain %_ptr_Private_int %data %int_1 - %301 = OpLoad %int %300 - %302 = OpConvertSToF %float %301 - %303 = OpFDiv %float %302 %float_10 - %304 = OpFAdd %float %float_0_5 %303 - OpStore %grey %304 - OpBranch %297 - %299 = OpLabel - %305 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %306 = OpLoad %float %305 - %307 = OpConvertFToS %int %306 - %309 = OpSLessThan %bool %307 %int_90 - OpSelectionMerge %310 None - OpBranchConditional %309 %311 %312 - %311 = OpLabel - %313 = OpAccessChain %_ptr_Private_int %data %int_2 - %314 = OpLoad %int %313 - %315 = OpConvertSToF %float %314 - %316 = OpFDiv %float %315 %float_10 - %317 = OpFAdd %float %float_0_5 %316 - OpStore %grey %317 - OpBranch %310 - %312 = OpLabel - %318 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %319 = OpLoad %float %318 - %320 = OpConvertFToS %int %319 - %322 = OpSLessThan %bool %320 %int_120 - OpSelectionMerge %323 None - OpBranchConditional %322 %324 %325 - %324 = OpLabel - %326 = OpAccessChain %_ptr_Private_int %data %int_3 - %327 = OpLoad %int %326 - %328 = OpConvertSToF %float %327 - %329 = OpFDiv %float %328 %float_10 - %330 = OpFAdd %float %float_0_5 %329 - OpStore %grey %330 - OpBranch %323 - %325 = OpLabel - %331 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %332 = OpLoad %float %331 - %333 = OpConvertFToS %int %332 - %335 = OpSLessThan %bool %333 %int_150 - OpSelectionMerge %336 None - OpBranchConditional %335 %337 %338 - %337 = OpLabel + OpBranch %252 + %257 = OpLabel + %260 = OpLoad %int %j_1 + %261 = OpLoad %int %j_1 + %262 = OpAccessChain %_ptr_Private_int %data %261 + %263 = OpLoad %int %262 + %264 = OpAccessChain %_ptr_Private_int %temp %260 + OpStore %264 %263 + OpBranch %253 + %253 = OpLabel + %265 = OpLoad %int %j_1 + %266 = OpIAdd %int %265 %int_1 + OpStore %j_1 %266 + OpBranch %251 + %252 = OpLabel + %267 = OpFunctionCall %void %mergeSort_ + %270 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %271 = OpLoad %float %270 + %272 = OpConvertFToS %int %271 + %274 = OpSLessThan %bool %272 %int_30 + OpSelectionMerge %275 None + OpBranchConditional %274 %276 %277 + %276 = OpLabel + %278 = OpAccessChain %_ptr_Private_int %data %int_0 + %279 = OpLoad %int %278 + %281 = OpConvertSToF %float %279 + %283 = OpFDiv %float %281 %float_10 + %284 = OpFAdd %float %float_0_5 %283 + OpStore %grey %284 + OpBranch %275 + %277 = OpLabel + %285 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %286 = OpLoad %float %285 + %287 = OpConvertFToS %int %286 + %289 = OpSLessThan %bool %287 %int_60 + OpSelectionMerge %290 None + OpBranchConditional %289 %291 %292 + %291 = OpLabel + %293 = OpAccessChain %_ptr_Private_int %data %int_1 + %294 = OpLoad %int %293 + %295 = OpConvertSToF %float %294 + %296 = OpFDiv %float %295 %float_10 + %297 = OpFAdd %float %float_0_5 %296 + OpStore %grey %297 + OpBranch %290 + %292 = OpLabel + %298 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %299 = OpLoad %float %298 + %300 = OpConvertFToS %int %299 + %302 = OpSLessThan %bool %300 %int_90 + OpSelectionMerge %303 None + OpBranchConditional %302 %304 %305 + %304 = OpLabel + %306 = OpAccessChain %_ptr_Private_int %data %int_2 + %307 = OpLoad %int %306 + %308 = OpConvertSToF %float %307 + %309 = OpFDiv %float %308 %float_10 + %310 = OpFAdd %float %float_0_5 %309 + OpStore %grey %310 + OpBranch %303 + %305 = OpLabel + %311 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %312 = OpLoad %float %311 + %313 = OpConvertFToS %int %312 + %315 = OpSLessThan %bool %313 %int_120 + OpSelectionMerge %316 None + OpBranchConditional %315 %317 %318 + %317 = OpLabel + %319 = OpAccessChain %_ptr_Private_int %data %int_3 + %320 = OpLoad %int %319 + %321 = OpConvertSToF %float %320 + %322 = OpFDiv %float %321 %float_10 + %323 = OpFAdd %float %float_0_5 %322 + OpStore %grey %323 + OpBranch %316 + %318 = OpLabel + %324 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %325 = OpLoad %float %324 + %326 = OpConvertFToS %int %325 + %328 = OpSLessThan %bool %326 %int_150 + OpSelectionMerge %329 None + OpBranchConditional %328 %330 %331 + %330 = OpLabel OpKill + %331 = OpLabel + %332 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %333 = OpLoad %float %332 + %334 = OpConvertFToS %int %333 + %336 = OpSLessThan %bool %334 %int_180 + OpSelectionMerge %337 None + OpBranchConditional %336 %338 %339 %338 = OpLabel - %339 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %340 = OpLoad %float %339 - %341 = OpConvertFToS %int %340 - %343 = OpSLessThan %bool %341 %int_180 - OpSelectionMerge %344 None - OpBranchConditional %343 %345 %346 - %345 = OpLabel - %348 = OpAccessChain %_ptr_Private_int %data %int_5 - %349 = OpLoad %int %348 - %350 = OpConvertSToF %float %349 - %351 = OpFDiv %float %350 %float_10 - %352 = OpFAdd %float %float_0_5 %351 - OpStore %grey %352 - OpBranch %344 - %346 = OpLabel - %353 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %354 = OpLoad %float %353 - %355 = OpConvertFToS %int %354 - %357 = OpSLessThan %bool %355 %int_210 - OpSelectionMerge %358 None - OpBranchConditional %357 %359 %360 - %359 = OpLabel - %362 = OpAccessChain %_ptr_Private_int %data %int_6 - %363 = OpLoad %int %362 - %364 = OpConvertSToF %float %363 - %365 = OpFDiv %float %364 %float_10 - %366 = OpFAdd %float %float_0_5 %365 - OpStore %grey %366 - OpBranch %358 - %360 = OpLabel - %367 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %368 = OpLoad %float %367 - %369 = OpConvertFToS %int %368 - %371 = OpSLessThan %bool %369 %int_240 - OpSelectionMerge %372 None - OpBranchConditional %371 %373 %374 - %373 = OpLabel - %376 = OpAccessChain %_ptr_Private_int %data %int_7 - %377 = OpLoad %int %376 - %378 = OpConvertSToF %float %377 - %379 = OpFDiv %float %378 %float_10 - %380 = OpFAdd %float %float_0_5 %379 - OpStore %grey %380 - OpBranch %372 - %374 = OpLabel - %381 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %382 = OpLoad %float %381 - %383 = OpConvertFToS %int %382 - %385 = OpSLessThan %bool %383 %int_270 - OpSelectionMerge %386 None - OpBranchConditional %385 %387 %388 - %387 = OpLabel - %390 = OpAccessChain %_ptr_Private_int %data %int_8 - %391 = OpLoad %int %390 - %392 = OpConvertSToF %float %391 - %393 = OpFDiv %float %392 %float_10 - %394 = OpFAdd %float %float_0_5 %393 - OpStore %grey %394 - OpBranch %386 - %388 = OpLabel + %341 = OpAccessChain %_ptr_Private_int %data %int_5 + %342 = OpLoad %int %341 + %343 = OpConvertSToF %float %342 + %344 = OpFDiv %float %343 %float_10 + %345 = OpFAdd %float %float_0_5 %344 + OpStore %grey %345 + OpBranch %337 + %339 = OpLabel + %346 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %347 = OpLoad %float %346 + %348 = OpConvertFToS %int %347 + %350 = OpSLessThan %bool %348 %int_210 + OpSelectionMerge %351 None + OpBranchConditional %350 %352 %353 + %352 = OpLabel + %355 = OpAccessChain %_ptr_Private_int %data %int_6 + %356 = OpLoad %int %355 + %357 = OpConvertSToF %float %356 + %358 = OpFDiv %float %357 %float_10 + %359 = OpFAdd %float %float_0_5 %358 + OpStore %grey %359 + OpBranch %351 + %353 = OpLabel + %360 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %361 = OpLoad %float %360 + %362 = OpConvertFToS %int %361 + %364 = OpSLessThan %bool %362 %int_240 + OpSelectionMerge %365 None + OpBranchConditional %364 %366 %367 + %366 = OpLabel + %369 = OpAccessChain %_ptr_Private_int %data %int_7 + %370 = OpLoad %int %369 + %371 = OpConvertSToF %float %370 + %372 = OpFDiv %float %371 %float_10 + %373 = OpFAdd %float %float_0_5 %372 + OpStore %grey %373 + OpBranch %365 + %367 = OpLabel + %374 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %375 = OpLoad %float %374 + %376 = OpConvertFToS %int %375 + %378 = OpSLessThan %bool %376 %int_270 + OpSelectionMerge %379 None + OpBranchConditional %378 %380 %381 + %380 = OpLabel + %383 = OpAccessChain %_ptr_Private_int %data %int_8 + %384 = OpLoad %int %383 + %385 = OpConvertSToF %float %384 + %386 = OpFDiv %float %385 %float_10 + %387 = OpFAdd %float %float_0_5 %386 + OpStore %grey %387 + OpBranch %379 + %381 = OpLabel OpKill - %386 = OpLabel - OpBranch %372 - %372 = OpLabel - OpBranch %358 - %358 = OpLabel - OpBranch %344 - %344 = OpLabel - OpBranch %336 - %336 = OpLabel - OpBranch %323 - %323 = OpLabel - OpBranch %310 - %310 = OpLabel - OpBranch %297 - %297 = OpLabel - OpBranch %282 - %282 = OpLabel - %395 = OpLoad %float %grey - %397 = OpCompositeConstruct %v3float %395 %395 %395 - %398 = OpCompositeExtract %float %397 0 - %399 = OpCompositeExtract %float %397 1 - %400 = OpCompositeExtract %float %397 2 - %402 = OpCompositeConstruct %v4float %398 %399 %400 %float_1 - OpStore %x_GLF_color %402 + %379 = OpLabel + OpBranch %365 + %365 = OpLabel + OpBranch %351 + %351 = OpLabel + OpBranch %337 + %337 = OpLabel + OpBranch %329 + %329 = OpLabel + OpBranch %316 + %316 = OpLabel + OpBranch %303 + %303 = OpLabel + OpBranch %290 + %290 = OpLabel + OpBranch %275 + %275 = OpLabel + %388 = OpLoad %float %grey + %390 = OpCompositeConstruct %v3float %388 %388 %388 + %391 = OpCompositeExtract %float %390 0 + %392 = OpCompositeExtract %float %390 1 + %393 = OpCompositeExtract %float %390 2 + %395 = OpCompositeConstruct %v4float %391 %392 %393 %float_1 + OpStore %x_GLF_color %395 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %403 +%tint_symbol_3 = OpFunction %void None %396 %tint_symbol_1 = OpFunctionParameter %main_out - %407 = OpLabel - %408 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %408 + %400 = OpLabel + %401 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %401 OpReturn OpFunctionEnd - %main = OpFunction %void None %132 - %410 = OpLabel - %411 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %411 - %412 = OpFunctionCall %void %main_1 - %414 = OpLoad %v4float %x_GLF_color - %415 = OpCompositeConstruct %main_out %414 - %413 = OpFunctionCall %void %tint_symbol_3 %415 + %main = OpFunction %void None %128 + %403 = OpLabel + %404 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %404 + %405 = OpFunctionCall %void %main_1 + %407 = OpLoad %v4float %x_GLF_color + %408 = OpCompositeConstruct %main_out %407 + %406 = OpFunctionCall %void %tint_symbol_3 %408 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 209[%209] is not post dominated by the back-edge block 255[%255] - %255 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.wgsl.expected.spvasm index 4df39a6a63..f7dffbeb75 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 416 +; Bound: 413 ; Schema: 0 OpCapability Shader %177 = OpExtInstImport "GLSL.std.450" @@ -121,7 +119,7 @@ SKIP: FAILED %v3float = OpTypeVector %float 3 %float_1 = OpConstant %float 1 %main_out = OpTypeStruct %v4float - %403 = OpTypeFunction %void %main_out + %400 = OpTypeFunction %void %main_out %merge_i1_i1_i1_ = OpFunction %void None %23 %from = OpFunctionParameter %_ptr_Function_int %mid = OpFunctionParameter %_ptr_Function_int @@ -433,217 +431,207 @@ SKIP: FAILED %209 = OpLabel %253 = OpLoad %int %i_3 %254 = OpSLessThan %bool %253 %int_10 - OpSelectionMerge %255 None - OpBranchConditional %254 %256 %257 - %256 = OpLabel - OpBranch %255 - %257 = OpLabel - OpBranch %208 - %255 = OpLabel - OpBranch %207 + OpBranchConditional %254 %207 %208 %208 = OpLabel OpStore %j_1 %int_0 + OpBranch %255 + %255 = OpLabel + OpLoopMerge %256 %257 None OpBranch %258 %258 = OpLabel - OpLoopMerge %259 %260 None + %259 = OpLoad %int %j_1 + %260 = OpSLessThan %bool %259 %int_10 + OpSelectionMerge %261 None + OpBranchConditional %260 %262 %263 + %262 = OpLabel OpBranch %261 + %263 = OpLabel + OpBranch %256 %261 = OpLabel - %262 = OpLoad %int %j_1 - %263 = OpSLessThan %bool %262 %int_10 - OpSelectionMerge %264 None - OpBranchConditional %263 %265 %266 - %265 = OpLabel - OpBranch %264 - %266 = OpLabel - OpBranch %259 - %264 = OpLabel - %267 = OpLoad %int %j_1 - %268 = OpLoad %int %j_1 - %269 = OpAccessChain %_ptr_Private_int %data %268 - %270 = OpLoad %int %269 - %271 = OpAccessChain %_ptr_Private_int %temp %267 - OpStore %271 %270 - OpBranch %260 - %260 = OpLabel - %272 = OpLoad %int %j_1 - %273 = OpIAdd %int %272 %int_1 - OpStore %j_1 %273 - OpBranch %258 - %259 = OpLabel - %274 = OpFunctionCall %void %mergeSort_ - %277 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %278 = OpLoad %float %277 - %279 = OpConvertFToS %int %278 - %281 = OpSLessThan %bool %279 %int_30 - OpSelectionMerge %282 None - OpBranchConditional %281 %283 %284 - %283 = OpLabel - %285 = OpAccessChain %_ptr_Private_int %data %int_0 - %286 = OpLoad %int %285 - %288 = OpConvertSToF %float %286 - %290 = OpFDiv %float %288 %float_10 - %291 = OpFAdd %float %float_0_5 %290 - OpStore %grey %291 - OpBranch %282 - %284 = OpLabel - %292 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %293 = OpLoad %float %292 - %294 = OpConvertFToS %int %293 - %296 = OpSLessThan %bool %294 %int_60 - OpSelectionMerge %297 None - OpBranchConditional %296 %298 %299 - %298 = OpLabel - %300 = OpAccessChain %_ptr_Private_int %data %int_1 - %301 = OpLoad %int %300 - %302 = OpConvertSToF %float %301 - %303 = OpFDiv %float %302 %float_10 - %304 = OpFAdd %float %float_0_5 %303 - OpStore %grey %304 - OpBranch %297 - %299 = OpLabel - %305 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %306 = OpLoad %float %305 - %307 = OpConvertFToS %int %306 - %309 = OpSLessThan %bool %307 %int_90 - OpSelectionMerge %310 None - OpBranchConditional %309 %311 %312 - %311 = OpLabel - %313 = OpAccessChain %_ptr_Private_int %data %int_2 - %314 = OpLoad %int %313 - %315 = OpConvertSToF %float %314 - %316 = OpFDiv %float %315 %float_10 - %317 = OpFAdd %float %float_0_5 %316 - OpStore %grey %317 - OpBranch %310 - %312 = OpLabel - %318 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %319 = OpLoad %float %318 - %320 = OpConvertFToS %int %319 - %322 = OpSLessThan %bool %320 %int_120 - OpSelectionMerge %323 None - OpBranchConditional %322 %324 %325 - %324 = OpLabel - %326 = OpAccessChain %_ptr_Private_int %data %int_3 - %327 = OpLoad %int %326 - %328 = OpConvertSToF %float %327 - %329 = OpFDiv %float %328 %float_10 - %330 = OpFAdd %float %float_0_5 %329 - OpStore %grey %330 - OpBranch %323 - %325 = OpLabel - %331 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %332 = OpLoad %float %331 - %333 = OpConvertFToS %int %332 - %335 = OpSLessThan %bool %333 %int_150 - OpSelectionMerge %336 None - OpBranchConditional %335 %337 %338 - %337 = OpLabel + %264 = OpLoad %int %j_1 + %265 = OpLoad %int %j_1 + %266 = OpAccessChain %_ptr_Private_int %data %265 + %267 = OpLoad %int %266 + %268 = OpAccessChain %_ptr_Private_int %temp %264 + OpStore %268 %267 + OpBranch %257 + %257 = OpLabel + %269 = OpLoad %int %j_1 + %270 = OpIAdd %int %269 %int_1 + OpStore %j_1 %270 + OpBranch %255 + %256 = OpLabel + %271 = OpFunctionCall %void %mergeSort_ + %274 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %275 = OpLoad %float %274 + %276 = OpConvertFToS %int %275 + %278 = OpSLessThan %bool %276 %int_30 + OpSelectionMerge %279 None + OpBranchConditional %278 %280 %281 + %280 = OpLabel + %282 = OpAccessChain %_ptr_Private_int %data %int_0 + %283 = OpLoad %int %282 + %285 = OpConvertSToF %float %283 + %287 = OpFDiv %float %285 %float_10 + %288 = OpFAdd %float %float_0_5 %287 + OpStore %grey %288 + OpBranch %279 + %281 = OpLabel + %289 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %290 = OpLoad %float %289 + %291 = OpConvertFToS %int %290 + %293 = OpSLessThan %bool %291 %int_60 + OpSelectionMerge %294 None + OpBranchConditional %293 %295 %296 + %295 = OpLabel + %297 = OpAccessChain %_ptr_Private_int %data %int_1 + %298 = OpLoad %int %297 + %299 = OpConvertSToF %float %298 + %300 = OpFDiv %float %299 %float_10 + %301 = OpFAdd %float %float_0_5 %300 + OpStore %grey %301 + OpBranch %294 + %296 = OpLabel + %302 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %303 = OpLoad %float %302 + %304 = OpConvertFToS %int %303 + %306 = OpSLessThan %bool %304 %int_90 + OpSelectionMerge %307 None + OpBranchConditional %306 %308 %309 + %308 = OpLabel + %310 = OpAccessChain %_ptr_Private_int %data %int_2 + %311 = OpLoad %int %310 + %312 = OpConvertSToF %float %311 + %313 = OpFDiv %float %312 %float_10 + %314 = OpFAdd %float %float_0_5 %313 + OpStore %grey %314 + OpBranch %307 + %309 = OpLabel + %315 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %316 = OpLoad %float %315 + %317 = OpConvertFToS %int %316 + %319 = OpSLessThan %bool %317 %int_120 + OpSelectionMerge %320 None + OpBranchConditional %319 %321 %322 + %321 = OpLabel + %323 = OpAccessChain %_ptr_Private_int %data %int_3 + %324 = OpLoad %int %323 + %325 = OpConvertSToF %float %324 + %326 = OpFDiv %float %325 %float_10 + %327 = OpFAdd %float %float_0_5 %326 + OpStore %grey %327 + OpBranch %320 + %322 = OpLabel + %328 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %329 = OpLoad %float %328 + %330 = OpConvertFToS %int %329 + %332 = OpSLessThan %bool %330 %int_150 + OpSelectionMerge %333 None + OpBranchConditional %332 %334 %335 + %334 = OpLabel OpKill - %338 = OpLabel - %339 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %340 = OpLoad %float %339 - %341 = OpConvertFToS %int %340 - %343 = OpSLessThan %bool %341 %int_180 - OpSelectionMerge %344 None - OpBranchConditional %343 %345 %346 - %345 = OpLabel - %348 = OpAccessChain %_ptr_Private_int %data %int_5 - %349 = OpLoad %int %348 - %350 = OpConvertSToF %float %349 - %351 = OpFDiv %float %350 %float_10 - %352 = OpFAdd %float %float_0_5 %351 - OpStore %grey %352 - OpBranch %344 - %346 = OpLabel - %353 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %354 = OpLoad %float %353 - %355 = OpConvertFToS %int %354 - %357 = OpSLessThan %bool %355 %int_210 - OpSelectionMerge %358 None - OpBranchConditional %357 %359 %360 - %359 = OpLabel - %362 = OpAccessChain %_ptr_Private_int %data %int_6 - %363 = OpLoad %int %362 - %364 = OpConvertSToF %float %363 - %365 = OpFDiv %float %364 %float_10 - %366 = OpFAdd %float %float_0_5 %365 - OpStore %grey %366 - OpBranch %358 - %360 = OpLabel - %367 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %368 = OpLoad %float %367 - %369 = OpConvertFToS %int %368 - %371 = OpSLessThan %bool %369 %int_240 - OpSelectionMerge %372 None - OpBranchConditional %371 %373 %374 - %373 = OpLabel - %376 = OpAccessChain %_ptr_Private_int %data %int_7 - %377 = OpLoad %int %376 - %378 = OpConvertSToF %float %377 - %379 = OpFDiv %float %378 %float_10 - %380 = OpFAdd %float %float_0_5 %379 - OpStore %grey %380 - OpBranch %372 - %374 = OpLabel - %381 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %382 = OpLoad %float %381 - %383 = OpConvertFToS %int %382 - %385 = OpSLessThan %bool %383 %int_270 - OpSelectionMerge %386 None - OpBranchConditional %385 %387 %388 - %387 = OpLabel - %390 = OpAccessChain %_ptr_Private_int %data %int_8 - %391 = OpLoad %int %390 - %392 = OpConvertSToF %float %391 - %393 = OpFDiv %float %392 %float_10 - %394 = OpFAdd %float %float_0_5 %393 - OpStore %grey %394 - OpBranch %386 - %388 = OpLabel + %335 = OpLabel + %336 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %337 = OpLoad %float %336 + %338 = OpConvertFToS %int %337 + %340 = OpSLessThan %bool %338 %int_180 + OpSelectionMerge %341 None + OpBranchConditional %340 %342 %343 + %342 = OpLabel + %345 = OpAccessChain %_ptr_Private_int %data %int_5 + %346 = OpLoad %int %345 + %347 = OpConvertSToF %float %346 + %348 = OpFDiv %float %347 %float_10 + %349 = OpFAdd %float %float_0_5 %348 + OpStore %grey %349 + OpBranch %341 + %343 = OpLabel + %350 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %351 = OpLoad %float %350 + %352 = OpConvertFToS %int %351 + %354 = OpSLessThan %bool %352 %int_210 + OpSelectionMerge %355 None + OpBranchConditional %354 %356 %357 + %356 = OpLabel + %359 = OpAccessChain %_ptr_Private_int %data %int_6 + %360 = OpLoad %int %359 + %361 = OpConvertSToF %float %360 + %362 = OpFDiv %float %361 %float_10 + %363 = OpFAdd %float %float_0_5 %362 + OpStore %grey %363 + OpBranch %355 + %357 = OpLabel + %364 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %365 = OpLoad %float %364 + %366 = OpConvertFToS %int %365 + %368 = OpSLessThan %bool %366 %int_240 + OpSelectionMerge %369 None + OpBranchConditional %368 %370 %371 + %370 = OpLabel + %373 = OpAccessChain %_ptr_Private_int %data %int_7 + %374 = OpLoad %int %373 + %375 = OpConvertSToF %float %374 + %376 = OpFDiv %float %375 %float_10 + %377 = OpFAdd %float %float_0_5 %376 + OpStore %grey %377 + OpBranch %369 + %371 = OpLabel + %378 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %379 = OpLoad %float %378 + %380 = OpConvertFToS %int %379 + %382 = OpSLessThan %bool %380 %int_270 + OpSelectionMerge %383 None + OpBranchConditional %382 %384 %385 + %384 = OpLabel + %387 = OpAccessChain %_ptr_Private_int %data %int_8 + %388 = OpLoad %int %387 + %389 = OpConvertSToF %float %388 + %390 = OpFDiv %float %389 %float_10 + %391 = OpFAdd %float %float_0_5 %390 + OpStore %grey %391 + OpBranch %383 + %385 = OpLabel OpKill - %386 = OpLabel - OpBranch %372 - %372 = OpLabel - OpBranch %358 - %358 = OpLabel - OpBranch %344 - %344 = OpLabel - OpBranch %336 - %336 = OpLabel - OpBranch %323 - %323 = OpLabel - OpBranch %310 - %310 = OpLabel - OpBranch %297 - %297 = OpLabel - OpBranch %282 - %282 = OpLabel - %395 = OpLoad %float %grey - %397 = OpCompositeConstruct %v3float %395 %395 %395 - %398 = OpCompositeExtract %float %397 0 - %399 = OpCompositeExtract %float %397 1 - %400 = OpCompositeExtract %float %397 2 - %402 = OpCompositeConstruct %v4float %398 %399 %400 %float_1 - OpStore %x_GLF_color %402 + %383 = OpLabel + OpBranch %369 + %369 = OpLabel + OpBranch %355 + %355 = OpLabel + OpBranch %341 + %341 = OpLabel + OpBranch %333 + %333 = OpLabel + OpBranch %320 + %320 = OpLabel + OpBranch %307 + %307 = OpLabel + OpBranch %294 + %294 = OpLabel + OpBranch %279 + %279 = OpLabel + %392 = OpLoad %float %grey + %394 = OpCompositeConstruct %v3float %392 %392 %392 + %395 = OpCompositeExtract %float %394 0 + %396 = OpCompositeExtract %float %394 1 + %397 = OpCompositeExtract %float %394 2 + %399 = OpCompositeConstruct %v4float %395 %396 %397 %float_1 + OpStore %x_GLF_color %399 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %403 +%tint_symbol_3 = OpFunction %void None %400 %tint_symbol_1 = OpFunctionParameter %main_out - %407 = OpLabel - %408 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %408 + %404 = OpLabel + %405 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %405 OpReturn OpFunctionEnd %main = OpFunction %void None %132 - %410 = OpLabel - %411 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %411 - %412 = OpFunctionCall %void %main_1 - %414 = OpLoad %v4float %x_GLF_color - %415 = OpCompositeConstruct %main_out %414 - %413 = OpFunctionCall %void %tint_symbol_3 %415 + %407 = OpLabel + %408 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %408 + %409 = OpFunctionCall %void %main_1 + %411 = OpLoad %v4float %x_GLF_color + %412 = OpCompositeConstruct %main_out %411 + %410 = OpFunctionCall %void %tint_symbol_3 %412 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 209[%209] is not post dominated by the back-edge block 255[%255] - %255 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.spvasm index e2ae2d94e1..91687068e9 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.spvasm @@ -1,12 +1,10 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 440 +; Bound: 433 ; Schema: 0 OpCapability Shader - %177 = OpExtInstImport "GLSL.std.450" + %173 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2 OpExecutionMode %main OriginUpperLeft @@ -87,12 +85,12 @@ SKIP: FAILED %bool = OpTypeBool %_ptr_Private_int = OpTypePointer Private %int %int_10 = OpConstant %int 10 - %132 = OpTypeFunction %void + %128 = OpTypeFunction %void %int_0 = OpConstant %int 0 %int_9 = OpConstant %int 9 %int_2 = OpConstant %int 2 %_ptr_Function_float = OpTypePointer Function %float - %201 = OpConstantNull %float + %197 = OpConstantNull %float %uint_0 = OpConstant %uint 0 %_ptr_Uniform_float = OpTypePointer Uniform %float %int_n5 = OpConstant %int -5 @@ -120,14 +118,14 @@ SKIP: FAILED %int_7 = OpConstant %int 7 %true = OpConstantTrue %bool %_ptr_Function_bool = OpTypePointer Function %bool - %393 = OpConstantNull %bool + %386 = OpConstantNull %bool %int_270 = OpConstant %int 270 %int_8 = OpConstant %int 8 %false = OpConstantFalse %bool %float_0 = OpConstant %float 0 %v3float = OpTypeVector %float 3 %main_out = OpTypeStruct %v4float - %427 = OpTypeFunction %void %main_out + %420 = OpTypeFunction %void %main_out %merge_i1_i1_i1_ = OpFunction %void None %23 %from = OpFunctionParameter %_ptr_Function_int %mid = OpFunctionParameter %_ptr_Function_int @@ -154,129 +152,119 @@ SKIP: FAILED %51 = OpLoad %int %j %53 = OpLoad %int %to %54 = OpSLessThanEqual %bool %48 %50 - OpSelectionMerge %56 None - OpBranchConditional %54 %57 %56 - %57 = OpLabel - %58 = OpSLessThanEqual %bool %51 %53 - OpBranch %56 - %56 = OpLabel - %59 = OpPhi %bool %54 %47 %58 %57 - OpSelectionMerge %60 None - OpBranchConditional %59 %61 %62 - %61 = OpLabel - OpBranch %60 - %62 = OpLabel - OpBranch %45 + %56 = OpSLessThanEqual %bool %51 %53 + %57 = OpLogicalAnd %bool %54 %56 + OpSelectionMerge %58 None + OpBranchConditional %57 %59 %60 + %59 = OpLabel + OpBranch %58 %60 = OpLabel - %63 = OpLoad %int %i - %65 = OpAccessChain %_ptr_Private_int %data %63 - %66 = OpLoad %int %65 - %67 = OpLoad %int %j - %68 = OpAccessChain %_ptr_Private_int %data %67 - %69 = OpLoad %int %68 - %70 = OpSLessThan %bool %66 %69 - OpSelectionMerge %71 None - OpBranchConditional %70 %72 %73 - %72 = OpLabel - %74 = OpLoad %int %k + OpBranch %45 + %58 = OpLabel + %61 = OpLoad %int %i + %63 = OpAccessChain %_ptr_Private_int %data %61 + %64 = OpLoad %int %63 + %65 = OpLoad %int %j + %66 = OpAccessChain %_ptr_Private_int %data %65 + %67 = OpLoad %int %66 + %68 = OpSLessThan %bool %64 %67 + OpSelectionMerge %69 None + OpBranchConditional %68 %70 %71 + %70 = OpLabel + %72 = OpLoad %int %k + %73 = OpIAdd %int %72 %int_1 + OpStore %k %73 + %74 = OpLoad %int %i %75 = OpIAdd %int %74 %int_1 - OpStore %k %75 - %76 = OpLoad %int %i - %77 = OpIAdd %int %76 %int_1 - OpStore %i %77 - %78 = OpAccessChain %_ptr_Private_int %data %76 - %79 = OpLoad %int %78 - %80 = OpAccessChain %_ptr_Private_int %temp %74 - OpStore %80 %79 - OpBranch %71 - %73 = OpLabel - %81 = OpLoad %int %k - %82 = OpIAdd %int %81 %int_1 - OpStore %k %82 - %83 = OpLoad %int %j - %84 = OpIAdd %int %83 %int_1 - OpStore %j %84 - %85 = OpAccessChain %_ptr_Private_int %data %83 - %86 = OpLoad %int %85 - %87 = OpAccessChain %_ptr_Private_int %temp %81 - OpStore %87 %86 - OpBranch %71 + OpStore %i %75 + %76 = OpAccessChain %_ptr_Private_int %data %74 + %77 = OpLoad %int %76 + %78 = OpAccessChain %_ptr_Private_int %temp %72 + OpStore %78 %77 + OpBranch %69 %71 = OpLabel + %79 = OpLoad %int %k + %80 = OpIAdd %int %79 %int_1 + OpStore %k %80 + %81 = OpLoad %int %j + %82 = OpIAdd %int %81 %int_1 + OpStore %j %82 + %83 = OpAccessChain %_ptr_Private_int %data %81 + %84 = OpLoad %int %83 + %85 = OpAccessChain %_ptr_Private_int %temp %79 + OpStore %85 %84 + OpBranch %69 + %69 = OpLabel OpBranch %46 %46 = OpLabel OpBranch %44 %45 = OpLabel + OpBranch %86 + %86 = OpLabel + OpLoopMerge %87 %88 None + OpBranch %89 + %89 = OpLabel + %90 = OpLoad %int %i + %91 = OpLoad %int %i + %93 = OpLoad %int %mid + %95 = OpSLessThan %bool %90 %int_10 + %96 = OpSLessThanEqual %bool %91 %93 + %97 = OpLogicalAnd %bool %95 %96 + OpSelectionMerge %98 None + OpBranchConditional %97 %99 %100 + %99 = OpLabel + OpBranch %98 + %100 = OpLabel + OpBranch %87 + %98 = OpLabel + %101 = OpLoad %int %k + %102 = OpIAdd %int %101 %int_1 + OpStore %k %102 + %103 = OpLoad %int %i + %104 = OpIAdd %int %103 %int_1 + OpStore %i %104 + %105 = OpAccessChain %_ptr_Private_int %data %103 + %106 = OpLoad %int %105 + %107 = OpAccessChain %_ptr_Private_int %temp %101 + OpStore %107 %106 OpBranch %88 %88 = OpLabel - OpLoopMerge %89 %90 None - OpBranch %91 - %91 = OpLabel - %92 = OpLoad %int %i - %93 = OpLoad %int %i - %95 = OpLoad %int %mid - %97 = OpSLessThan %bool %92 %int_10 - OpSelectionMerge %98 None - OpBranchConditional %97 %99 %98 - %99 = OpLabel - %100 = OpSLessThanEqual %bool %93 %95 - OpBranch %98 - %98 = OpLabel - %101 = OpPhi %bool %97 %91 %100 %99 - OpSelectionMerge %102 None - OpBranchConditional %101 %103 %104 - %103 = OpLabel - OpBranch %102 - %104 = OpLabel - OpBranch %89 - %102 = OpLabel - %105 = OpLoad %int %k - %106 = OpIAdd %int %105 %int_1 - OpStore %k %106 - %107 = OpLoad %int %i - %108 = OpIAdd %int %107 %int_1 - OpStore %i %108 - %109 = OpAccessChain %_ptr_Private_int %data %107 - %110 = OpLoad %int %109 - %111 = OpAccessChain %_ptr_Private_int %temp %105 - OpStore %111 %110 - OpBranch %90 - %90 = OpLabel - OpBranch %88 - %89 = OpLabel - %113 = OpLoad %int %from - OpStore %i_1 %113 - OpBranch %114 - %114 = OpLabel - OpLoopMerge %115 %116 None - OpBranch %117 - %117 = OpLabel - %118 = OpLoad %int %i_1 - %120 = OpLoad %int %to - %121 = OpSLessThanEqual %bool %118 %120 - OpSelectionMerge %122 None - OpBranchConditional %121 %123 %124 - %123 = OpLabel - OpBranch %122 - %124 = OpLabel - OpBranch %115 - %122 = OpLabel - %125 = OpLoad %int %i_1 + OpBranch %86 + %87 = OpLabel + %109 = OpLoad %int %from + OpStore %i_1 %109 + OpBranch %110 + %110 = OpLabel + OpLoopMerge %111 %112 None + OpBranch %113 + %113 = OpLabel + %114 = OpLoad %int %i_1 + %116 = OpLoad %int %to + %117 = OpSLessThanEqual %bool %114 %116 + OpSelectionMerge %118 None + OpBranchConditional %117 %119 %120 + %119 = OpLabel + OpBranch %118 + %120 = OpLabel + OpBranch %111 + %118 = OpLabel + %121 = OpLoad %int %i_1 + %122 = OpLoad %int %i_1 + %123 = OpAccessChain %_ptr_Private_int %temp %122 + %124 = OpLoad %int %123 + %125 = OpAccessChain %_ptr_Private_int %data %121 + OpStore %125 %124 + OpBranch %112 + %112 = OpLabel %126 = OpLoad %int %i_1 - %127 = OpAccessChain %_ptr_Private_int %temp %126 - %128 = OpLoad %int %127 - %129 = OpAccessChain %_ptr_Private_int %data %125 - OpStore %129 %128 - OpBranch %116 - %116 = OpLabel - %130 = OpLoad %int %i_1 - %131 = OpIAdd %int %130 %int_1 - OpStore %i_1 %131 - OpBranch %114 - %115 = OpLabel + %127 = OpIAdd %int %126 %int_1 + OpStore %i_1 %127 + OpBranch %110 + %111 = OpLabel OpReturn OpFunctionEnd - %mergeSort_ = OpFunction %void None %132 - %134 = OpLabel + %mergeSort_ = OpFunction %void None %128 + %130 = OpLabel %low = OpVariable %_ptr_Function_int Function %32 %high = OpVariable %_ptr_Function_int Function %32 %m = OpVariable %_ptr_Function_int Function %32 @@ -290,401 +278,391 @@ SKIP: FAILED OpStore %low %int_0 OpStore %high %int_9 OpStore %m %int_1 - OpBranch %147 - %147 = OpLabel - OpLoopMerge %148 %149 None + OpBranch %143 + %143 = OpLabel + OpLoopMerge %144 %145 None + OpBranch %146 + %146 = OpLabel + %147 = OpLoad %int %m + %148 = OpLoad %int %high + %149 = OpSLessThanEqual %bool %147 %148 + OpSelectionMerge %150 None + OpBranchConditional %149 %151 %152 + %151 = OpLabel OpBranch %150 + %152 = OpLabel + OpBranch %144 %150 = OpLabel - %151 = OpLoad %int %m - %152 = OpLoad %int %high - %153 = OpSLessThanEqual %bool %151 %152 - OpSelectionMerge %154 None - OpBranchConditional %153 %155 %156 - %155 = OpLabel + %153 = OpLoad %int %low + OpStore %i_2 %153 OpBranch %154 - %156 = OpLabel - OpBranch %148 %154 = OpLabel - %157 = OpLoad %int %low - OpStore %i_2 %157 - OpBranch %158 - %158 = OpLabel - OpLoopMerge %159 %160 None + OpLoopMerge %155 %156 None + OpBranch %157 + %157 = OpLabel + %158 = OpLoad %int %i_2 + %159 = OpLoad %int %high + %160 = OpSLessThan %bool %158 %159 + OpSelectionMerge %161 None + OpBranchConditional %160 %162 %163 + %162 = OpLabel OpBranch %161 + %163 = OpLabel + OpBranch %155 %161 = OpLabel - %162 = OpLoad %int %i_2 - %163 = OpLoad %int %high - %164 = OpSLessThan %bool %162 %163 - OpSelectionMerge %165 None - OpBranchConditional %164 %166 %167 - %166 = OpLabel - OpBranch %165 - %167 = OpLabel - OpBranch %159 - %165 = OpLabel - %168 = OpLoad %int %i_2 - OpStore %from_1 %168 + %164 = OpLoad %int %i_2 + OpStore %from_1 %164 + %165 = OpLoad %int %i_2 + %166 = OpLoad %int %m + %167 = OpIAdd %int %165 %166 + %168 = OpISub %int %167 %int_1 + OpStore %mid_1 %168 %169 = OpLoad %int %i_2 %170 = OpLoad %int %m - %171 = OpIAdd %int %169 %170 - %172 = OpISub %int %171 %int_1 - OpStore %mid_1 %172 - %173 = OpLoad %int %i_2 - %174 = OpLoad %int %m - %175 = OpLoad %int %high - %179 = OpIMul %int %int_2 %174 - %180 = OpIAdd %int %173 %179 - %181 = OpISub %int %180 %int_1 - %176 = OpExtInst %int %177 SMin %181 %175 - OpStore %to_1 %176 - %182 = OpLoad %int %from_1 - OpStore %param %182 - %183 = OpLoad %int %mid_1 - OpStore %param_1 %183 - %184 = OpLoad %int %to_1 - OpStore %param_2 %184 - %185 = OpFunctionCall %void %merge_i1_i1_i1_ %param %param_1 %param_2 - OpBranch %160 - %160 = OpLabel + %171 = OpLoad %int %high + %175 = OpIMul %int %int_2 %170 + %176 = OpIAdd %int %169 %175 + %177 = OpISub %int %176 %int_1 + %172 = OpExtInst %int %173 SMin %177 %171 + OpStore %to_1 %172 + %178 = OpLoad %int %from_1 + OpStore %param %178 + %179 = OpLoad %int %mid_1 + OpStore %param_1 %179 + %180 = OpLoad %int %to_1 + OpStore %param_2 %180 + %181 = OpFunctionCall %void %merge_i1_i1_i1_ %param %param_1 %param_2 + OpBranch %156 + %156 = OpLabel + %185 = OpLoad %int %m + %186 = OpLoad %int %i_2 + %187 = OpIMul %int %int_2 %185 + %188 = OpIAdd %int %186 %187 + OpStore %i_2 %188 + OpBranch %154 + %155 = OpLabel + OpBranch %145 + %145 = OpLabel %189 = OpLoad %int %m - %190 = OpLoad %int %i_2 - %191 = OpIMul %int %int_2 %189 - %192 = OpIAdd %int %190 %191 - OpStore %i_2 %192 - OpBranch %158 - %159 = OpLabel - OpBranch %149 - %149 = OpLabel - %193 = OpLoad %int %m - %194 = OpIMul %int %int_2 %193 - OpStore %m %194 - OpBranch %147 - %148 = OpLabel + %190 = OpIMul %int %int_2 %189 + OpStore %m %190 + OpBranch %143 + %144 = OpLabel OpReturn OpFunctionEnd - %main_1 = OpFunction %void None %132 - %196 = OpLabel + %main_1 = OpFunction %void None %128 + %192 = OpLabel %i_3 = OpVariable %_ptr_Function_int Function %32 %j_1 = OpVariable %_ptr_Function_int Function %32 - %grey = OpVariable %_ptr_Function_float Function %201 - %guard233 = OpVariable %_ptr_Function_bool Function %393 - %204 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 - %205 = OpLoad %float %204 - %206 = OpConvertFToS %int %205 - OpStore %i_3 %206 - OpBranch %207 - %207 = OpLabel - OpLoopMerge %208 %209 None - OpBranch %210 + %grey = OpVariable %_ptr_Function_float Function %197 + %guard233 = OpVariable %_ptr_Function_bool Function %386 + %200 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 + %201 = OpLoad %float %200 + %202 = OpConvertFToS %int %201 + OpStore %i_3 %202 + OpBranch %203 + %203 = OpLabel + OpLoopMerge %204 %205 None + OpBranch %206 + %206 = OpLabel + %207 = OpLoad %int %i_3 + OpSelectionMerge %208 None + OpSwitch %207 %209 9 %210 8 %211 7 %212 6 %213 5 %214 4 %215 3 %216 2 %217 1 %218 0 %219 %210 = OpLabel - %211 = OpLoad %int %i_3 - OpSelectionMerge %212 None - OpSwitch %211 %213 9 %214 8 %215 7 %216 6 %217 5 %218 4 %219 3 %220 2 %221 1 %222 0 %223 + %220 = OpLoad %int %i_3 + %221 = OpAccessChain %_ptr_Private_int %data %220 + OpStore %221 %int_n5 + OpBranch %208 + %211 = OpLabel + %223 = OpLoad %int %i_3 + %224 = OpAccessChain %_ptr_Private_int %data %223 + OpStore %224 %int_n4 + OpBranch %208 + %212 = OpLabel + %226 = OpLoad %int %i_3 + %227 = OpAccessChain %_ptr_Private_int %data %226 + OpStore %227 %int_n3 + OpBranch %208 + %213 = OpLabel + %229 = OpLoad %int %i_3 + %230 = OpAccessChain %_ptr_Private_int %data %229 + OpStore %230 %int_n2 + OpBranch %208 %214 = OpLabel - %224 = OpLoad %int %i_3 - %225 = OpAccessChain %_ptr_Private_int %data %224 - OpStore %225 %int_n5 - OpBranch %212 + %232 = OpLoad %int %i_3 + %233 = OpAccessChain %_ptr_Private_int %data %232 + OpStore %233 %int_n1 + OpBranch %208 %215 = OpLabel - %227 = OpLoad %int %i_3 - %228 = OpAccessChain %_ptr_Private_int %data %227 - OpStore %228 %int_n4 - OpBranch %212 + %235 = OpLoad %int %i_3 + %236 = OpAccessChain %_ptr_Private_int %data %235 + OpStore %236 %int_0 + OpBranch %208 %216 = OpLabel - %230 = OpLoad %int %i_3 - %231 = OpAccessChain %_ptr_Private_int %data %230 - OpStore %231 %int_n3 - OpBranch %212 + %237 = OpLoad %int %i_3 + %238 = OpAccessChain %_ptr_Private_int %data %237 + OpStore %238 %int_1 + OpBranch %208 %217 = OpLabel - %233 = OpLoad %int %i_3 - %234 = OpAccessChain %_ptr_Private_int %data %233 - OpStore %234 %int_n2 - OpBranch %212 - %218 = OpLabel - %236 = OpLoad %int %i_3 - %237 = OpAccessChain %_ptr_Private_int %data %236 - OpStore %237 %int_n1 - OpBranch %212 - %219 = OpLabel %239 = OpLoad %int %i_3 %240 = OpAccessChain %_ptr_Private_int %data %239 - OpStore %240 %int_0 - OpBranch %212 - %220 = OpLabel + OpStore %240 %int_2 + OpBranch %208 + %218 = OpLabel %241 = OpLoad %int %i_3 %242 = OpAccessChain %_ptr_Private_int %data %241 - OpStore %242 %int_1 - OpBranch %212 - %221 = OpLabel - %243 = OpLoad %int %i_3 - %244 = OpAccessChain %_ptr_Private_int %data %243 - OpStore %244 %int_2 - OpBranch %212 - %222 = OpLabel - %245 = OpLoad %int %i_3 - %246 = OpAccessChain %_ptr_Private_int %data %245 - OpStore %246 %int_3 - OpBranch %212 - %223 = OpLabel - %248 = OpLoad %int %i_3 - %249 = OpAccessChain %_ptr_Private_int %data %248 - OpStore %249 %int_4 - OpBranch %212 - %213 = OpLabel - OpBranch %212 - %212 = OpLabel - %251 = OpLoad %int %i_3 - %252 = OpIAdd %int %251 %int_1 - OpStore %i_3 %252 - OpBranch %209 - %209 = OpLabel - %253 = OpLoad %int %i_3 - %254 = OpSLessThan %bool %253 %int_10 - OpSelectionMerge %255 None - OpBranchConditional %254 %256 %257 - %256 = OpLabel - OpBranch %255 - %257 = OpLabel + OpStore %242 %int_3 + OpBranch %208 + %219 = OpLabel + %244 = OpLoad %int %i_3 + %245 = OpAccessChain %_ptr_Private_int %data %244 + OpStore %245 %int_4 + OpBranch %208 + %209 = OpLabel OpBranch %208 - %255 = OpLabel - OpBranch %207 %208 = OpLabel + %247 = OpLoad %int %i_3 + %248 = OpIAdd %int %247 %int_1 + OpStore %i_3 %248 + OpBranch %205 + %205 = OpLabel + %249 = OpLoad %int %i_3 + %250 = OpSLessThan %bool %249 %int_10 + OpBranchConditional %250 %203 %204 + %204 = OpLabel OpStore %j_1 %int_0 - OpBranch %258 - %258 = OpLabel - OpLoopMerge %259 %260 None - OpBranch %261 - %261 = OpLabel - %262 = OpLoad %int %j_1 - %263 = OpSLessThan %bool %262 %int_10 - %264 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 - %265 = OpLoad %float %264 - %268 = OpFOrdLessThanEqual %bool %265 %float_1 - %266 = OpLogicalNot %bool %268 - OpSelectionMerge %269 None - OpBranchConditional %266 %270 %269 - %270 = OpLabel + OpBranch %251 + %251 = OpLabel + OpLoopMerge %252 %253 None + OpBranch %254 + %254 = OpLabel + %255 = OpLoad %int %j_1 + %256 = OpSLessThan %bool %255 %int_10 + %257 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 + %258 = OpLoad %float %257 + %261 = OpFOrdLessThanEqual %bool %258 %float_1 + %259 = OpLogicalNot %bool %261 + OpSelectionMerge %262 None + OpBranchConditional %259 %263 %262 + %263 = OpLabel OpStore %grey %float_1 - OpBranch %269 - %269 = OpLabel - OpSelectionMerge %271 None - OpBranchConditional %263 %272 %273 - %272 = OpLabel - OpBranch %271 - %273 = OpLabel - OpBranch %259 - %271 = OpLabel - %274 = OpLoad %int %j_1 - %275 = OpLoad %int %j_1 - %276 = OpAccessChain %_ptr_Private_int %data %275 - %277 = OpLoad %int %276 - %278 = OpAccessChain %_ptr_Private_int %temp %274 - OpStore %278 %277 - OpBranch %260 - %260 = OpLabel - %279 = OpLoad %int %j_1 - %280 = OpIAdd %int %279 %int_1 - OpStore %j_1 %280 - OpBranch %258 - %259 = OpLabel - %281 = OpFunctionCall %void %mergeSort_ - %284 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %285 = OpLoad %float %284 - %286 = OpConvertFToS %int %285 - %288 = OpSLessThan %bool %286 %int_30 - OpSelectionMerge %289 None - OpBranchConditional %288 %290 %291 - %290 = OpLabel - %292 = OpAccessChain %_ptr_Private_int %data %int_0 - %293 = OpLoad %int %292 - %295 = OpConvertSToF %float %293 - %297 = OpFDiv %float %295 %float_10 - %298 = OpFAdd %float %float_0_5 %297 - OpStore %grey %298 - OpBranch %289 - %291 = OpLabel - %299 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %300 = OpLoad %float %299 - %301 = OpConvertFToS %int %300 - %303 = OpSLessThan %bool %301 %int_60 - OpSelectionMerge %304 None - OpBranchConditional %303 %305 %306 - %305 = OpLabel - %307 = OpAccessChain %_ptr_Private_int %data %int_1 - %308 = OpLoad %int %307 - %309 = OpConvertSToF %float %308 - %310 = OpFDiv %float %309 %float_10 - %311 = OpFAdd %float %float_0_5 %310 - OpStore %grey %311 - OpBranch %304 - %306 = OpLabel - %312 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %313 = OpLoad %float %312 - %314 = OpConvertFToS %int %313 - %316 = OpSLessThan %bool %314 %int_90 - OpSelectionMerge %317 None - OpBranchConditional %316 %318 %319 - %318 = OpLabel - %320 = OpAccessChain %_ptr_Private_int %data %int_2 - %321 = OpLoad %int %320 - %322 = OpConvertSToF %float %321 - %323 = OpFDiv %float %322 %float_10 - %324 = OpFAdd %float %float_0_5 %323 - OpStore %grey %324 - OpBranch %317 - %319 = OpLabel - %325 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %326 = OpLoad %float %325 - %327 = OpConvertFToS %int %326 - %329 = OpSLessThan %bool %327 %int_120 - OpSelectionMerge %330 None - OpBranchConditional %329 %331 %332 - %331 = OpLabel - %333 = OpAccessChain %_ptr_Private_int %data %int_3 - %334 = OpLoad %int %333 - %335 = OpConvertSToF %float %334 - %336 = OpFDiv %float %335 %float_10 - %337 = OpFAdd %float %float_0_5 %336 - OpStore %grey %337 - OpBranch %330 - %332 = OpLabel - %338 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %339 = OpLoad %float %338 - %340 = OpConvertFToS %int %339 - %342 = OpSLessThan %bool %340 %int_150 - OpSelectionMerge %343 None - OpBranchConditional %342 %344 %345 - %344 = OpLabel + OpBranch %262 + %262 = OpLabel + OpSelectionMerge %264 None + OpBranchConditional %256 %265 %266 + %265 = OpLabel + OpBranch %264 + %266 = OpLabel + OpBranch %252 + %264 = OpLabel + %267 = OpLoad %int %j_1 + %268 = OpLoad %int %j_1 + %269 = OpAccessChain %_ptr_Private_int %data %268 + %270 = OpLoad %int %269 + %271 = OpAccessChain %_ptr_Private_int %temp %267 + OpStore %271 %270 + OpBranch %253 + %253 = OpLabel + %272 = OpLoad %int %j_1 + %273 = OpIAdd %int %272 %int_1 + OpStore %j_1 %273 + OpBranch %251 + %252 = OpLabel + %274 = OpFunctionCall %void %mergeSort_ + %277 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %278 = OpLoad %float %277 + %279 = OpConvertFToS %int %278 + %281 = OpSLessThan %bool %279 %int_30 + OpSelectionMerge %282 None + OpBranchConditional %281 %283 %284 + %283 = OpLabel + %285 = OpAccessChain %_ptr_Private_int %data %int_0 + %286 = OpLoad %int %285 + %288 = OpConvertSToF %float %286 + %290 = OpFDiv %float %288 %float_10 + %291 = OpFAdd %float %float_0_5 %290 + OpStore %grey %291 + OpBranch %282 + %284 = OpLabel + %292 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %293 = OpLoad %float %292 + %294 = OpConvertFToS %int %293 + %296 = OpSLessThan %bool %294 %int_60 + OpSelectionMerge %297 None + OpBranchConditional %296 %298 %299 + %298 = OpLabel + %300 = OpAccessChain %_ptr_Private_int %data %int_1 + %301 = OpLoad %int %300 + %302 = OpConvertSToF %float %301 + %303 = OpFDiv %float %302 %float_10 + %304 = OpFAdd %float %float_0_5 %303 + OpStore %grey %304 + OpBranch %297 + %299 = OpLabel + %305 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %306 = OpLoad %float %305 + %307 = OpConvertFToS %int %306 + %309 = OpSLessThan %bool %307 %int_90 + OpSelectionMerge %310 None + OpBranchConditional %309 %311 %312 + %311 = OpLabel + %313 = OpAccessChain %_ptr_Private_int %data %int_2 + %314 = OpLoad %int %313 + %315 = OpConvertSToF %float %314 + %316 = OpFDiv %float %315 %float_10 + %317 = OpFAdd %float %float_0_5 %316 + OpStore %grey %317 + OpBranch %310 + %312 = OpLabel + %318 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %319 = OpLoad %float %318 + %320 = OpConvertFToS %int %319 + %322 = OpSLessThan %bool %320 %int_120 + OpSelectionMerge %323 None + OpBranchConditional %322 %324 %325 + %324 = OpLabel + %326 = OpAccessChain %_ptr_Private_int %data %int_3 + %327 = OpLoad %int %326 + %328 = OpConvertSToF %float %327 + %329 = OpFDiv %float %328 %float_10 + %330 = OpFAdd %float %float_0_5 %329 + OpStore %grey %330 + OpBranch %323 + %325 = OpLabel + %331 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %332 = OpLoad %float %331 + %333 = OpConvertFToS %int %332 + %335 = OpSLessThan %bool %333 %int_150 + OpSelectionMerge %336 None + OpBranchConditional %335 %337 %338 + %337 = OpLabel OpKill + %338 = OpLabel + %339 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %340 = OpLoad %float %339 + %341 = OpConvertFToS %int %340 + %343 = OpSLessThan %bool %341 %int_180 + OpSelectionMerge %344 None + OpBranchConditional %343 %345 %346 %345 = OpLabel - %346 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %347 = OpLoad %float %346 - %348 = OpConvertFToS %int %347 - %350 = OpSLessThan %bool %348 %int_180 - OpSelectionMerge %351 None - OpBranchConditional %350 %352 %353 - %352 = OpLabel - %355 = OpAccessChain %_ptr_Private_int %data %int_5 - %356 = OpLoad %int %355 - %357 = OpConvertSToF %float %356 - %358 = OpFDiv %float %357 %float_10 - %359 = OpFAdd %float %float_0_5 %358 - OpStore %grey %359 - OpBranch %351 - %353 = OpLabel - %360 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %361 = OpLoad %float %360 - %362 = OpConvertFToS %int %361 - %364 = OpSLessThan %bool %362 %int_210 - OpSelectionMerge %365 None - OpBranchConditional %364 %366 %367 - %366 = OpLabel - %369 = OpAccessChain %_ptr_Private_int %data %int_6 - %370 = OpLoad %int %369 - %371 = OpConvertSToF %float %370 - %372 = OpFDiv %float %371 %float_10 - %373 = OpFAdd %float %float_0_5 %372 - OpStore %grey %373 - OpBranch %365 - %367 = OpLabel - %374 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %375 = OpLoad %float %374 - %376 = OpConvertFToS %int %375 - %378 = OpSLessThan %bool %376 %int_240 - OpSelectionMerge %379 None - OpBranchConditional %378 %380 %381 - %380 = OpLabel - %383 = OpAccessChain %_ptr_Private_int %data %int_7 - %384 = OpLoad %int %383 - %385 = OpConvertSToF %float %384 - %386 = OpFDiv %float %385 %float_10 - %387 = OpFAdd %float %float_0_5 %386 - OpStore %grey %387 - OpBranch %379 - %381 = OpLabel - %388 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %389 = OpLoad %float %388 + %348 = OpAccessChain %_ptr_Private_int %data %int_5 + %349 = OpLoad %int %348 + %350 = OpConvertSToF %float %349 + %351 = OpFDiv %float %350 %float_10 + %352 = OpFAdd %float %float_0_5 %351 + OpStore %grey %352 + OpBranch %344 + %346 = OpLabel + %353 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %354 = OpLoad %float %353 + %355 = OpConvertFToS %int %354 + %357 = OpSLessThan %bool %355 %int_210 + OpSelectionMerge %358 None + OpBranchConditional %357 %359 %360 + %359 = OpLabel + %362 = OpAccessChain %_ptr_Private_int %data %int_6 + %363 = OpLoad %int %362 + %364 = OpConvertSToF %float %363 + %365 = OpFDiv %float %364 %float_10 + %366 = OpFAdd %float %float_0_5 %365 + OpStore %grey %366 + OpBranch %358 + %360 = OpLabel + %367 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %368 = OpLoad %float %367 + %369 = OpConvertFToS %int %368 + %371 = OpSLessThan %bool %369 %int_240 + OpSelectionMerge %372 None + OpBranchConditional %371 %373 %374 + %373 = OpLabel + %376 = OpAccessChain %_ptr_Private_int %data %int_7 + %377 = OpLoad %int %376 + %378 = OpConvertSToF %float %377 + %379 = OpFDiv %float %378 %float_10 + %380 = OpFAdd %float %float_0_5 %379 + OpStore %grey %380 + OpBranch %372 + %374 = OpLabel + %381 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %382 = OpLoad %float %381 OpStore %guard233 %true - %394 = OpConvertFToS %int %389 - %396 = OpSLessThan %bool %394 %int_270 - OpSelectionMerge %397 None - OpBranchConditional %396 %398 %399 - %398 = OpLabel - %401 = OpAccessChain %_ptr_Private_int %data %int_8 - %402 = OpLoad %int %401 - %403 = OpConvertSToF %float %402 - %404 = OpFDiv %float %403 %float_10 - %405 = OpFAdd %float %float_0_5 %404 - OpStore %grey %405 + %387 = OpConvertFToS %int %382 + %389 = OpSLessThan %bool %387 %int_270 + OpSelectionMerge %390 None + OpBranchConditional %389 %391 %392 + %391 = OpLabel + %394 = OpAccessChain %_ptr_Private_int %data %int_8 + %395 = OpLoad %int %394 + %396 = OpConvertSToF %float %395 + %397 = OpFDiv %float %396 %float_10 + %398 = OpFAdd %float %float_0_5 %397 + OpStore %grey %398 OpStore %guard233 %false - OpBranch %397 - %399 = OpLabel - %407 = OpLoad %bool %guard233 + OpBranch %390 + %392 = OpLabel + %400 = OpLoad %bool %guard233 + OpSelectionMerge %401 None + OpBranchConditional %400 %402 %401 + %402 = OpLabel + %403 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_1 + %404 = OpLoad %float %403 + %407 = OpFOrdLessThan %bool %float_0 %404 + %405 = OpLogicalNot %bool %407 OpSelectionMerge %408 None - OpBranchConditional %407 %409 %408 + OpBranchConditional %405 %409 %408 %409 = OpLabel - %410 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_1 - %411 = OpLoad %float %410 - %414 = OpFOrdLessThan %bool %float_0 %411 - %412 = OpLogicalNot %bool %414 - OpSelectionMerge %415 None - OpBranchConditional %412 %416 %415 - %416 = OpLabel OpStore %guard233 %false - OpBranch %415 - %415 = OpLabel - %417 = OpLoad %bool %guard233 - OpSelectionMerge %418 None - OpBranchConditional %417 %419 %418 - %419 = OpLabel - OpKill - %418 = OpLabel OpBranch %408 %408 = OpLabel - OpBranch %397 - %397 = OpLabel - OpBranch %379 - %379 = OpLabel - OpBranch %365 - %365 = OpLabel - OpBranch %351 - %351 = OpLabel - OpBranch %343 - %343 = OpLabel - OpBranch %330 - %330 = OpLabel - OpBranch %317 - %317 = OpLabel - OpBranch %304 - %304 = OpLabel - OpBranch %289 - %289 = OpLabel - %420 = OpLoad %float %grey - %422 = OpCompositeConstruct %v3float %420 %420 %420 - %423 = OpCompositeExtract %float %422 0 - %424 = OpCompositeExtract %float %422 1 - %425 = OpCompositeExtract %float %422 2 - %426 = OpCompositeConstruct %v4float %423 %424 %425 %float_1 - OpStore %x_GLF_color %426 + %410 = OpLoad %bool %guard233 + OpSelectionMerge %411 None + OpBranchConditional %410 %412 %411 + %412 = OpLabel + OpKill + %411 = OpLabel + OpBranch %401 + %401 = OpLabel + OpBranch %390 + %390 = OpLabel + OpBranch %372 + %372 = OpLabel + OpBranch %358 + %358 = OpLabel + OpBranch %344 + %344 = OpLabel + OpBranch %336 + %336 = OpLabel + OpBranch %323 + %323 = OpLabel + OpBranch %310 + %310 = OpLabel + OpBranch %297 + %297 = OpLabel + OpBranch %282 + %282 = OpLabel + %413 = OpLoad %float %grey + %415 = OpCompositeConstruct %v3float %413 %413 %413 + %416 = OpCompositeExtract %float %415 0 + %417 = OpCompositeExtract %float %415 1 + %418 = OpCompositeExtract %float %415 2 + %419 = OpCompositeConstruct %v4float %416 %417 %418 %float_1 + OpStore %x_GLF_color %419 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %427 +%tint_symbol_3 = OpFunction %void None %420 %tint_symbol_1 = OpFunctionParameter %main_out - %431 = OpLabel - %432 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %432 + %424 = OpLabel + %425 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %425 OpReturn OpFunctionEnd - %main = OpFunction %void None %132 - %434 = OpLabel - %435 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %435 - %436 = OpFunctionCall %void %main_1 - %438 = OpLoad %v4float %x_GLF_color - %439 = OpCompositeConstruct %main_out %438 - %437 = OpFunctionCall %void %tint_symbol_3 %439 + %main = OpFunction %void None %128 + %427 = OpLabel + %428 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %428 + %429 = OpFunctionCall %void %main_1 + %431 = OpLoad %v4float %x_GLF_color + %432 = OpCompositeConstruct %main_out %431 + %430 = OpFunctionCall %void %tint_symbol_3 %432 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 209[%209] is not post dominated by the back-edge block 255[%255] - %255 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.wgsl.expected.spvasm index e2ae2d94e1..2f3113fde8 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 440 +; Bound: 437 ; Schema: 0 OpCapability Shader %177 = OpExtInstImport "GLSL.std.450" @@ -120,14 +118,14 @@ SKIP: FAILED %int_7 = OpConstant %int 7 %true = OpConstantTrue %bool %_ptr_Function_bool = OpTypePointer Function %bool - %393 = OpConstantNull %bool + %390 = OpConstantNull %bool %int_270 = OpConstant %int 270 %int_8 = OpConstant %int 8 %false = OpConstantFalse %bool %float_0 = OpConstant %float 0 %v3float = OpTypeVector %float 3 %main_out = OpTypeStruct %v4float - %427 = OpTypeFunction %void %main_out + %424 = OpTypeFunction %void %main_out %merge_i1_i1_i1_ = OpFunction %void None %23 %from = OpFunctionParameter %_ptr_Function_int %mid = OpFunctionParameter %_ptr_Function_int @@ -367,7 +365,7 @@ SKIP: FAILED %i_3 = OpVariable %_ptr_Function_int Function %32 %j_1 = OpVariable %_ptr_Function_int Function %32 %grey = OpVariable %_ptr_Function_float Function %201 - %guard233 = OpVariable %_ptr_Function_bool Function %393 + %guard233 = OpVariable %_ptr_Function_bool Function %390 %204 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 %205 = OpLoad %float %204 %206 = OpConvertFToS %int %205 @@ -440,251 +438,241 @@ SKIP: FAILED %209 = OpLabel %253 = OpLoad %int %i_3 %254 = OpSLessThan %bool %253 %int_10 - OpSelectionMerge %255 None - OpBranchConditional %254 %256 %257 - %256 = OpLabel - OpBranch %255 - %257 = OpLabel - OpBranch %208 - %255 = OpLabel - OpBranch %207 + OpBranchConditional %254 %207 %208 %208 = OpLabel OpStore %j_1 %int_0 + OpBranch %255 + %255 = OpLabel + OpLoopMerge %256 %257 None OpBranch %258 %258 = OpLabel - OpLoopMerge %259 %260 None - OpBranch %261 - %261 = OpLabel - %262 = OpLoad %int %j_1 - %263 = OpSLessThan %bool %262 %int_10 - %264 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 - %265 = OpLoad %float %264 - %268 = OpFOrdLessThanEqual %bool %265 %float_1 - %266 = OpLogicalNot %bool %268 - OpSelectionMerge %269 None - OpBranchConditional %266 %270 %269 - %270 = OpLabel + %259 = OpLoad %int %j_1 + %260 = OpSLessThan %bool %259 %int_10 + %261 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 + %262 = OpLoad %float %261 + %265 = OpFOrdLessThanEqual %bool %262 %float_1 + %263 = OpLogicalNot %bool %265 + OpSelectionMerge %266 None + OpBranchConditional %263 %267 %266 + %267 = OpLabel OpStore %grey %float_1 - OpBranch %269 + OpBranch %266 + %266 = OpLabel + OpSelectionMerge %268 None + OpBranchConditional %260 %269 %270 %269 = OpLabel - OpSelectionMerge %271 None - OpBranchConditional %263 %272 %273 - %272 = OpLabel - OpBranch %271 - %273 = OpLabel - OpBranch %259 - %271 = OpLabel - %274 = OpLoad %int %j_1 - %275 = OpLoad %int %j_1 - %276 = OpAccessChain %_ptr_Private_int %data %275 - %277 = OpLoad %int %276 - %278 = OpAccessChain %_ptr_Private_int %temp %274 - OpStore %278 %277 - OpBranch %260 - %260 = OpLabel - %279 = OpLoad %int %j_1 - %280 = OpIAdd %int %279 %int_1 - OpStore %j_1 %280 - OpBranch %258 - %259 = OpLabel - %281 = OpFunctionCall %void %mergeSort_ - %284 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %285 = OpLoad %float %284 - %286 = OpConvertFToS %int %285 - %288 = OpSLessThan %bool %286 %int_30 - OpSelectionMerge %289 None - OpBranchConditional %288 %290 %291 - %290 = OpLabel - %292 = OpAccessChain %_ptr_Private_int %data %int_0 - %293 = OpLoad %int %292 - %295 = OpConvertSToF %float %293 - %297 = OpFDiv %float %295 %float_10 - %298 = OpFAdd %float %float_0_5 %297 - OpStore %grey %298 - OpBranch %289 - %291 = OpLabel - %299 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %300 = OpLoad %float %299 - %301 = OpConvertFToS %int %300 - %303 = OpSLessThan %bool %301 %int_60 - OpSelectionMerge %304 None - OpBranchConditional %303 %305 %306 - %305 = OpLabel - %307 = OpAccessChain %_ptr_Private_int %data %int_1 - %308 = OpLoad %int %307 - %309 = OpConvertSToF %float %308 - %310 = OpFDiv %float %309 %float_10 - %311 = OpFAdd %float %float_0_5 %310 - OpStore %grey %311 - OpBranch %304 - %306 = OpLabel - %312 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %313 = OpLoad %float %312 - %314 = OpConvertFToS %int %313 - %316 = OpSLessThan %bool %314 %int_90 - OpSelectionMerge %317 None - OpBranchConditional %316 %318 %319 - %318 = OpLabel - %320 = OpAccessChain %_ptr_Private_int %data %int_2 - %321 = OpLoad %int %320 - %322 = OpConvertSToF %float %321 - %323 = OpFDiv %float %322 %float_10 - %324 = OpFAdd %float %float_0_5 %323 - OpStore %grey %324 - OpBranch %317 - %319 = OpLabel - %325 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %326 = OpLoad %float %325 - %327 = OpConvertFToS %int %326 - %329 = OpSLessThan %bool %327 %int_120 - OpSelectionMerge %330 None - OpBranchConditional %329 %331 %332 - %331 = OpLabel - %333 = OpAccessChain %_ptr_Private_int %data %int_3 - %334 = OpLoad %int %333 - %335 = OpConvertSToF %float %334 - %336 = OpFDiv %float %335 %float_10 - %337 = OpFAdd %float %float_0_5 %336 - OpStore %grey %337 - OpBranch %330 - %332 = OpLabel - %338 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %339 = OpLoad %float %338 - %340 = OpConvertFToS %int %339 - %342 = OpSLessThan %bool %340 %int_150 - OpSelectionMerge %343 None - OpBranchConditional %342 %344 %345 - %344 = OpLabel + OpBranch %268 + %270 = OpLabel + OpBranch %256 + %268 = OpLabel + %271 = OpLoad %int %j_1 + %272 = OpLoad %int %j_1 + %273 = OpAccessChain %_ptr_Private_int %data %272 + %274 = OpLoad %int %273 + %275 = OpAccessChain %_ptr_Private_int %temp %271 + OpStore %275 %274 + OpBranch %257 + %257 = OpLabel + %276 = OpLoad %int %j_1 + %277 = OpIAdd %int %276 %int_1 + OpStore %j_1 %277 + OpBranch %255 + %256 = OpLabel + %278 = OpFunctionCall %void %mergeSort_ + %281 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %282 = OpLoad %float %281 + %283 = OpConvertFToS %int %282 + %285 = OpSLessThan %bool %283 %int_30 + OpSelectionMerge %286 None + OpBranchConditional %285 %287 %288 + %287 = OpLabel + %289 = OpAccessChain %_ptr_Private_int %data %int_0 + %290 = OpLoad %int %289 + %292 = OpConvertSToF %float %290 + %294 = OpFDiv %float %292 %float_10 + %295 = OpFAdd %float %float_0_5 %294 + OpStore %grey %295 + OpBranch %286 + %288 = OpLabel + %296 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %297 = OpLoad %float %296 + %298 = OpConvertFToS %int %297 + %300 = OpSLessThan %bool %298 %int_60 + OpSelectionMerge %301 None + OpBranchConditional %300 %302 %303 + %302 = OpLabel + %304 = OpAccessChain %_ptr_Private_int %data %int_1 + %305 = OpLoad %int %304 + %306 = OpConvertSToF %float %305 + %307 = OpFDiv %float %306 %float_10 + %308 = OpFAdd %float %float_0_5 %307 + OpStore %grey %308 + OpBranch %301 + %303 = OpLabel + %309 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %310 = OpLoad %float %309 + %311 = OpConvertFToS %int %310 + %313 = OpSLessThan %bool %311 %int_90 + OpSelectionMerge %314 None + OpBranchConditional %313 %315 %316 + %315 = OpLabel + %317 = OpAccessChain %_ptr_Private_int %data %int_2 + %318 = OpLoad %int %317 + %319 = OpConvertSToF %float %318 + %320 = OpFDiv %float %319 %float_10 + %321 = OpFAdd %float %float_0_5 %320 + OpStore %grey %321 + OpBranch %314 + %316 = OpLabel + %322 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %323 = OpLoad %float %322 + %324 = OpConvertFToS %int %323 + %326 = OpSLessThan %bool %324 %int_120 + OpSelectionMerge %327 None + OpBranchConditional %326 %328 %329 + %328 = OpLabel + %330 = OpAccessChain %_ptr_Private_int %data %int_3 + %331 = OpLoad %int %330 + %332 = OpConvertSToF %float %331 + %333 = OpFDiv %float %332 %float_10 + %334 = OpFAdd %float %float_0_5 %333 + OpStore %grey %334 + OpBranch %327 + %329 = OpLabel + %335 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %336 = OpLoad %float %335 + %337 = OpConvertFToS %int %336 + %339 = OpSLessThan %bool %337 %int_150 + OpSelectionMerge %340 None + OpBranchConditional %339 %341 %342 + %341 = OpLabel OpKill - %345 = OpLabel - %346 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %347 = OpLoad %float %346 - %348 = OpConvertFToS %int %347 - %350 = OpSLessThan %bool %348 %int_180 - OpSelectionMerge %351 None - OpBranchConditional %350 %352 %353 - %352 = OpLabel - %355 = OpAccessChain %_ptr_Private_int %data %int_5 - %356 = OpLoad %int %355 - %357 = OpConvertSToF %float %356 - %358 = OpFDiv %float %357 %float_10 - %359 = OpFAdd %float %float_0_5 %358 - OpStore %grey %359 - OpBranch %351 - %353 = OpLabel - %360 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %361 = OpLoad %float %360 - %362 = OpConvertFToS %int %361 - %364 = OpSLessThan %bool %362 %int_210 - OpSelectionMerge %365 None - OpBranchConditional %364 %366 %367 - %366 = OpLabel - %369 = OpAccessChain %_ptr_Private_int %data %int_6 - %370 = OpLoad %int %369 - %371 = OpConvertSToF %float %370 - %372 = OpFDiv %float %371 %float_10 - %373 = OpFAdd %float %float_0_5 %372 - OpStore %grey %373 - OpBranch %365 - %367 = OpLabel - %374 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %375 = OpLoad %float %374 - %376 = OpConvertFToS %int %375 - %378 = OpSLessThan %bool %376 %int_240 - OpSelectionMerge %379 None - OpBranchConditional %378 %380 %381 - %380 = OpLabel - %383 = OpAccessChain %_ptr_Private_int %data %int_7 - %384 = OpLoad %int %383 - %385 = OpConvertSToF %float %384 - %386 = OpFDiv %float %385 %float_10 - %387 = OpFAdd %float %float_0_5 %386 - OpStore %grey %387 - OpBranch %379 - %381 = OpLabel - %388 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %389 = OpLoad %float %388 + %342 = OpLabel + %343 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %344 = OpLoad %float %343 + %345 = OpConvertFToS %int %344 + %347 = OpSLessThan %bool %345 %int_180 + OpSelectionMerge %348 None + OpBranchConditional %347 %349 %350 + %349 = OpLabel + %352 = OpAccessChain %_ptr_Private_int %data %int_5 + %353 = OpLoad %int %352 + %354 = OpConvertSToF %float %353 + %355 = OpFDiv %float %354 %float_10 + %356 = OpFAdd %float %float_0_5 %355 + OpStore %grey %356 + OpBranch %348 + %350 = OpLabel + %357 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %358 = OpLoad %float %357 + %359 = OpConvertFToS %int %358 + %361 = OpSLessThan %bool %359 %int_210 + OpSelectionMerge %362 None + OpBranchConditional %361 %363 %364 + %363 = OpLabel + %366 = OpAccessChain %_ptr_Private_int %data %int_6 + %367 = OpLoad %int %366 + %368 = OpConvertSToF %float %367 + %369 = OpFDiv %float %368 %float_10 + %370 = OpFAdd %float %float_0_5 %369 + OpStore %grey %370 + OpBranch %362 + %364 = OpLabel + %371 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %372 = OpLoad %float %371 + %373 = OpConvertFToS %int %372 + %375 = OpSLessThan %bool %373 %int_240 + OpSelectionMerge %376 None + OpBranchConditional %375 %377 %378 + %377 = OpLabel + %380 = OpAccessChain %_ptr_Private_int %data %int_7 + %381 = OpLoad %int %380 + %382 = OpConvertSToF %float %381 + %383 = OpFDiv %float %382 %float_10 + %384 = OpFAdd %float %float_0_5 %383 + OpStore %grey %384 + OpBranch %376 + %378 = OpLabel + %385 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %386 = OpLoad %float %385 OpStore %guard233 %true - %394 = OpConvertFToS %int %389 - %396 = OpSLessThan %bool %394 %int_270 - OpSelectionMerge %397 None - OpBranchConditional %396 %398 %399 - %398 = OpLabel - %401 = OpAccessChain %_ptr_Private_int %data %int_8 - %402 = OpLoad %int %401 - %403 = OpConvertSToF %float %402 - %404 = OpFDiv %float %403 %float_10 - %405 = OpFAdd %float %float_0_5 %404 - OpStore %grey %405 + %391 = OpConvertFToS %int %386 + %393 = OpSLessThan %bool %391 %int_270 + OpSelectionMerge %394 None + OpBranchConditional %393 %395 %396 + %395 = OpLabel + %398 = OpAccessChain %_ptr_Private_int %data %int_8 + %399 = OpLoad %int %398 + %400 = OpConvertSToF %float %399 + %401 = OpFDiv %float %400 %float_10 + %402 = OpFAdd %float %float_0_5 %401 + OpStore %grey %402 OpStore %guard233 %false - OpBranch %397 - %399 = OpLabel - %407 = OpLoad %bool %guard233 - OpSelectionMerge %408 None - OpBranchConditional %407 %409 %408 - %409 = OpLabel - %410 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_1 - %411 = OpLoad %float %410 - %414 = OpFOrdLessThan %bool %float_0 %411 - %412 = OpLogicalNot %bool %414 + OpBranch %394 + %396 = OpLabel + %404 = OpLoad %bool %guard233 + OpSelectionMerge %405 None + OpBranchConditional %404 %406 %405 + %406 = OpLabel + %407 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_1 + %408 = OpLoad %float %407 + %411 = OpFOrdLessThan %bool %float_0 %408 + %409 = OpLogicalNot %bool %411 + OpSelectionMerge %412 None + OpBranchConditional %409 %413 %412 + %413 = OpLabel + OpStore %guard233 %false + OpBranch %412 + %412 = OpLabel + %414 = OpLoad %bool %guard233 OpSelectionMerge %415 None - OpBranchConditional %412 %416 %415 + OpBranchConditional %414 %416 %415 %416 = OpLabel - OpStore %guard233 %false - OpBranch %415 - %415 = OpLabel - %417 = OpLoad %bool %guard233 - OpSelectionMerge %418 None - OpBranchConditional %417 %419 %418 - %419 = OpLabel OpKill - %418 = OpLabel - OpBranch %408 - %408 = OpLabel - OpBranch %397 - %397 = OpLabel - OpBranch %379 - %379 = OpLabel - OpBranch %365 - %365 = OpLabel - OpBranch %351 - %351 = OpLabel - OpBranch %343 - %343 = OpLabel - OpBranch %330 - %330 = OpLabel - OpBranch %317 - %317 = OpLabel - OpBranch %304 - %304 = OpLabel - OpBranch %289 - %289 = OpLabel - %420 = OpLoad %float %grey - %422 = OpCompositeConstruct %v3float %420 %420 %420 - %423 = OpCompositeExtract %float %422 0 - %424 = OpCompositeExtract %float %422 1 - %425 = OpCompositeExtract %float %422 2 - %426 = OpCompositeConstruct %v4float %423 %424 %425 %float_1 - OpStore %x_GLF_color %426 + %415 = OpLabel + OpBranch %405 + %405 = OpLabel + OpBranch %394 + %394 = OpLabel + OpBranch %376 + %376 = OpLabel + OpBranch %362 + %362 = OpLabel + OpBranch %348 + %348 = OpLabel + OpBranch %340 + %340 = OpLabel + OpBranch %327 + %327 = OpLabel + OpBranch %314 + %314 = OpLabel + OpBranch %301 + %301 = OpLabel + OpBranch %286 + %286 = OpLabel + %417 = OpLoad %float %grey + %419 = OpCompositeConstruct %v3float %417 %417 %417 + %420 = OpCompositeExtract %float %419 0 + %421 = OpCompositeExtract %float %419 1 + %422 = OpCompositeExtract %float %419 2 + %423 = OpCompositeConstruct %v4float %420 %421 %422 %float_1 + OpStore %x_GLF_color %423 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %427 +%tint_symbol_3 = OpFunction %void None %424 %tint_symbol_1 = OpFunctionParameter %main_out - %431 = OpLabel - %432 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %432 + %428 = OpLabel + %429 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %429 OpReturn OpFunctionEnd %main = OpFunction %void None %132 - %434 = OpLabel - %435 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %435 - %436 = OpFunctionCall %void %main_1 - %438 = OpLoad %v4float %x_GLF_color - %439 = OpCompositeConstruct %main_out %438 - %437 = OpFunctionCall %void %tint_symbol_3 %439 + %431 = OpLabel + %432 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %432 + %433 = OpFunctionCall %void %main_1 + %435 = OpLoad %v4float %x_GLF_color + %436 = OpCompositeConstruct %main_out %435 + %434 = OpFunctionCall %void %tint_symbol_3 %436 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 209[%209] is not post dominated by the back-edge block 255[%255] - %255 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.spvasm index aa67796b49..0fda3bdd29 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.spvasm @@ -1,12 +1,10 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 525 +; Bound: 518 ; Schema: 0 OpCapability Shader - %290 = OpExtInstImport "GLSL.std.450" + %286 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2 OpExecutionMode %main OriginUpperLeft @@ -110,11 +108,11 @@ SKIP: FAILED %uint_1 = OpConstant %uint 1 %float_0 = OpConstant %float 0 %int_10 = OpConstant %int 10 - %246 = OpTypeFunction %void + %242 = OpTypeFunction %void %int_9 = OpConstant %int 9 %int_2 = OpConstant %int 2 %_ptr_Function_float = OpTypePointer Function %float - %314 = OpConstantNull %float + %310 = OpConstantNull %float %int_n5 = OpConstant %int -5 %int_n4 = OpConstant %int -4 %int_n3 = OpConstant %int -3 @@ -140,7 +138,7 @@ SKIP: FAILED %int_8 = OpConstant %int 8 %v3float = OpTypeVector %float 3 %main_out = OpTypeStruct %v4float - %512 = OpTypeFunction %void %main_out + %505 = OpTypeFunction %void %main_out %merge_i1_i1_i1_ = OpFunction %void None %23 %from = OpFunctionParameter %_ptr_Function_int %mid = OpFunctionParameter %_ptr_Function_int @@ -195,297 +193,287 @@ SKIP: FAILED %79 = OpLoad %int %j %81 = OpLoad %int %to %82 = OpSLessThanEqual %bool %76 %78 - OpSelectionMerge %83 None - OpBranchConditional %82 %84 %83 - %84 = OpLabel - %85 = OpSLessThanEqual %bool %79 %81 - OpBranch %83 - %83 = OpLabel - %86 = OpPhi %bool %82 %73 %85 %84 - OpSelectionMerge %87 None - OpBranchConditional %86 %88 %89 - %88 = OpLabel - OpBranch %87 - %89 = OpLabel - OpBranch %45 + %83 = OpSLessThanEqual %bool %79 %81 + %84 = OpLogicalAnd %bool %82 %83 + OpSelectionMerge %85 None + OpBranchConditional %84 %86 %87 + %86 = OpLabel + OpBranch %85 %87 = OpLabel - %90 = OpLoad %int %i - %92 = OpAccessChain %_ptr_Private_int %data %90 - %93 = OpLoad %int %92 - %94 = OpLoad %int %j - %95 = OpAccessChain %_ptr_Private_int %data %94 - %96 = OpLoad %int %95 - %97 = OpSLessThan %bool %93 %96 - OpSelectionMerge %98 None - OpBranchConditional %97 %99 %100 - %99 = OpLabel - %101 = OpLoad %int %k - OpStore %x_285 %101 - %102 = OpLoad %int %x_285 - OpStore %x_287_phi %102 - OpBranch %98 - %100 = OpLabel - OpStore %x_286 %int_0 - %104 = OpLoad %int %x_286 - OpStore %x_287_phi %104 - OpBranch %98 + OpBranch %45 + %85 = OpLabel + %88 = OpLoad %int %i + %90 = OpAccessChain %_ptr_Private_int %data %88 + %91 = OpLoad %int %90 + %92 = OpLoad %int %j + %93 = OpAccessChain %_ptr_Private_int %data %92 + %94 = OpLoad %int %93 + %95 = OpSLessThan %bool %91 %94 + OpSelectionMerge %96 None + OpBranchConditional %95 %97 %98 + %97 = OpLabel + %99 = OpLoad %int %k + OpStore %x_285 %99 + %100 = OpLoad %int %x_285 + OpStore %x_287_phi %100 + OpBranch %96 %98 = OpLabel - %105 = OpLoad %int %x_287_phi - %106 = OpIAdd %int %105 %int_1 - OpSelectionMerge %107 None - OpBranchConditional %97 %108 %107 - %108 = OpLabel - OpStore %k %106 - %109 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 - %110 = OpLoad %float %109 - %112 = OpFOrdLessThanEqual %bool %float_1 %110 - %111 = OpLogicalNot %bool %112 - OpSelectionMerge %113 None - OpBranchConditional %111 %114 %115 - %114 = OpLabel - OpBranch %113 - %115 = OpLabel - OpBranch %46 + OpStore %x_286 %int_0 + %102 = OpLoad %int %x_286 + OpStore %x_287_phi %102 + OpBranch %96 + %96 = OpLabel + %103 = OpLoad %int %x_287_phi + %104 = OpIAdd %int %103 %int_1 + OpSelectionMerge %105 None + OpBranchConditional %95 %106 %105 + %106 = OpLabel + OpStore %k %104 + %107 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 + %108 = OpLoad %float %107 + %110 = OpFOrdLessThanEqual %bool %float_1 %108 + %109 = OpLogicalNot %bool %110 + OpSelectionMerge %111 None + OpBranchConditional %109 %112 %113 + %112 = OpLabel + OpBranch %111 %113 = OpLabel - OpBranch %107 - %107 = OpLabel - %117 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_1 - %118 = OpLoad %float %117 - %120 = OpFOrdGreaterThanEqual %bool %118 %float_0 - OpSelectionMerge %121 None - OpBranchConditional %120 %122 %123 - %122 = OpLabel - OpBranch %121 - %123 = OpLabel OpBranch %46 + %111 = OpLabel + OpBranch %105 + %105 = OpLabel + %115 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_1 + %116 = OpLoad %float %115 + %118 = OpFOrdGreaterThanEqual %bool %116 %float_0 + OpSelectionMerge %119 None + OpBranchConditional %118 %120 %121 + %120 = OpLabel + OpBranch %119 %121 = OpLabel - OpSelectionMerge %124 None - OpBranchConditional %97 %125 %126 - %125 = OpLabel - %127 = OpLoad %int %i - OpStore %x_305 %127 - %128 = OpLoad %int %x_305 - OpStore %x_307_phi %128 - OpBranch %124 - %126 = OpLabel - OpStore %x_306 %int_0 - %129 = OpLoad %int %x_306 - OpStore %x_307_phi %129 - OpBranch %124 + OpBranch %46 + %119 = OpLabel + OpSelectionMerge %122 None + OpBranchConditional %95 %123 %124 + %123 = OpLabel + %125 = OpLoad %int %i + OpStore %x_305 %125 + %126 = OpLoad %int %x_305 + OpStore %x_307_phi %126 + OpBranch %122 %124 = OpLabel - %130 = OpLoad %int %x_307_phi - %131 = OpSelect %int %97 %130 %int_0 - OpSelectionMerge %132 None - OpBranchConditional %97 %133 %132 - %133 = OpLabel - %134 = OpIAdd %int %131 %int_1 - OpStore %i %134 - OpBranch %132 - %132 = OpLabel - OpSelectionMerge %135 None - OpBranchConditional %97 %136 %137 - %136 = OpLabel - %138 = OpAccessChain %_ptr_Private_int %data %131 - %139 = OpLoad %int %138 - OpStore %x_320 %139 - %140 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_1 - %141 = OpLoad %float %140 - %142 = OpLoad %int %x_320 - OpStore %x_328_phi %142 - %144 = OpFOrdLessThanEqual %bool %float_0 %141 - %143 = OpLogicalNot %bool %144 - OpSelectionMerge %145 None - OpBranchConditional %143 %146 %145 - %146 = OpLabel + OpStore %x_306 %int_0 + %127 = OpLoad %int %x_306 + OpStore %x_307_phi %127 + OpBranch %122 + %122 = OpLabel + %128 = OpLoad %int %x_307_phi + %129 = OpSelect %int %95 %128 %int_0 + OpSelectionMerge %130 None + OpBranchConditional %95 %131 %130 + %131 = OpLabel + %132 = OpIAdd %int %129 %int_1 + OpStore %i %132 + OpBranch %130 + %130 = OpLabel + OpSelectionMerge %133 None + OpBranchConditional %95 %134 %135 + %134 = OpLabel + %136 = OpAccessChain %_ptr_Private_int %data %129 + %137 = OpLoad %int %136 + OpStore %x_320 %137 + %138 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_1 + %139 = OpLoad %float %138 + %140 = OpLoad %int %x_320 + OpStore %x_328_phi %140 + %142 = OpFOrdLessThanEqual %bool %float_0 %139 + %141 = OpLogicalNot %bool %142 + OpSelectionMerge %143 None + OpBranchConditional %141 %144 %143 + %144 = OpLabel OpBranch %46 - %145 = OpLabel - OpBranch %135 - %137 = OpLabel - OpStore %x_324 %int_0 - %147 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_1 - %148 = OpLoad %float %147 - %149 = OpLoad %int %x_324 - OpStore %x_328_phi %149 - %151 = OpFOrdLessThan %bool %148 %float_0 - %150 = OpLogicalNot %bool %151 - OpSelectionMerge %152 None - OpBranchConditional %150 %153 %154 - %153 = OpLabel - OpBranch %152 - %154 = OpLabel - OpBranch %46 - %152 = OpLabel - OpBranch %135 + %143 = OpLabel + OpBranch %133 %135 = OpLabel - %155 = OpLoad %int %x_328_phi - OpSelectionMerge %156 None - OpBranchConditional %97 %157 %156 - %157 = OpLabel - %158 = OpAccessChain %_ptr_Private_int %temp %105 - %159 = OpSelect %int %97 %155 %int_0 - OpStore %158 %159 - OpBranch %156 - %156 = OpLabel - OpSelectionMerge %160 None - OpBranchConditional %97 %161 %162 - %161 = OpLabel - OpStore %x_339 %int_0 - %163 = OpLoad %int %x_339 - OpStore %x_340_phi %163 - OpBranch %160 - %162 = OpLabel - %164 = OpLoad %int %k - OpStore %x_338 %164 - %165 = OpLoad %int %x_338 - OpStore %x_340_phi %165 - OpBranch %160 - %160 = OpLabel - %166 = OpLoad %int %x_340_phi - OpSelectionMerge %167 None - OpBranchConditional %97 %168 %169 - %168 = OpLabel - OpBranch %167 - %169 = OpLabel - %170 = OpIAdd %int %166 %int_1 - OpStore %k %170 - OpBranch %167 - %167 = OpLabel - %171 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 - %172 = OpLoad %float %171 - %174 = OpFOrdLessThanEqual %bool %float_1 %172 - %173 = OpLogicalNot %bool %174 - OpSelectionMerge %175 None - OpBranchConditional %173 %176 %177 - %176 = OpLabel - OpBranch %175 - %177 = OpLabel + OpStore %x_324 %int_0 + %145 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_1 + %146 = OpLoad %float %145 + %147 = OpLoad %int %x_324 + OpStore %x_328_phi %147 + %149 = OpFOrdLessThan %bool %146 %float_0 + %148 = OpLogicalNot %bool %149 + OpSelectionMerge %150 None + OpBranchConditional %148 %151 %152 + %151 = OpLabel + OpBranch %150 + %152 = OpLabel OpBranch %46 + %150 = OpLabel + OpBranch %133 + %133 = OpLabel + %153 = OpLoad %int %x_328_phi + OpSelectionMerge %154 None + OpBranchConditional %95 %155 %154 + %155 = OpLabel + %156 = OpAccessChain %_ptr_Private_int %temp %103 + %157 = OpSelect %int %95 %153 %int_0 + OpStore %156 %157 + OpBranch %154 + %154 = OpLabel + OpSelectionMerge %158 None + OpBranchConditional %95 %159 %160 + %159 = OpLabel + OpStore %x_339 %int_0 + %161 = OpLoad %int %x_339 + OpStore %x_340_phi %161 + OpBranch %158 + %160 = OpLabel + %162 = OpLoad %int %k + OpStore %x_338 %162 + %163 = OpLoad %int %x_338 + OpStore %x_340_phi %163 + OpBranch %158 + %158 = OpLabel + %164 = OpLoad %int %x_340_phi + OpSelectionMerge %165 None + OpBranchConditional %95 %166 %167 + %166 = OpLabel + OpBranch %165 + %167 = OpLabel + %168 = OpIAdd %int %164 %int_1 + OpStore %k %168 + OpBranch %165 + %165 = OpLabel + %169 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 + %170 = OpLoad %float %169 + %172 = OpFOrdLessThanEqual %bool %float_1 %170 + %171 = OpLogicalNot %bool %172 + OpSelectionMerge %173 None + OpBranchConditional %171 %174 %175 + %174 = OpLabel + OpBranch %173 %175 = OpLabel - OpSelectionMerge %178 None - OpBranchConditional %97 %179 %180 - %179 = OpLabel + OpBranch %46 + %173 = OpLabel + OpSelectionMerge %176 None + OpBranchConditional %95 %177 %178 + %177 = OpLabel OpStore %x_352 %int_0 - %181 = OpLoad %int %x_352 - OpStore %x_353_phi %181 - OpBranch %178 - %180 = OpLabel - %182 = OpLoad %int %j - OpStore %x_351 %182 - %183 = OpLoad %int %x_351 - OpStore %x_353_phi %183 - OpBranch %178 + %179 = OpLoad %int %x_352 + OpStore %x_353_phi %179 + OpBranch %176 %178 = OpLabel - %184 = OpLoad %int %x_353_phi - %185 = OpSelect %int %97 %int_0 %184 - OpSelectionMerge %186 None - OpBranchConditional %97 %187 %188 - %187 = OpLabel - OpBranch %186 - %188 = OpLabel - %189 = OpIAdd %int %185 %int_1 - OpStore %j %189 - OpBranch %186 + %180 = OpLoad %int %j + OpStore %x_351 %180 + %181 = OpLoad %int %x_351 + OpStore %x_353_phi %181 + OpBranch %176 + %176 = OpLabel + %182 = OpLoad %int %x_353_phi + %183 = OpSelect %int %95 %int_0 %182 + OpSelectionMerge %184 None + OpBranchConditional %95 %185 %186 + %185 = OpLabel + OpBranch %184 %186 = OpLabel - OpSelectionMerge %190 None - OpBranchConditional %97 %191 %192 - %191 = OpLabel + %187 = OpIAdd %int %183 %int_1 + OpStore %j %187 + OpBranch %184 + %184 = OpLabel + OpSelectionMerge %188 None + OpBranchConditional %95 %189 %190 + %189 = OpLabel OpStore %x_366 %int_0 - %193 = OpLoad %int %x_366 - OpStore %x_367_phi %193 - OpBranch %190 - %192 = OpLabel - %194 = OpAccessChain %_ptr_Private_int %data %185 - %195 = OpLoad %int %194 - OpStore %x_365 %195 - %196 = OpLoad %int %x_365 - OpStore %x_367_phi %196 - OpBranch %190 + %191 = OpLoad %int %x_366 + OpStore %x_367_phi %191 + OpBranch %188 %190 = OpLabel - %197 = OpLoad %int %x_367_phi - OpSelectionMerge %198 None - OpBranchConditional %97 %199 %200 - %199 = OpLabel - OpBranch %198 - %200 = OpLabel - %201 = OpAccessChain %_ptr_Private_int %temp %166 - OpStore %201 %197 - OpBranch %198 + %192 = OpAccessChain %_ptr_Private_int %data %183 + %193 = OpLoad %int %192 + OpStore %x_365 %193 + %194 = OpLoad %int %x_365 + OpStore %x_367_phi %194 + OpBranch %188 + %188 = OpLabel + %195 = OpLoad %int %x_367_phi + OpSelectionMerge %196 None + OpBranchConditional %95 %197 %198 + %197 = OpLabel + OpBranch %196 %198 = OpLabel + %199 = OpAccessChain %_ptr_Private_int %temp %164 + OpStore %199 %195 + OpBranch %196 + %196 = OpLabel OpBranch %46 %46 = OpLabel OpBranch %44 %45 = OpLabel + OpBranch %200 + %200 = OpLabel + OpLoopMerge %201 %202 None + OpBranch %203 + %203 = OpLabel + %204 = OpLoad %int %i + %205 = OpLoad %int %i + %207 = OpLoad %int %mid + %209 = OpSLessThan %bool %204 %int_10 + %210 = OpSLessThanEqual %bool %205 %207 + %211 = OpLogicalAnd %bool %209 %210 + OpSelectionMerge %212 None + OpBranchConditional %211 %213 %214 + %213 = OpLabel + OpBranch %212 + %214 = OpLabel + OpBranch %201 + %212 = OpLabel + %215 = OpLoad %int %k + %216 = OpIAdd %int %215 %int_1 + OpStore %k %216 + %217 = OpLoad %int %i + %218 = OpIAdd %int %217 %int_1 + OpStore %i %218 + %219 = OpAccessChain %_ptr_Private_int %data %217 + %220 = OpLoad %int %219 + %221 = OpAccessChain %_ptr_Private_int %temp %215 + OpStore %221 %220 OpBranch %202 %202 = OpLabel - OpLoopMerge %203 %204 None - OpBranch %205 - %205 = OpLabel - %206 = OpLoad %int %i - %207 = OpLoad %int %i - %209 = OpLoad %int %mid - %211 = OpSLessThan %bool %206 %int_10 - OpSelectionMerge %212 None - OpBranchConditional %211 %213 %212 - %213 = OpLabel - %214 = OpSLessThanEqual %bool %207 %209 - OpBranch %212 - %212 = OpLabel - %215 = OpPhi %bool %211 %205 %214 %213 - OpSelectionMerge %216 None - OpBranchConditional %215 %217 %218 - %217 = OpLabel - OpBranch %216 - %218 = OpLabel - OpBranch %203 - %216 = OpLabel - %219 = OpLoad %int %k - %220 = OpIAdd %int %219 %int_1 - OpStore %k %220 - %221 = OpLoad %int %i - %222 = OpIAdd %int %221 %int_1 - OpStore %i %222 - %223 = OpAccessChain %_ptr_Private_int %data %221 - %224 = OpLoad %int %223 - %225 = OpAccessChain %_ptr_Private_int %temp %219 - OpStore %225 %224 - OpBranch %204 - %204 = OpLabel - OpBranch %202 - %203 = OpLabel - %227 = OpLoad %int %from - OpStore %i_1 %227 - OpBranch %228 - %228 = OpLabel - OpLoopMerge %229 %230 None - OpBranch %231 - %231 = OpLabel - %232 = OpLoad %int %i_1 - %234 = OpLoad %int %to - %235 = OpSLessThanEqual %bool %232 %234 - OpSelectionMerge %236 None - OpBranchConditional %235 %237 %238 - %237 = OpLabel - OpBranch %236 - %238 = OpLabel - OpBranch %229 - %236 = OpLabel - %239 = OpLoad %int %i_1 + OpBranch %200 + %201 = OpLabel + %223 = OpLoad %int %from + OpStore %i_1 %223 + OpBranch %224 + %224 = OpLabel + OpLoopMerge %225 %226 None + OpBranch %227 + %227 = OpLabel + %228 = OpLoad %int %i_1 + %230 = OpLoad %int %to + %231 = OpSLessThanEqual %bool %228 %230 + OpSelectionMerge %232 None + OpBranchConditional %231 %233 %234 + %233 = OpLabel + OpBranch %232 + %234 = OpLabel + OpBranch %225 + %232 = OpLabel + %235 = OpLoad %int %i_1 + %236 = OpLoad %int %i_1 + %237 = OpAccessChain %_ptr_Private_int %temp %236 + %238 = OpLoad %int %237 + %239 = OpAccessChain %_ptr_Private_int %data %235 + OpStore %239 %238 + OpBranch %226 + %226 = OpLabel %240 = OpLoad %int %i_1 - %241 = OpAccessChain %_ptr_Private_int %temp %240 - %242 = OpLoad %int %241 - %243 = OpAccessChain %_ptr_Private_int %data %239 - OpStore %243 %242 - OpBranch %230 - %230 = OpLabel - %244 = OpLoad %int %i_1 - %245 = OpIAdd %int %244 %int_1 - OpStore %i_1 %245 - OpBranch %228 - %229 = OpLabel + %241 = OpIAdd %int %240 %int_1 + OpStore %i_1 %241 + OpBranch %224 + %225 = OpLabel OpReturn OpFunctionEnd - %mergeSort_ = OpFunction %void None %246 - %248 = OpLabel + %mergeSort_ = OpFunction %void None %242 + %244 = OpLabel %low = OpVariable %_ptr_Function_int Function %32 %high = OpVariable %_ptr_Function_int Function %32 %m = OpVariable %_ptr_Function_int Function %32 @@ -499,366 +487,356 @@ SKIP: FAILED OpStore %low %int_0 OpStore %high %int_9 OpStore %m %int_1 - OpBranch %260 - %260 = OpLabel - OpLoopMerge %261 %262 None + OpBranch %256 + %256 = OpLabel + OpLoopMerge %257 %258 None + OpBranch %259 + %259 = OpLabel + %260 = OpLoad %int %m + %261 = OpLoad %int %high + %262 = OpSLessThanEqual %bool %260 %261 + OpSelectionMerge %263 None + OpBranchConditional %262 %264 %265 + %264 = OpLabel OpBranch %263 + %265 = OpLabel + OpBranch %257 %263 = OpLabel - %264 = OpLoad %int %m - %265 = OpLoad %int %high - %266 = OpSLessThanEqual %bool %264 %265 - OpSelectionMerge %267 None - OpBranchConditional %266 %268 %269 - %268 = OpLabel + %266 = OpLoad %int %low + OpStore %i_2 %266 OpBranch %267 - %269 = OpLabel - OpBranch %261 %267 = OpLabel - %270 = OpLoad %int %low - OpStore %i_2 %270 - OpBranch %271 - %271 = OpLabel - OpLoopMerge %272 %273 None + OpLoopMerge %268 %269 None + OpBranch %270 + %270 = OpLabel + %271 = OpLoad %int %i_2 + %272 = OpLoad %int %high + %273 = OpSLessThan %bool %271 %272 + OpSelectionMerge %274 None + OpBranchConditional %273 %275 %276 + %275 = OpLabel OpBranch %274 + %276 = OpLabel + OpBranch %268 %274 = OpLabel - %275 = OpLoad %int %i_2 - %276 = OpLoad %int %high - %277 = OpSLessThan %bool %275 %276 - OpSelectionMerge %278 None - OpBranchConditional %277 %279 %280 - %279 = OpLabel - OpBranch %278 - %280 = OpLabel - OpBranch %272 - %278 = OpLabel - %281 = OpLoad %int %i_2 - OpStore %from_1 %281 + %277 = OpLoad %int %i_2 + OpStore %from_1 %277 + %278 = OpLoad %int %i_2 + %279 = OpLoad %int %m + %280 = OpIAdd %int %278 %279 + %281 = OpISub %int %280 %int_1 + OpStore %mid_1 %281 %282 = OpLoad %int %i_2 %283 = OpLoad %int %m - %284 = OpIAdd %int %282 %283 - %285 = OpISub %int %284 %int_1 - OpStore %mid_1 %285 - %286 = OpLoad %int %i_2 - %287 = OpLoad %int %m - %288 = OpLoad %int %high - %292 = OpIMul %int %int_2 %287 - %293 = OpIAdd %int %286 %292 - %294 = OpISub %int %293 %int_1 - %289 = OpExtInst %int %290 SMin %294 %288 - OpStore %to_1 %289 - %295 = OpLoad %int %from_1 - OpStore %param %295 - %296 = OpLoad %int %mid_1 - OpStore %param_1 %296 - %297 = OpLoad %int %to_1 - OpStore %param_2 %297 - %298 = OpFunctionCall %void %merge_i1_i1_i1_ %param %param_1 %param_2 - OpBranch %273 - %273 = OpLabel + %284 = OpLoad %int %high + %288 = OpIMul %int %int_2 %283 + %289 = OpIAdd %int %282 %288 + %290 = OpISub %int %289 %int_1 + %285 = OpExtInst %int %286 SMin %290 %284 + OpStore %to_1 %285 + %291 = OpLoad %int %from_1 + OpStore %param %291 + %292 = OpLoad %int %mid_1 + OpStore %param_1 %292 + %293 = OpLoad %int %to_1 + OpStore %param_2 %293 + %294 = OpFunctionCall %void %merge_i1_i1_i1_ %param %param_1 %param_2 + OpBranch %269 + %269 = OpLabel + %298 = OpLoad %int %m + %299 = OpLoad %int %i_2 + %300 = OpIMul %int %int_2 %298 + %301 = OpIAdd %int %299 %300 + OpStore %i_2 %301 + OpBranch %267 + %268 = OpLabel + OpBranch %258 + %258 = OpLabel %302 = OpLoad %int %m - %303 = OpLoad %int %i_2 - %304 = OpIMul %int %int_2 %302 - %305 = OpIAdd %int %303 %304 - OpStore %i_2 %305 - OpBranch %271 - %272 = OpLabel - OpBranch %262 - %262 = OpLabel - %306 = OpLoad %int %m - %307 = OpIMul %int %int_2 %306 - OpStore %m %307 - OpBranch %260 - %261 = OpLabel + %303 = OpIMul %int %int_2 %302 + OpStore %m %303 + OpBranch %256 + %257 = OpLabel OpReturn OpFunctionEnd - %main_1 = OpFunction %void None %246 - %309 = OpLabel + %main_1 = OpFunction %void None %242 + %305 = OpLabel %i_3 = OpVariable %_ptr_Function_int Function %32 %j_1 = OpVariable %_ptr_Function_int Function %32 - %grey = OpVariable %_ptr_Function_float Function %314 - %315 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 - %316 = OpLoad %float %315 - %317 = OpConvertFToS %int %316 - OpStore %i_3 %317 - OpBranch %318 - %318 = OpLabel - OpLoopMerge %319 %320 None - OpBranch %321 + %grey = OpVariable %_ptr_Function_float Function %310 + %311 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 + %312 = OpLoad %float %311 + %313 = OpConvertFToS %int %312 + OpStore %i_3 %313 + OpBranch %314 + %314 = OpLabel + OpLoopMerge %315 %316 None + OpBranch %317 + %317 = OpLabel + %318 = OpLoad %int %i_3 + OpSelectionMerge %319 None + OpSwitch %318 %320 9 %321 8 %322 7 %323 6 %324 5 %325 4 %326 3 %327 2 %328 1 %329 0 %330 %321 = OpLabel - %322 = OpLoad %int %i_3 - OpSelectionMerge %323 None - OpSwitch %322 %324 9 %325 8 %326 7 %327 6 %328 5 %329 4 %330 3 %331 2 %332 1 %333 0 %334 + %331 = OpLoad %int %i_3 + %332 = OpAccessChain %_ptr_Private_int %data %331 + OpStore %332 %int_n5 + OpBranch %319 + %322 = OpLabel + %334 = OpLoad %int %i_3 + %335 = OpAccessChain %_ptr_Private_int %data %334 + OpStore %335 %int_n4 + OpBranch %319 + %323 = OpLabel + %337 = OpLoad %int %i_3 + %338 = OpAccessChain %_ptr_Private_int %data %337 + OpStore %338 %int_n3 + OpBranch %319 + %324 = OpLabel + %340 = OpLoad %int %i_3 + %341 = OpAccessChain %_ptr_Private_int %data %340 + OpStore %341 %int_n2 + OpBranch %319 %325 = OpLabel - %335 = OpLoad %int %i_3 - %336 = OpAccessChain %_ptr_Private_int %data %335 - OpStore %336 %int_n5 - OpBranch %323 + %343 = OpLoad %int %i_3 + %344 = OpAccessChain %_ptr_Private_int %data %343 + OpStore %344 %int_n1 + OpBranch %319 %326 = OpLabel - %338 = OpLoad %int %i_3 - %339 = OpAccessChain %_ptr_Private_int %data %338 - OpStore %339 %int_n4 - OpBranch %323 + %346 = OpLoad %int %i_3 + %347 = OpAccessChain %_ptr_Private_int %data %346 + OpStore %347 %int_0 + OpBranch %319 %327 = OpLabel - %341 = OpLoad %int %i_3 - %342 = OpAccessChain %_ptr_Private_int %data %341 - OpStore %342 %int_n3 - OpBranch %323 + %348 = OpLoad %int %i_3 + %349 = OpAccessChain %_ptr_Private_int %data %348 + OpStore %349 %int_1 + OpBranch %319 %328 = OpLabel - %344 = OpLoad %int %i_3 - %345 = OpAccessChain %_ptr_Private_int %data %344 - OpStore %345 %int_n2 - OpBranch %323 - %329 = OpLabel - %347 = OpLoad %int %i_3 - %348 = OpAccessChain %_ptr_Private_int %data %347 - OpStore %348 %int_n1 - OpBranch %323 - %330 = OpLabel %350 = OpLoad %int %i_3 %351 = OpAccessChain %_ptr_Private_int %data %350 - OpStore %351 %int_0 - OpBranch %323 - %331 = OpLabel + OpStore %351 %int_2 + OpBranch %319 + %329 = OpLabel %352 = OpLoad %int %i_3 %353 = OpAccessChain %_ptr_Private_int %data %352 - OpStore %353 %int_1 - OpBranch %323 - %332 = OpLabel - %354 = OpLoad %int %i_3 - %355 = OpAccessChain %_ptr_Private_int %data %354 - OpStore %355 %int_2 - OpBranch %323 - %333 = OpLabel - %356 = OpLoad %int %i_3 - %357 = OpAccessChain %_ptr_Private_int %data %356 - OpStore %357 %int_3 - OpBranch %323 - %334 = OpLabel - %359 = OpLoad %int %i_3 - %360 = OpAccessChain %_ptr_Private_int %data %359 - OpStore %360 %int_4 - OpBranch %323 - %324 = OpLabel - OpBranch %323 - %323 = OpLabel - %362 = OpLoad %int %i_3 - %363 = OpIAdd %int %362 %int_1 - OpStore %i_3 %363 - OpBranch %320 - %320 = OpLabel - %364 = OpLoad %int %i_3 - %365 = OpSLessThan %bool %364 %int_10 - OpSelectionMerge %366 None - OpBranchConditional %365 %367 %368 - %367 = OpLabel - OpBranch %366 - %368 = OpLabel + OpStore %353 %int_3 + OpBranch %319 + %330 = OpLabel + %355 = OpLoad %int %i_3 + %356 = OpAccessChain %_ptr_Private_int %data %355 + OpStore %356 %int_4 + OpBranch %319 + %320 = OpLabel OpBranch %319 - %366 = OpLabel - OpBranch %318 %319 = OpLabel + %358 = OpLoad %int %i_3 + %359 = OpIAdd %int %358 %int_1 + OpStore %i_3 %359 + OpBranch %316 + %316 = OpLabel + %360 = OpLoad %int %i_3 + %361 = OpSLessThan %bool %360 %int_10 + OpBranchConditional %361 %314 %315 + %315 = OpLabel OpStore %j_1 %int_0 - OpBranch %369 + OpBranch %362 + %362 = OpLabel + OpLoopMerge %363 %364 None + OpBranch %365 + %365 = OpLabel + %366 = OpLoad %int %j_1 + %367 = OpSLessThan %bool %366 %int_10 + OpSelectionMerge %368 None + OpBranchConditional %367 %369 %370 %369 = OpLabel - OpLoopMerge %370 %371 None - OpBranch %372 - %372 = OpLabel - %373 = OpLoad %int %j_1 - %374 = OpSLessThan %bool %373 %int_10 - OpSelectionMerge %375 None - OpBranchConditional %374 %376 %377 - %376 = OpLabel - OpBranch %375 - %377 = OpLabel - OpBranch %370 - %375 = OpLabel - %378 = OpLoad %int %j_1 - %379 = OpLoad %int %j_1 - %380 = OpAccessChain %_ptr_Private_int %data %379 - %381 = OpLoad %int %380 - %382 = OpAccessChain %_ptr_Private_int %temp %378 - OpStore %382 %381 - OpBranch %371 - %371 = OpLabel - %383 = OpLoad %int %j_1 - %384 = OpIAdd %int %383 %int_1 - OpStore %j_1 %384 - OpBranch %369 + OpBranch %368 %370 = OpLabel - %385 = OpFunctionCall %void %mergeSort_ - %387 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %388 = OpLoad %float %387 - %389 = OpConvertFToS %int %388 - %391 = OpSLessThan %bool %389 %int_30 - OpSelectionMerge %392 None - OpBranchConditional %391 %393 %394 - %393 = OpLabel - %395 = OpAccessChain %_ptr_Private_int %data %int_0 - %396 = OpLoad %int %395 - %398 = OpConvertSToF %float %396 - %400 = OpFDiv %float %398 %float_10 - %401 = OpFAdd %float %float_0_5 %400 - OpStore %grey %401 - OpBranch %392 - %394 = OpLabel - %402 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %403 = OpLoad %float %402 - %404 = OpConvertFToS %int %403 - %406 = OpSLessThan %bool %404 %int_60 - OpSelectionMerge %407 None - OpBranchConditional %406 %408 %409 - %408 = OpLabel - %410 = OpAccessChain %_ptr_Private_int %data %int_1 - %411 = OpLoad %int %410 - %412 = OpConvertSToF %float %411 - %413 = OpFDiv %float %412 %float_10 - %414 = OpFAdd %float %float_0_5 %413 - OpStore %grey %414 - OpBranch %407 - %409 = OpLabel - %415 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %416 = OpLoad %float %415 - %417 = OpConvertFToS %int %416 - %419 = OpSLessThan %bool %417 %int_90 - OpSelectionMerge %420 None - OpBranchConditional %419 %421 %422 - %421 = OpLabel - %423 = OpAccessChain %_ptr_Private_int %data %int_2 - %424 = OpLoad %int %423 - %425 = OpConvertSToF %float %424 - %426 = OpFDiv %float %425 %float_10 - %427 = OpFAdd %float %float_0_5 %426 - OpStore %grey %427 - OpBranch %420 - %422 = OpLabel - %428 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %429 = OpLoad %float %428 - %430 = OpConvertFToS %int %429 - %432 = OpSLessThan %bool %430 %int_120 - OpSelectionMerge %433 None - OpBranchConditional %432 %434 %435 - %434 = OpLabel - %436 = OpAccessChain %_ptr_Private_int %data %int_3 - %437 = OpLoad %int %436 - %438 = OpConvertSToF %float %437 - %439 = OpFDiv %float %438 %float_10 - %440 = OpFAdd %float %float_0_5 %439 - OpStore %grey %440 - OpBranch %433 - %435 = OpLabel - %441 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %442 = OpLoad %float %441 - %443 = OpConvertFToS %int %442 - %445 = OpSLessThan %bool %443 %int_150 - OpSelectionMerge %446 None - OpBranchConditional %445 %447 %448 - %447 = OpLabel + OpBranch %363 + %368 = OpLabel + %371 = OpLoad %int %j_1 + %372 = OpLoad %int %j_1 + %373 = OpAccessChain %_ptr_Private_int %data %372 + %374 = OpLoad %int %373 + %375 = OpAccessChain %_ptr_Private_int %temp %371 + OpStore %375 %374 + OpBranch %364 + %364 = OpLabel + %376 = OpLoad %int %j_1 + %377 = OpIAdd %int %376 %int_1 + OpStore %j_1 %377 + OpBranch %362 + %363 = OpLabel + %378 = OpFunctionCall %void %mergeSort_ + %380 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %381 = OpLoad %float %380 + %382 = OpConvertFToS %int %381 + %384 = OpSLessThan %bool %382 %int_30 + OpSelectionMerge %385 None + OpBranchConditional %384 %386 %387 + %386 = OpLabel + %388 = OpAccessChain %_ptr_Private_int %data %int_0 + %389 = OpLoad %int %388 + %391 = OpConvertSToF %float %389 + %393 = OpFDiv %float %391 %float_10 + %394 = OpFAdd %float %float_0_5 %393 + OpStore %grey %394 + OpBranch %385 + %387 = OpLabel + %395 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %396 = OpLoad %float %395 + %397 = OpConvertFToS %int %396 + %399 = OpSLessThan %bool %397 %int_60 + OpSelectionMerge %400 None + OpBranchConditional %399 %401 %402 + %401 = OpLabel + %403 = OpAccessChain %_ptr_Private_int %data %int_1 + %404 = OpLoad %int %403 + %405 = OpConvertSToF %float %404 + %406 = OpFDiv %float %405 %float_10 + %407 = OpFAdd %float %float_0_5 %406 + OpStore %grey %407 + OpBranch %400 + %402 = OpLabel + %408 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %409 = OpLoad %float %408 + %410 = OpConvertFToS %int %409 + %412 = OpSLessThan %bool %410 %int_90 + OpSelectionMerge %413 None + OpBranchConditional %412 %414 %415 + %414 = OpLabel + %416 = OpAccessChain %_ptr_Private_int %data %int_2 + %417 = OpLoad %int %416 + %418 = OpConvertSToF %float %417 + %419 = OpFDiv %float %418 %float_10 + %420 = OpFAdd %float %float_0_5 %419 + OpStore %grey %420 + OpBranch %413 + %415 = OpLabel + %421 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %422 = OpLoad %float %421 + %423 = OpConvertFToS %int %422 + %425 = OpSLessThan %bool %423 %int_120 + OpSelectionMerge %426 None + OpBranchConditional %425 %427 %428 + %427 = OpLabel + %429 = OpAccessChain %_ptr_Private_int %data %int_3 + %430 = OpLoad %int %429 + %431 = OpConvertSToF %float %430 + %432 = OpFDiv %float %431 %float_10 + %433 = OpFAdd %float %float_0_5 %432 + OpStore %grey %433 + OpBranch %426 + %428 = OpLabel + %434 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %435 = OpLoad %float %434 + %436 = OpConvertFToS %int %435 + %438 = OpSLessThan %bool %436 %int_150 + OpSelectionMerge %439 None + OpBranchConditional %438 %440 %441 + %440 = OpLabel OpKill + %441 = OpLabel + %442 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %443 = OpLoad %float %442 + %444 = OpConvertFToS %int %443 + %446 = OpSLessThan %bool %444 %int_180 + OpSelectionMerge %447 None + OpBranchConditional %446 %448 %449 %448 = OpLabel - %449 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %450 = OpLoad %float %449 - %451 = OpConvertFToS %int %450 - %453 = OpSLessThan %bool %451 %int_180 - OpSelectionMerge %454 None - OpBranchConditional %453 %455 %456 - %455 = OpLabel - %458 = OpAccessChain %_ptr_Private_int %data %int_5 - %459 = OpLoad %int %458 - %460 = OpConvertSToF %float %459 - %461 = OpFDiv %float %460 %float_10 - %462 = OpFAdd %float %float_0_5 %461 - OpStore %grey %462 - OpBranch %454 - %456 = OpLabel - %463 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %464 = OpLoad %float %463 - %465 = OpConvertFToS %int %464 - %467 = OpSLessThan %bool %465 %int_210 - OpSelectionMerge %468 None - OpBranchConditional %467 %469 %470 - %469 = OpLabel - %472 = OpAccessChain %_ptr_Private_int %data %int_6 - %473 = OpLoad %int %472 - %474 = OpConvertSToF %float %473 - %475 = OpFDiv %float %474 %float_10 - %476 = OpFAdd %float %float_0_5 %475 - OpStore %grey %476 - OpBranch %468 - %470 = OpLabel - %477 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %478 = OpLoad %float %477 - %479 = OpConvertFToS %int %478 - %481 = OpSLessThan %bool %479 %int_240 - OpSelectionMerge %482 None - OpBranchConditional %481 %483 %484 - %483 = OpLabel - %486 = OpAccessChain %_ptr_Private_int %data %int_7 - %487 = OpLoad %int %486 - %488 = OpConvertSToF %float %487 - %489 = OpFDiv %float %488 %float_10 - %490 = OpFAdd %float %float_0_5 %489 - OpStore %grey %490 - OpBranch %482 - %484 = OpLabel - %491 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %492 = OpLoad %float %491 - %493 = OpConvertFToS %int %492 - %495 = OpSLessThan %bool %493 %int_270 - OpSelectionMerge %496 None - OpBranchConditional %495 %497 %498 - %497 = OpLabel - %500 = OpAccessChain %_ptr_Private_int %data %int_8 - %501 = OpLoad %int %500 - %502 = OpConvertSToF %float %501 - %503 = OpFDiv %float %502 %float_10 - %504 = OpFAdd %float %float_0_5 %503 - OpStore %grey %504 - OpBranch %496 - %498 = OpLabel + %451 = OpAccessChain %_ptr_Private_int %data %int_5 + %452 = OpLoad %int %451 + %453 = OpConvertSToF %float %452 + %454 = OpFDiv %float %453 %float_10 + %455 = OpFAdd %float %float_0_5 %454 + OpStore %grey %455 + OpBranch %447 + %449 = OpLabel + %456 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %457 = OpLoad %float %456 + %458 = OpConvertFToS %int %457 + %460 = OpSLessThan %bool %458 %int_210 + OpSelectionMerge %461 None + OpBranchConditional %460 %462 %463 + %462 = OpLabel + %465 = OpAccessChain %_ptr_Private_int %data %int_6 + %466 = OpLoad %int %465 + %467 = OpConvertSToF %float %466 + %468 = OpFDiv %float %467 %float_10 + %469 = OpFAdd %float %float_0_5 %468 + OpStore %grey %469 + OpBranch %461 + %463 = OpLabel + %470 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %471 = OpLoad %float %470 + %472 = OpConvertFToS %int %471 + %474 = OpSLessThan %bool %472 %int_240 + OpSelectionMerge %475 None + OpBranchConditional %474 %476 %477 + %476 = OpLabel + %479 = OpAccessChain %_ptr_Private_int %data %int_7 + %480 = OpLoad %int %479 + %481 = OpConvertSToF %float %480 + %482 = OpFDiv %float %481 %float_10 + %483 = OpFAdd %float %float_0_5 %482 + OpStore %grey %483 + OpBranch %475 + %477 = OpLabel + %484 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %485 = OpLoad %float %484 + %486 = OpConvertFToS %int %485 + %488 = OpSLessThan %bool %486 %int_270 + OpSelectionMerge %489 None + OpBranchConditional %488 %490 %491 + %490 = OpLabel + %493 = OpAccessChain %_ptr_Private_int %data %int_8 + %494 = OpLoad %int %493 + %495 = OpConvertSToF %float %494 + %496 = OpFDiv %float %495 %float_10 + %497 = OpFAdd %float %float_0_5 %496 + OpStore %grey %497 + OpBranch %489 + %491 = OpLabel OpKill - %496 = OpLabel - OpBranch %482 - %482 = OpLabel - OpBranch %468 - %468 = OpLabel - OpBranch %454 - %454 = OpLabel - OpBranch %446 - %446 = OpLabel - OpBranch %433 - %433 = OpLabel - OpBranch %420 - %420 = OpLabel - OpBranch %407 - %407 = OpLabel - OpBranch %392 - %392 = OpLabel - %505 = OpLoad %float %grey - %507 = OpCompositeConstruct %v3float %505 %505 %505 - %508 = OpCompositeExtract %float %507 0 - %509 = OpCompositeExtract %float %507 1 - %510 = OpCompositeExtract %float %507 2 - %511 = OpCompositeConstruct %v4float %508 %509 %510 %float_1 - OpStore %x_GLF_color %511 + %489 = OpLabel + OpBranch %475 + %475 = OpLabel + OpBranch %461 + %461 = OpLabel + OpBranch %447 + %447 = OpLabel + OpBranch %439 + %439 = OpLabel + OpBranch %426 + %426 = OpLabel + OpBranch %413 + %413 = OpLabel + OpBranch %400 + %400 = OpLabel + OpBranch %385 + %385 = OpLabel + %498 = OpLoad %float %grey + %500 = OpCompositeConstruct %v3float %498 %498 %498 + %501 = OpCompositeExtract %float %500 0 + %502 = OpCompositeExtract %float %500 1 + %503 = OpCompositeExtract %float %500 2 + %504 = OpCompositeConstruct %v4float %501 %502 %503 %float_1 + OpStore %x_GLF_color %504 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %512 +%tint_symbol_3 = OpFunction %void None %505 %tint_symbol_1 = OpFunctionParameter %main_out - %516 = OpLabel - %517 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %517 + %509 = OpLabel + %510 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %510 OpReturn OpFunctionEnd - %main = OpFunction %void None %246 - %519 = OpLabel - %520 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %520 - %521 = OpFunctionCall %void %main_1 - %523 = OpLoad %v4float %x_GLF_color - %524 = OpCompositeConstruct %main_out %523 - %522 = OpFunctionCall %void %tint_symbol_3 %524 + %main = OpFunction %void None %242 + %512 = OpLabel + %513 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %513 + %514 = OpFunctionCall %void %main_1 + %516 = OpLoad %v4float %x_GLF_color + %517 = OpCompositeConstruct %main_out %516 + %515 = OpFunctionCall %void %tint_symbol_3 %517 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 320[%320] is not post dominated by the back-edge block 366[%366] - %366 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.wgsl.expected.spvasm index aa67796b49..77c510cbba 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 525 +; Bound: 522 ; Schema: 0 OpCapability Shader %290 = OpExtInstImport "GLSL.std.450" @@ -140,7 +138,7 @@ SKIP: FAILED %int_8 = OpConstant %int 8 %v3float = OpTypeVector %float 3 %main_out = OpTypeStruct %v4float - %512 = OpTypeFunction %void %main_out + %509 = OpTypeFunction %void %main_out %merge_i1_i1_i1_ = OpFunction %void None %23 %from = OpFunctionParameter %_ptr_Function_int %mid = OpFunctionParameter %_ptr_Function_int @@ -648,217 +646,207 @@ SKIP: FAILED %320 = OpLabel %364 = OpLoad %int %i_3 %365 = OpSLessThan %bool %364 %int_10 - OpSelectionMerge %366 None - OpBranchConditional %365 %367 %368 - %367 = OpLabel - OpBranch %366 - %368 = OpLabel - OpBranch %319 - %366 = OpLabel - OpBranch %318 + OpBranchConditional %365 %318 %319 %319 = OpLabel OpStore %j_1 %int_0 + OpBranch %366 + %366 = OpLabel + OpLoopMerge %367 %368 None OpBranch %369 %369 = OpLabel - OpLoopMerge %370 %371 None + %370 = OpLoad %int %j_1 + %371 = OpSLessThan %bool %370 %int_10 + OpSelectionMerge %372 None + OpBranchConditional %371 %373 %374 + %373 = OpLabel OpBranch %372 + %374 = OpLabel + OpBranch %367 %372 = OpLabel - %373 = OpLoad %int %j_1 - %374 = OpSLessThan %bool %373 %int_10 - OpSelectionMerge %375 None - OpBranchConditional %374 %376 %377 - %376 = OpLabel - OpBranch %375 - %377 = OpLabel - OpBranch %370 - %375 = OpLabel - %378 = OpLoad %int %j_1 - %379 = OpLoad %int %j_1 - %380 = OpAccessChain %_ptr_Private_int %data %379 - %381 = OpLoad %int %380 - %382 = OpAccessChain %_ptr_Private_int %temp %378 - OpStore %382 %381 - OpBranch %371 - %371 = OpLabel - %383 = OpLoad %int %j_1 - %384 = OpIAdd %int %383 %int_1 - OpStore %j_1 %384 - OpBranch %369 - %370 = OpLabel - %385 = OpFunctionCall %void %mergeSort_ - %387 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %388 = OpLoad %float %387 - %389 = OpConvertFToS %int %388 - %391 = OpSLessThan %bool %389 %int_30 - OpSelectionMerge %392 None - OpBranchConditional %391 %393 %394 - %393 = OpLabel - %395 = OpAccessChain %_ptr_Private_int %data %int_0 - %396 = OpLoad %int %395 - %398 = OpConvertSToF %float %396 - %400 = OpFDiv %float %398 %float_10 - %401 = OpFAdd %float %float_0_5 %400 - OpStore %grey %401 - OpBranch %392 - %394 = OpLabel - %402 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %403 = OpLoad %float %402 - %404 = OpConvertFToS %int %403 - %406 = OpSLessThan %bool %404 %int_60 - OpSelectionMerge %407 None - OpBranchConditional %406 %408 %409 - %408 = OpLabel - %410 = OpAccessChain %_ptr_Private_int %data %int_1 - %411 = OpLoad %int %410 - %412 = OpConvertSToF %float %411 - %413 = OpFDiv %float %412 %float_10 - %414 = OpFAdd %float %float_0_5 %413 - OpStore %grey %414 - OpBranch %407 - %409 = OpLabel - %415 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %416 = OpLoad %float %415 - %417 = OpConvertFToS %int %416 - %419 = OpSLessThan %bool %417 %int_90 - OpSelectionMerge %420 None - OpBranchConditional %419 %421 %422 - %421 = OpLabel - %423 = OpAccessChain %_ptr_Private_int %data %int_2 - %424 = OpLoad %int %423 - %425 = OpConvertSToF %float %424 - %426 = OpFDiv %float %425 %float_10 - %427 = OpFAdd %float %float_0_5 %426 - OpStore %grey %427 - OpBranch %420 - %422 = OpLabel - %428 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %429 = OpLoad %float %428 - %430 = OpConvertFToS %int %429 - %432 = OpSLessThan %bool %430 %int_120 - OpSelectionMerge %433 None - OpBranchConditional %432 %434 %435 - %434 = OpLabel - %436 = OpAccessChain %_ptr_Private_int %data %int_3 - %437 = OpLoad %int %436 - %438 = OpConvertSToF %float %437 - %439 = OpFDiv %float %438 %float_10 - %440 = OpFAdd %float %float_0_5 %439 - OpStore %grey %440 - OpBranch %433 - %435 = OpLabel - %441 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %442 = OpLoad %float %441 - %443 = OpConvertFToS %int %442 - %445 = OpSLessThan %bool %443 %int_150 - OpSelectionMerge %446 None - OpBranchConditional %445 %447 %448 - %447 = OpLabel + %375 = OpLoad %int %j_1 + %376 = OpLoad %int %j_1 + %377 = OpAccessChain %_ptr_Private_int %data %376 + %378 = OpLoad %int %377 + %379 = OpAccessChain %_ptr_Private_int %temp %375 + OpStore %379 %378 + OpBranch %368 + %368 = OpLabel + %380 = OpLoad %int %j_1 + %381 = OpIAdd %int %380 %int_1 + OpStore %j_1 %381 + OpBranch %366 + %367 = OpLabel + %382 = OpFunctionCall %void %mergeSort_ + %384 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %385 = OpLoad %float %384 + %386 = OpConvertFToS %int %385 + %388 = OpSLessThan %bool %386 %int_30 + OpSelectionMerge %389 None + OpBranchConditional %388 %390 %391 + %390 = OpLabel + %392 = OpAccessChain %_ptr_Private_int %data %int_0 + %393 = OpLoad %int %392 + %395 = OpConvertSToF %float %393 + %397 = OpFDiv %float %395 %float_10 + %398 = OpFAdd %float %float_0_5 %397 + OpStore %grey %398 + OpBranch %389 + %391 = OpLabel + %399 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %400 = OpLoad %float %399 + %401 = OpConvertFToS %int %400 + %403 = OpSLessThan %bool %401 %int_60 + OpSelectionMerge %404 None + OpBranchConditional %403 %405 %406 + %405 = OpLabel + %407 = OpAccessChain %_ptr_Private_int %data %int_1 + %408 = OpLoad %int %407 + %409 = OpConvertSToF %float %408 + %410 = OpFDiv %float %409 %float_10 + %411 = OpFAdd %float %float_0_5 %410 + OpStore %grey %411 + OpBranch %404 + %406 = OpLabel + %412 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %413 = OpLoad %float %412 + %414 = OpConvertFToS %int %413 + %416 = OpSLessThan %bool %414 %int_90 + OpSelectionMerge %417 None + OpBranchConditional %416 %418 %419 + %418 = OpLabel + %420 = OpAccessChain %_ptr_Private_int %data %int_2 + %421 = OpLoad %int %420 + %422 = OpConvertSToF %float %421 + %423 = OpFDiv %float %422 %float_10 + %424 = OpFAdd %float %float_0_5 %423 + OpStore %grey %424 + OpBranch %417 + %419 = OpLabel + %425 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %426 = OpLoad %float %425 + %427 = OpConvertFToS %int %426 + %429 = OpSLessThan %bool %427 %int_120 + OpSelectionMerge %430 None + OpBranchConditional %429 %431 %432 + %431 = OpLabel + %433 = OpAccessChain %_ptr_Private_int %data %int_3 + %434 = OpLoad %int %433 + %435 = OpConvertSToF %float %434 + %436 = OpFDiv %float %435 %float_10 + %437 = OpFAdd %float %float_0_5 %436 + OpStore %grey %437 + OpBranch %430 + %432 = OpLabel + %438 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %439 = OpLoad %float %438 + %440 = OpConvertFToS %int %439 + %442 = OpSLessThan %bool %440 %int_150 + OpSelectionMerge %443 None + OpBranchConditional %442 %444 %445 + %444 = OpLabel OpKill - %448 = OpLabel - %449 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %450 = OpLoad %float %449 - %451 = OpConvertFToS %int %450 - %453 = OpSLessThan %bool %451 %int_180 - OpSelectionMerge %454 None - OpBranchConditional %453 %455 %456 - %455 = OpLabel - %458 = OpAccessChain %_ptr_Private_int %data %int_5 - %459 = OpLoad %int %458 - %460 = OpConvertSToF %float %459 - %461 = OpFDiv %float %460 %float_10 - %462 = OpFAdd %float %float_0_5 %461 - OpStore %grey %462 - OpBranch %454 - %456 = OpLabel - %463 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %464 = OpLoad %float %463 - %465 = OpConvertFToS %int %464 - %467 = OpSLessThan %bool %465 %int_210 - OpSelectionMerge %468 None - OpBranchConditional %467 %469 %470 - %469 = OpLabel - %472 = OpAccessChain %_ptr_Private_int %data %int_6 - %473 = OpLoad %int %472 - %474 = OpConvertSToF %float %473 - %475 = OpFDiv %float %474 %float_10 - %476 = OpFAdd %float %float_0_5 %475 - OpStore %grey %476 - OpBranch %468 - %470 = OpLabel - %477 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %478 = OpLoad %float %477 - %479 = OpConvertFToS %int %478 - %481 = OpSLessThan %bool %479 %int_240 - OpSelectionMerge %482 None - OpBranchConditional %481 %483 %484 - %483 = OpLabel - %486 = OpAccessChain %_ptr_Private_int %data %int_7 - %487 = OpLoad %int %486 - %488 = OpConvertSToF %float %487 - %489 = OpFDiv %float %488 %float_10 - %490 = OpFAdd %float %float_0_5 %489 - OpStore %grey %490 - OpBranch %482 - %484 = OpLabel - %491 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %492 = OpLoad %float %491 - %493 = OpConvertFToS %int %492 - %495 = OpSLessThan %bool %493 %int_270 - OpSelectionMerge %496 None - OpBranchConditional %495 %497 %498 - %497 = OpLabel - %500 = OpAccessChain %_ptr_Private_int %data %int_8 - %501 = OpLoad %int %500 - %502 = OpConvertSToF %float %501 - %503 = OpFDiv %float %502 %float_10 - %504 = OpFAdd %float %float_0_5 %503 - OpStore %grey %504 - OpBranch %496 - %498 = OpLabel + %445 = OpLabel + %446 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %447 = OpLoad %float %446 + %448 = OpConvertFToS %int %447 + %450 = OpSLessThan %bool %448 %int_180 + OpSelectionMerge %451 None + OpBranchConditional %450 %452 %453 + %452 = OpLabel + %455 = OpAccessChain %_ptr_Private_int %data %int_5 + %456 = OpLoad %int %455 + %457 = OpConvertSToF %float %456 + %458 = OpFDiv %float %457 %float_10 + %459 = OpFAdd %float %float_0_5 %458 + OpStore %grey %459 + OpBranch %451 + %453 = OpLabel + %460 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %461 = OpLoad %float %460 + %462 = OpConvertFToS %int %461 + %464 = OpSLessThan %bool %462 %int_210 + OpSelectionMerge %465 None + OpBranchConditional %464 %466 %467 + %466 = OpLabel + %469 = OpAccessChain %_ptr_Private_int %data %int_6 + %470 = OpLoad %int %469 + %471 = OpConvertSToF %float %470 + %472 = OpFDiv %float %471 %float_10 + %473 = OpFAdd %float %float_0_5 %472 + OpStore %grey %473 + OpBranch %465 + %467 = OpLabel + %474 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %475 = OpLoad %float %474 + %476 = OpConvertFToS %int %475 + %478 = OpSLessThan %bool %476 %int_240 + OpSelectionMerge %479 None + OpBranchConditional %478 %480 %481 + %480 = OpLabel + %483 = OpAccessChain %_ptr_Private_int %data %int_7 + %484 = OpLoad %int %483 + %485 = OpConvertSToF %float %484 + %486 = OpFDiv %float %485 %float_10 + %487 = OpFAdd %float %float_0_5 %486 + OpStore %grey %487 + OpBranch %479 + %481 = OpLabel + %488 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %489 = OpLoad %float %488 + %490 = OpConvertFToS %int %489 + %492 = OpSLessThan %bool %490 %int_270 + OpSelectionMerge %493 None + OpBranchConditional %492 %494 %495 + %494 = OpLabel + %497 = OpAccessChain %_ptr_Private_int %data %int_8 + %498 = OpLoad %int %497 + %499 = OpConvertSToF %float %498 + %500 = OpFDiv %float %499 %float_10 + %501 = OpFAdd %float %float_0_5 %500 + OpStore %grey %501 + OpBranch %493 + %495 = OpLabel OpKill - %496 = OpLabel - OpBranch %482 - %482 = OpLabel - OpBranch %468 - %468 = OpLabel - OpBranch %454 - %454 = OpLabel - OpBranch %446 - %446 = OpLabel - OpBranch %433 - %433 = OpLabel - OpBranch %420 - %420 = OpLabel - OpBranch %407 - %407 = OpLabel - OpBranch %392 - %392 = OpLabel - %505 = OpLoad %float %grey - %507 = OpCompositeConstruct %v3float %505 %505 %505 - %508 = OpCompositeExtract %float %507 0 - %509 = OpCompositeExtract %float %507 1 - %510 = OpCompositeExtract %float %507 2 - %511 = OpCompositeConstruct %v4float %508 %509 %510 %float_1 - OpStore %x_GLF_color %511 + %493 = OpLabel + OpBranch %479 + %479 = OpLabel + OpBranch %465 + %465 = OpLabel + OpBranch %451 + %451 = OpLabel + OpBranch %443 + %443 = OpLabel + OpBranch %430 + %430 = OpLabel + OpBranch %417 + %417 = OpLabel + OpBranch %404 + %404 = OpLabel + OpBranch %389 + %389 = OpLabel + %502 = OpLoad %float %grey + %504 = OpCompositeConstruct %v3float %502 %502 %502 + %505 = OpCompositeExtract %float %504 0 + %506 = OpCompositeExtract %float %504 1 + %507 = OpCompositeExtract %float %504 2 + %508 = OpCompositeConstruct %v4float %505 %506 %507 %float_1 + OpStore %x_GLF_color %508 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %512 +%tint_symbol_3 = OpFunction %void None %509 %tint_symbol_1 = OpFunctionParameter %main_out - %516 = OpLabel - %517 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %517 + %513 = OpLabel + %514 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %514 OpReturn OpFunctionEnd %main = OpFunction %void None %246 - %519 = OpLabel - %520 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %520 - %521 = OpFunctionCall %void %main_1 - %523 = OpLoad %v4float %x_GLF_color - %524 = OpCompositeConstruct %main_out %523 - %522 = OpFunctionCall %void %tint_symbol_3 %524 + %516 = OpLabel + %517 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %517 + %518 = OpFunctionCall %void %main_1 + %520 = OpLoad %v4float %x_GLF_color + %521 = OpCompositeConstruct %main_out %520 + %519 = OpFunctionCall %void %tint_symbol_3 %521 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 320[%320] is not post dominated by the back-edge block 366[%366] - %366 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.spvasm index 338bca8871..b0327f09e6 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.spvasm @@ -1,12 +1,10 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 523 +; Bound: 516 ; Schema: 0 OpCapability Shader - %288 = OpExtInstImport "GLSL.std.450" + %284 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2 OpExecutionMode %main OriginUpperLeft @@ -110,11 +108,11 @@ SKIP: FAILED %_ptr_Uniform_float = OpTypePointer Uniform %float %uint_1 = OpConstant %uint 1 %int_10 = OpConstant %int 10 - %244 = OpTypeFunction %void + %240 = OpTypeFunction %void %int_9 = OpConstant %int 9 %int_2 = OpConstant %int 2 %_ptr_Function_float = OpTypePointer Function %float - %312 = OpConstantNull %float + %308 = OpConstantNull %float %int_n5 = OpConstant %int -5 %int_n4 = OpConstant %int -4 %int_n3 = OpConstant %int -3 @@ -140,7 +138,7 @@ SKIP: FAILED %int_8 = OpConstant %int 8 %v3float = OpTypeVector %float 3 %main_out = OpTypeStruct %v4float - %510 = OpTypeFunction %void %main_out + %503 = OpTypeFunction %void %main_out %merge_i1_i1_i1_ = OpFunction %void None %23 %from = OpFunctionParameter %_ptr_Function_int %mid = OpFunctionParameter %_ptr_Function_int @@ -193,297 +191,287 @@ SKIP: FAILED %76 = OpLoad %int %j %78 = OpLoad %int %to %79 = OpSLessThanEqual %bool %73 %75 - OpSelectionMerge %80 None - OpBranchConditional %79 %81 %80 - %81 = OpLabel - %82 = OpSLessThanEqual %bool %76 %78 - OpBranch %80 - %80 = OpLabel - %83 = OpPhi %bool %79 %70 %82 %81 - OpSelectionMerge %84 None - OpBranchConditional %83 %85 %86 - %85 = OpLabel - OpBranch %84 - %86 = OpLabel - OpBranch %45 + %80 = OpSLessThanEqual %bool %76 %78 + %81 = OpLogicalAnd %bool %79 %80 + OpSelectionMerge %82 None + OpBranchConditional %81 %83 %84 + %83 = OpLabel + OpBranch %82 %84 = OpLabel - %87 = OpLoad %int %i - %89 = OpAccessChain %_ptr_Private_int %data %87 - %90 = OpLoad %int %89 - %91 = OpLoad %int %j - %92 = OpAccessChain %_ptr_Private_int %data %91 - %93 = OpLoad %int %92 - %94 = OpSLessThan %bool %90 %93 - OpSelectionMerge %95 None - OpBranchConditional %94 %96 %97 - %96 = OpLabel - %98 = OpLoad %int %k - OpStore %x_283 %98 - %99 = OpLoad %int %x_283 - OpStore %x_285_phi %99 - OpBranch %95 - %97 = OpLabel - OpStore %x_284 %int_0 - %101 = OpLoad %int %x_284 - OpStore %x_285_phi %101 - OpBranch %95 + OpBranch %45 + %82 = OpLabel + %85 = OpLoad %int %i + %87 = OpAccessChain %_ptr_Private_int %data %85 + %88 = OpLoad %int %87 + %89 = OpLoad %int %j + %90 = OpAccessChain %_ptr_Private_int %data %89 + %91 = OpLoad %int %90 + %92 = OpSLessThan %bool %88 %91 + OpSelectionMerge %93 None + OpBranchConditional %92 %94 %95 + %94 = OpLabel + %96 = OpLoad %int %k + OpStore %x_283 %96 + %97 = OpLoad %int %x_283 + OpStore %x_285_phi %97 + OpBranch %93 %95 = OpLabel - %102 = OpLoad %int %x_285_phi - %103 = OpIAdd %int %102 %int_1 - OpSelectionMerge %104 None - OpBranchConditional %94 %105 %104 - %105 = OpLabel - OpStore %k %103 - %108 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 - %109 = OpLoad %float %108 - %111 = OpFOrdLessThanEqual %bool %float_1 %109 - %110 = OpLogicalNot %bool %111 - OpSelectionMerge %112 None - OpBranchConditional %110 %113 %114 - %113 = OpLabel - OpBranch %112 - %114 = OpLabel - OpBranch %46 + OpStore %x_284 %int_0 + %99 = OpLoad %int %x_284 + OpStore %x_285_phi %99 + OpBranch %93 + %93 = OpLabel + %100 = OpLoad %int %x_285_phi + %101 = OpIAdd %int %100 %int_1 + OpSelectionMerge %102 None + OpBranchConditional %92 %103 %102 + %103 = OpLabel + OpStore %k %101 + %106 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 + %107 = OpLoad %float %106 + %109 = OpFOrdLessThanEqual %bool %float_1 %107 + %108 = OpLogicalNot %bool %109 + OpSelectionMerge %110 None + OpBranchConditional %108 %111 %112 + %111 = OpLabel + OpBranch %110 %112 = OpLabel - OpBranch %104 - %104 = OpLabel - %116 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_1 - %117 = OpLoad %float %116 - %118 = OpFOrdGreaterThanEqual %bool %117 %float_0 - OpSelectionMerge %119 None - OpBranchConditional %118 %120 %121 - %120 = OpLabel - OpBranch %119 - %121 = OpLabel OpBranch %46 + %110 = OpLabel + OpBranch %102 + %102 = OpLabel + %114 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_1 + %115 = OpLoad %float %114 + %116 = OpFOrdGreaterThanEqual %bool %115 %float_0 + OpSelectionMerge %117 None + OpBranchConditional %116 %118 %119 + %118 = OpLabel + OpBranch %117 %119 = OpLabel - OpSelectionMerge %122 None - OpBranchConditional %94 %123 %124 - %123 = OpLabel - %125 = OpLoad %int %i - OpStore %x_303 %125 - %126 = OpLoad %int %x_303 - OpStore %x_305_phi %126 - OpBranch %122 - %124 = OpLabel - OpStore %x_304 %int_0 - %127 = OpLoad %int %x_304 - OpStore %x_305_phi %127 - OpBranch %122 + OpBranch %46 + %117 = OpLabel + OpSelectionMerge %120 None + OpBranchConditional %92 %121 %122 + %121 = OpLabel + %123 = OpLoad %int %i + OpStore %x_303 %123 + %124 = OpLoad %int %x_303 + OpStore %x_305_phi %124 + OpBranch %120 %122 = OpLabel - %128 = OpLoad %int %x_305_phi - %129 = OpSelect %int %94 %128 %int_0 - OpSelectionMerge %130 None - OpBranchConditional %94 %131 %130 - %131 = OpLabel - %132 = OpIAdd %int %129 %int_1 - OpStore %i %132 - OpBranch %130 - %130 = OpLabel - OpSelectionMerge %133 None - OpBranchConditional %94 %134 %135 - %134 = OpLabel - %136 = OpAccessChain %_ptr_Private_int %data %129 - %137 = OpLoad %int %136 - OpStore %x_318 %137 - %138 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_1 - %139 = OpLoad %float %138 - %140 = OpLoad %int %x_318 - OpStore %x_326_phi %140 - %142 = OpFOrdLessThanEqual %bool %float_0 %139 - %141 = OpLogicalNot %bool %142 - OpSelectionMerge %143 None - OpBranchConditional %141 %144 %143 - %144 = OpLabel + OpStore %x_304 %int_0 + %125 = OpLoad %int %x_304 + OpStore %x_305_phi %125 + OpBranch %120 + %120 = OpLabel + %126 = OpLoad %int %x_305_phi + %127 = OpSelect %int %92 %126 %int_0 + OpSelectionMerge %128 None + OpBranchConditional %92 %129 %128 + %129 = OpLabel + %130 = OpIAdd %int %127 %int_1 + OpStore %i %130 + OpBranch %128 + %128 = OpLabel + OpSelectionMerge %131 None + OpBranchConditional %92 %132 %133 + %132 = OpLabel + %134 = OpAccessChain %_ptr_Private_int %data %127 + %135 = OpLoad %int %134 + OpStore %x_318 %135 + %136 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_1 + %137 = OpLoad %float %136 + %138 = OpLoad %int %x_318 + OpStore %x_326_phi %138 + %140 = OpFOrdLessThanEqual %bool %float_0 %137 + %139 = OpLogicalNot %bool %140 + OpSelectionMerge %141 None + OpBranchConditional %139 %142 %141 + %142 = OpLabel OpBranch %46 - %143 = OpLabel - OpBranch %133 - %135 = OpLabel - OpStore %x_322 %int_0 - %145 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_1 - %146 = OpLoad %float %145 - %147 = OpLoad %int %x_322 - OpStore %x_326_phi %147 - %149 = OpFOrdLessThan %bool %146 %float_0 - %148 = OpLogicalNot %bool %149 - OpSelectionMerge %150 None - OpBranchConditional %148 %151 %152 - %151 = OpLabel - OpBranch %150 - %152 = OpLabel - OpBranch %46 - %150 = OpLabel - OpBranch %133 + %141 = OpLabel + OpBranch %131 %133 = OpLabel - %153 = OpLoad %int %x_326_phi - OpSelectionMerge %154 None - OpBranchConditional %94 %155 %154 - %155 = OpLabel - %156 = OpAccessChain %_ptr_Private_int %temp %102 - %157 = OpSelect %int %94 %153 %int_0 - OpStore %156 %157 - OpBranch %154 - %154 = OpLabel - OpSelectionMerge %158 None - OpBranchConditional %94 %159 %160 - %159 = OpLabel - OpStore %x_337 %int_0 - %161 = OpLoad %int %x_337 - OpStore %x_338_phi %161 - OpBranch %158 - %160 = OpLabel - %162 = OpLoad %int %k - OpStore %x_336 %162 - %163 = OpLoad %int %x_336 - OpStore %x_338_phi %163 - OpBranch %158 - %158 = OpLabel - %164 = OpLoad %int %x_338_phi - OpSelectionMerge %165 None - OpBranchConditional %94 %166 %167 - %166 = OpLabel - OpBranch %165 - %167 = OpLabel - %168 = OpIAdd %int %164 %int_1 - OpStore %k %168 - OpBranch %165 - %165 = OpLabel - %169 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 - %170 = OpLoad %float %169 - %172 = OpFOrdLessThanEqual %bool %float_1 %170 - %171 = OpLogicalNot %bool %172 - OpSelectionMerge %173 None - OpBranchConditional %171 %174 %175 - %174 = OpLabel - OpBranch %173 - %175 = OpLabel + OpStore %x_322 %int_0 + %143 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_1 + %144 = OpLoad %float %143 + %145 = OpLoad %int %x_322 + OpStore %x_326_phi %145 + %147 = OpFOrdLessThan %bool %144 %float_0 + %146 = OpLogicalNot %bool %147 + OpSelectionMerge %148 None + OpBranchConditional %146 %149 %150 + %149 = OpLabel + OpBranch %148 + %150 = OpLabel OpBranch %46 + %148 = OpLabel + OpBranch %131 + %131 = OpLabel + %151 = OpLoad %int %x_326_phi + OpSelectionMerge %152 None + OpBranchConditional %92 %153 %152 + %153 = OpLabel + %154 = OpAccessChain %_ptr_Private_int %temp %100 + %155 = OpSelect %int %92 %151 %int_0 + OpStore %154 %155 + OpBranch %152 + %152 = OpLabel + OpSelectionMerge %156 None + OpBranchConditional %92 %157 %158 + %157 = OpLabel + OpStore %x_337 %int_0 + %159 = OpLoad %int %x_337 + OpStore %x_338_phi %159 + OpBranch %156 + %158 = OpLabel + %160 = OpLoad %int %k + OpStore %x_336 %160 + %161 = OpLoad %int %x_336 + OpStore %x_338_phi %161 + OpBranch %156 + %156 = OpLabel + %162 = OpLoad %int %x_338_phi + OpSelectionMerge %163 None + OpBranchConditional %92 %164 %165 + %164 = OpLabel + OpBranch %163 + %165 = OpLabel + %166 = OpIAdd %int %162 %int_1 + OpStore %k %166 + OpBranch %163 + %163 = OpLabel + %167 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 + %168 = OpLoad %float %167 + %170 = OpFOrdLessThanEqual %bool %float_1 %168 + %169 = OpLogicalNot %bool %170 + OpSelectionMerge %171 None + OpBranchConditional %169 %172 %173 + %172 = OpLabel + OpBranch %171 %173 = OpLabel - OpSelectionMerge %176 None - OpBranchConditional %94 %177 %178 - %177 = OpLabel + OpBranch %46 + %171 = OpLabel + OpSelectionMerge %174 None + OpBranchConditional %92 %175 %176 + %175 = OpLabel OpStore %x_350 %int_0 - %179 = OpLoad %int %x_350 - OpStore %x_351_phi %179 - OpBranch %176 - %178 = OpLabel - %180 = OpLoad %int %j - OpStore %x_349 %180 - %181 = OpLoad %int %x_349 - OpStore %x_351_phi %181 - OpBranch %176 + %177 = OpLoad %int %x_350 + OpStore %x_351_phi %177 + OpBranch %174 %176 = OpLabel - %182 = OpLoad %int %x_351_phi - %183 = OpSelect %int %94 %int_0 %182 - OpSelectionMerge %184 None - OpBranchConditional %94 %185 %186 - %185 = OpLabel - OpBranch %184 - %186 = OpLabel - %187 = OpIAdd %int %183 %int_1 - OpStore %j %187 - OpBranch %184 + %178 = OpLoad %int %j + OpStore %x_349 %178 + %179 = OpLoad %int %x_349 + OpStore %x_351_phi %179 + OpBranch %174 + %174 = OpLabel + %180 = OpLoad %int %x_351_phi + %181 = OpSelect %int %92 %int_0 %180 + OpSelectionMerge %182 None + OpBranchConditional %92 %183 %184 + %183 = OpLabel + OpBranch %182 %184 = OpLabel - OpSelectionMerge %188 None - OpBranchConditional %94 %189 %190 - %189 = OpLabel + %185 = OpIAdd %int %181 %int_1 + OpStore %j %185 + OpBranch %182 + %182 = OpLabel + OpSelectionMerge %186 None + OpBranchConditional %92 %187 %188 + %187 = OpLabel OpStore %x_364 %int_0 - %191 = OpLoad %int %x_364 - OpStore %x_365_phi %191 - OpBranch %188 - %190 = OpLabel - %192 = OpAccessChain %_ptr_Private_int %data %183 - %193 = OpLoad %int %192 - OpStore %x_363 %193 - %194 = OpLoad %int %x_363 - OpStore %x_365_phi %194 - OpBranch %188 + %189 = OpLoad %int %x_364 + OpStore %x_365_phi %189 + OpBranch %186 %188 = OpLabel - %195 = OpLoad %int %x_365_phi - OpSelectionMerge %196 None - OpBranchConditional %94 %197 %198 - %197 = OpLabel - OpBranch %196 - %198 = OpLabel - %199 = OpAccessChain %_ptr_Private_int %temp %164 - OpStore %199 %195 - OpBranch %196 + %190 = OpAccessChain %_ptr_Private_int %data %181 + %191 = OpLoad %int %190 + OpStore %x_363 %191 + %192 = OpLoad %int %x_363 + OpStore %x_365_phi %192 + OpBranch %186 + %186 = OpLabel + %193 = OpLoad %int %x_365_phi + OpSelectionMerge %194 None + OpBranchConditional %92 %195 %196 + %195 = OpLabel + OpBranch %194 %196 = OpLabel + %197 = OpAccessChain %_ptr_Private_int %temp %162 + OpStore %197 %193 + OpBranch %194 + %194 = OpLabel OpBranch %46 %46 = OpLabel OpBranch %44 %45 = OpLabel + OpBranch %198 + %198 = OpLabel + OpLoopMerge %199 %200 None + OpBranch %201 + %201 = OpLabel + %202 = OpLoad %int %i + %203 = OpLoad %int %i + %205 = OpLoad %int %mid + %207 = OpSLessThan %bool %202 %int_10 + %208 = OpSLessThanEqual %bool %203 %205 + %209 = OpLogicalAnd %bool %207 %208 + OpSelectionMerge %210 None + OpBranchConditional %209 %211 %212 + %211 = OpLabel + OpBranch %210 + %212 = OpLabel + OpBranch %199 + %210 = OpLabel + %213 = OpLoad %int %k + %214 = OpIAdd %int %213 %int_1 + OpStore %k %214 + %215 = OpLoad %int %i + %216 = OpIAdd %int %215 %int_1 + OpStore %i %216 + %217 = OpAccessChain %_ptr_Private_int %data %215 + %218 = OpLoad %int %217 + %219 = OpAccessChain %_ptr_Private_int %temp %213 + OpStore %219 %218 OpBranch %200 %200 = OpLabel - OpLoopMerge %201 %202 None - OpBranch %203 - %203 = OpLabel - %204 = OpLoad %int %i - %205 = OpLoad %int %i - %207 = OpLoad %int %mid - %209 = OpSLessThan %bool %204 %int_10 - OpSelectionMerge %210 None - OpBranchConditional %209 %211 %210 - %211 = OpLabel - %212 = OpSLessThanEqual %bool %205 %207 - OpBranch %210 - %210 = OpLabel - %213 = OpPhi %bool %209 %203 %212 %211 - OpSelectionMerge %214 None - OpBranchConditional %213 %215 %216 - %215 = OpLabel - OpBranch %214 - %216 = OpLabel - OpBranch %201 - %214 = OpLabel - %217 = OpLoad %int %k - %218 = OpIAdd %int %217 %int_1 - OpStore %k %218 - %219 = OpLoad %int %i - %220 = OpIAdd %int %219 %int_1 - OpStore %i %220 - %221 = OpAccessChain %_ptr_Private_int %data %219 - %222 = OpLoad %int %221 - %223 = OpAccessChain %_ptr_Private_int %temp %217 - OpStore %223 %222 - OpBranch %202 - %202 = OpLabel - OpBranch %200 - %201 = OpLabel - %225 = OpLoad %int %from - OpStore %i_1 %225 - OpBranch %226 - %226 = OpLabel - OpLoopMerge %227 %228 None - OpBranch %229 - %229 = OpLabel - %230 = OpLoad %int %i_1 - %232 = OpLoad %int %to - %233 = OpSLessThanEqual %bool %230 %232 - OpSelectionMerge %234 None - OpBranchConditional %233 %235 %236 - %235 = OpLabel - OpBranch %234 - %236 = OpLabel - OpBranch %227 - %234 = OpLabel - %237 = OpLoad %int %i_1 + OpBranch %198 + %199 = OpLabel + %221 = OpLoad %int %from + OpStore %i_1 %221 + OpBranch %222 + %222 = OpLabel + OpLoopMerge %223 %224 None + OpBranch %225 + %225 = OpLabel + %226 = OpLoad %int %i_1 + %228 = OpLoad %int %to + %229 = OpSLessThanEqual %bool %226 %228 + OpSelectionMerge %230 None + OpBranchConditional %229 %231 %232 + %231 = OpLabel + OpBranch %230 + %232 = OpLabel + OpBranch %223 + %230 = OpLabel + %233 = OpLoad %int %i_1 + %234 = OpLoad %int %i_1 + %235 = OpAccessChain %_ptr_Private_int %temp %234 + %236 = OpLoad %int %235 + %237 = OpAccessChain %_ptr_Private_int %data %233 + OpStore %237 %236 + OpBranch %224 + %224 = OpLabel %238 = OpLoad %int %i_1 - %239 = OpAccessChain %_ptr_Private_int %temp %238 - %240 = OpLoad %int %239 - %241 = OpAccessChain %_ptr_Private_int %data %237 - OpStore %241 %240 - OpBranch %228 - %228 = OpLabel - %242 = OpLoad %int %i_1 - %243 = OpIAdd %int %242 %int_1 - OpStore %i_1 %243 - OpBranch %226 - %227 = OpLabel + %239 = OpIAdd %int %238 %int_1 + OpStore %i_1 %239 + OpBranch %222 + %223 = OpLabel OpReturn OpFunctionEnd - %mergeSort_ = OpFunction %void None %244 - %246 = OpLabel + %mergeSort_ = OpFunction %void None %240 + %242 = OpLabel %low = OpVariable %_ptr_Function_int Function %32 %high = OpVariable %_ptr_Function_int Function %32 %m = OpVariable %_ptr_Function_int Function %32 @@ -497,366 +485,356 @@ SKIP: FAILED OpStore %low %int_0 OpStore %high %int_9 OpStore %m %int_1 - OpBranch %258 - %258 = OpLabel - OpLoopMerge %259 %260 None + OpBranch %254 + %254 = OpLabel + OpLoopMerge %255 %256 None + OpBranch %257 + %257 = OpLabel + %258 = OpLoad %int %m + %259 = OpLoad %int %high + %260 = OpSLessThanEqual %bool %258 %259 + OpSelectionMerge %261 None + OpBranchConditional %260 %262 %263 + %262 = OpLabel OpBranch %261 + %263 = OpLabel + OpBranch %255 %261 = OpLabel - %262 = OpLoad %int %m - %263 = OpLoad %int %high - %264 = OpSLessThanEqual %bool %262 %263 - OpSelectionMerge %265 None - OpBranchConditional %264 %266 %267 - %266 = OpLabel + %264 = OpLoad %int %low + OpStore %i_2 %264 OpBranch %265 - %267 = OpLabel - OpBranch %259 %265 = OpLabel - %268 = OpLoad %int %low - OpStore %i_2 %268 - OpBranch %269 - %269 = OpLabel - OpLoopMerge %270 %271 None + OpLoopMerge %266 %267 None + OpBranch %268 + %268 = OpLabel + %269 = OpLoad %int %i_2 + %270 = OpLoad %int %high + %271 = OpSLessThan %bool %269 %270 + OpSelectionMerge %272 None + OpBranchConditional %271 %273 %274 + %273 = OpLabel OpBranch %272 + %274 = OpLabel + OpBranch %266 %272 = OpLabel - %273 = OpLoad %int %i_2 - %274 = OpLoad %int %high - %275 = OpSLessThan %bool %273 %274 - OpSelectionMerge %276 None - OpBranchConditional %275 %277 %278 - %277 = OpLabel - OpBranch %276 - %278 = OpLabel - OpBranch %270 - %276 = OpLabel - %279 = OpLoad %int %i_2 - OpStore %from_1 %279 + %275 = OpLoad %int %i_2 + OpStore %from_1 %275 + %276 = OpLoad %int %i_2 + %277 = OpLoad %int %m + %278 = OpIAdd %int %276 %277 + %279 = OpISub %int %278 %int_1 + OpStore %mid_1 %279 %280 = OpLoad %int %i_2 %281 = OpLoad %int %m - %282 = OpIAdd %int %280 %281 - %283 = OpISub %int %282 %int_1 - OpStore %mid_1 %283 - %284 = OpLoad %int %i_2 - %285 = OpLoad %int %m - %286 = OpLoad %int %high - %290 = OpIMul %int %int_2 %285 - %291 = OpIAdd %int %284 %290 - %292 = OpISub %int %291 %int_1 - %287 = OpExtInst %int %288 SMin %292 %286 - OpStore %to_1 %287 - %293 = OpLoad %int %from_1 - OpStore %param %293 - %294 = OpLoad %int %mid_1 - OpStore %param_1 %294 - %295 = OpLoad %int %to_1 - OpStore %param_2 %295 - %296 = OpFunctionCall %void %merge_i1_i1_i1_ %param %param_1 %param_2 - OpBranch %271 - %271 = OpLabel + %282 = OpLoad %int %high + %286 = OpIMul %int %int_2 %281 + %287 = OpIAdd %int %280 %286 + %288 = OpISub %int %287 %int_1 + %283 = OpExtInst %int %284 SMin %288 %282 + OpStore %to_1 %283 + %289 = OpLoad %int %from_1 + OpStore %param %289 + %290 = OpLoad %int %mid_1 + OpStore %param_1 %290 + %291 = OpLoad %int %to_1 + OpStore %param_2 %291 + %292 = OpFunctionCall %void %merge_i1_i1_i1_ %param %param_1 %param_2 + OpBranch %267 + %267 = OpLabel + %296 = OpLoad %int %m + %297 = OpLoad %int %i_2 + %298 = OpIMul %int %int_2 %296 + %299 = OpIAdd %int %297 %298 + OpStore %i_2 %299 + OpBranch %265 + %266 = OpLabel + OpBranch %256 + %256 = OpLabel %300 = OpLoad %int %m - %301 = OpLoad %int %i_2 - %302 = OpIMul %int %int_2 %300 - %303 = OpIAdd %int %301 %302 - OpStore %i_2 %303 - OpBranch %269 - %270 = OpLabel - OpBranch %260 - %260 = OpLabel - %304 = OpLoad %int %m - %305 = OpIMul %int %int_2 %304 - OpStore %m %305 - OpBranch %258 - %259 = OpLabel + %301 = OpIMul %int %int_2 %300 + OpStore %m %301 + OpBranch %254 + %255 = OpLabel OpReturn OpFunctionEnd - %main_1 = OpFunction %void None %244 - %307 = OpLabel + %main_1 = OpFunction %void None %240 + %303 = OpLabel %i_3 = OpVariable %_ptr_Function_int Function %32 %j_1 = OpVariable %_ptr_Function_int Function %32 - %grey = OpVariable %_ptr_Function_float Function %312 - %313 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 - %314 = OpLoad %float %313 - %315 = OpConvertFToS %int %314 - OpStore %i_3 %315 - OpBranch %316 - %316 = OpLabel - OpLoopMerge %317 %318 None - OpBranch %319 + %grey = OpVariable %_ptr_Function_float Function %308 + %309 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 + %310 = OpLoad %float %309 + %311 = OpConvertFToS %int %310 + OpStore %i_3 %311 + OpBranch %312 + %312 = OpLabel + OpLoopMerge %313 %314 None + OpBranch %315 + %315 = OpLabel + %316 = OpLoad %int %i_3 + OpSelectionMerge %317 None + OpSwitch %316 %318 9 %319 8 %320 7 %321 6 %322 5 %323 4 %324 3 %325 2 %326 1 %327 0 %328 %319 = OpLabel - %320 = OpLoad %int %i_3 - OpSelectionMerge %321 None - OpSwitch %320 %322 9 %323 8 %324 7 %325 6 %326 5 %327 4 %328 3 %329 2 %330 1 %331 0 %332 + %329 = OpLoad %int %i_3 + %330 = OpAccessChain %_ptr_Private_int %data %329 + OpStore %330 %int_n5 + OpBranch %317 + %320 = OpLabel + %332 = OpLoad %int %i_3 + %333 = OpAccessChain %_ptr_Private_int %data %332 + OpStore %333 %int_n4 + OpBranch %317 + %321 = OpLabel + %335 = OpLoad %int %i_3 + %336 = OpAccessChain %_ptr_Private_int %data %335 + OpStore %336 %int_n3 + OpBranch %317 + %322 = OpLabel + %338 = OpLoad %int %i_3 + %339 = OpAccessChain %_ptr_Private_int %data %338 + OpStore %339 %int_n2 + OpBranch %317 %323 = OpLabel - %333 = OpLoad %int %i_3 - %334 = OpAccessChain %_ptr_Private_int %data %333 - OpStore %334 %int_n5 - OpBranch %321 + %341 = OpLoad %int %i_3 + %342 = OpAccessChain %_ptr_Private_int %data %341 + OpStore %342 %int_n1 + OpBranch %317 %324 = OpLabel - %336 = OpLoad %int %i_3 - %337 = OpAccessChain %_ptr_Private_int %data %336 - OpStore %337 %int_n4 - OpBranch %321 + %344 = OpLoad %int %i_3 + %345 = OpAccessChain %_ptr_Private_int %data %344 + OpStore %345 %int_0 + OpBranch %317 %325 = OpLabel - %339 = OpLoad %int %i_3 - %340 = OpAccessChain %_ptr_Private_int %data %339 - OpStore %340 %int_n3 - OpBranch %321 + %346 = OpLoad %int %i_3 + %347 = OpAccessChain %_ptr_Private_int %data %346 + OpStore %347 %int_1 + OpBranch %317 %326 = OpLabel - %342 = OpLoad %int %i_3 - %343 = OpAccessChain %_ptr_Private_int %data %342 - OpStore %343 %int_n2 - OpBranch %321 - %327 = OpLabel - %345 = OpLoad %int %i_3 - %346 = OpAccessChain %_ptr_Private_int %data %345 - OpStore %346 %int_n1 - OpBranch %321 - %328 = OpLabel %348 = OpLoad %int %i_3 %349 = OpAccessChain %_ptr_Private_int %data %348 - OpStore %349 %int_0 - OpBranch %321 - %329 = OpLabel + OpStore %349 %int_2 + OpBranch %317 + %327 = OpLabel %350 = OpLoad %int %i_3 %351 = OpAccessChain %_ptr_Private_int %data %350 - OpStore %351 %int_1 - OpBranch %321 - %330 = OpLabel - %352 = OpLoad %int %i_3 - %353 = OpAccessChain %_ptr_Private_int %data %352 - OpStore %353 %int_2 - OpBranch %321 - %331 = OpLabel - %354 = OpLoad %int %i_3 - %355 = OpAccessChain %_ptr_Private_int %data %354 - OpStore %355 %int_3 - OpBranch %321 - %332 = OpLabel - %357 = OpLoad %int %i_3 - %358 = OpAccessChain %_ptr_Private_int %data %357 - OpStore %358 %int_4 - OpBranch %321 - %322 = OpLabel - OpBranch %321 - %321 = OpLabel - %360 = OpLoad %int %i_3 - %361 = OpIAdd %int %360 %int_1 - OpStore %i_3 %361 - OpBranch %318 - %318 = OpLabel - %362 = OpLoad %int %i_3 - %363 = OpSLessThan %bool %362 %int_10 - OpSelectionMerge %364 None - OpBranchConditional %363 %365 %366 - %365 = OpLabel - OpBranch %364 - %366 = OpLabel + OpStore %351 %int_3 + OpBranch %317 + %328 = OpLabel + %353 = OpLoad %int %i_3 + %354 = OpAccessChain %_ptr_Private_int %data %353 + OpStore %354 %int_4 + OpBranch %317 + %318 = OpLabel OpBranch %317 - %364 = OpLabel - OpBranch %316 %317 = OpLabel + %356 = OpLoad %int %i_3 + %357 = OpIAdd %int %356 %int_1 + OpStore %i_3 %357 + OpBranch %314 + %314 = OpLabel + %358 = OpLoad %int %i_3 + %359 = OpSLessThan %bool %358 %int_10 + OpBranchConditional %359 %312 %313 + %313 = OpLabel OpStore %j_1 %int_0 - OpBranch %367 + OpBranch %360 + %360 = OpLabel + OpLoopMerge %361 %362 None + OpBranch %363 + %363 = OpLabel + %364 = OpLoad %int %j_1 + %365 = OpSLessThan %bool %364 %int_10 + OpSelectionMerge %366 None + OpBranchConditional %365 %367 %368 %367 = OpLabel - OpLoopMerge %368 %369 None - OpBranch %370 - %370 = OpLabel - %371 = OpLoad %int %j_1 - %372 = OpSLessThan %bool %371 %int_10 - OpSelectionMerge %373 None - OpBranchConditional %372 %374 %375 - %374 = OpLabel - OpBranch %373 - %375 = OpLabel - OpBranch %368 - %373 = OpLabel - %376 = OpLoad %int %j_1 - %377 = OpLoad %int %j_1 - %378 = OpAccessChain %_ptr_Private_int %data %377 - %379 = OpLoad %int %378 - %380 = OpAccessChain %_ptr_Private_int %temp %376 - OpStore %380 %379 - OpBranch %369 - %369 = OpLabel - %381 = OpLoad %int %j_1 - %382 = OpIAdd %int %381 %int_1 - OpStore %j_1 %382 - OpBranch %367 + OpBranch %366 %368 = OpLabel - %383 = OpFunctionCall %void %mergeSort_ - %385 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %386 = OpLoad %float %385 - %387 = OpConvertFToS %int %386 - %389 = OpSLessThan %bool %387 %int_30 - OpSelectionMerge %390 None - OpBranchConditional %389 %391 %392 - %391 = OpLabel - %393 = OpAccessChain %_ptr_Private_int %data %int_0 - %394 = OpLoad %int %393 - %396 = OpConvertSToF %float %394 - %398 = OpFDiv %float %396 %float_10 - %399 = OpFAdd %float %float_0_5 %398 - OpStore %grey %399 - OpBranch %390 - %392 = OpLabel - %400 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %401 = OpLoad %float %400 - %402 = OpConvertFToS %int %401 - %404 = OpSLessThan %bool %402 %int_60 - OpSelectionMerge %405 None - OpBranchConditional %404 %406 %407 - %406 = OpLabel - %408 = OpAccessChain %_ptr_Private_int %data %int_1 - %409 = OpLoad %int %408 - %410 = OpConvertSToF %float %409 - %411 = OpFDiv %float %410 %float_10 - %412 = OpFAdd %float %float_0_5 %411 - OpStore %grey %412 - OpBranch %405 - %407 = OpLabel - %413 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %414 = OpLoad %float %413 - %415 = OpConvertFToS %int %414 - %417 = OpSLessThan %bool %415 %int_90 - OpSelectionMerge %418 None - OpBranchConditional %417 %419 %420 - %419 = OpLabel - %421 = OpAccessChain %_ptr_Private_int %data %int_2 - %422 = OpLoad %int %421 - %423 = OpConvertSToF %float %422 - %424 = OpFDiv %float %423 %float_10 - %425 = OpFAdd %float %float_0_5 %424 - OpStore %grey %425 - OpBranch %418 - %420 = OpLabel - %426 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %427 = OpLoad %float %426 - %428 = OpConvertFToS %int %427 - %430 = OpSLessThan %bool %428 %int_120 - OpSelectionMerge %431 None - OpBranchConditional %430 %432 %433 - %432 = OpLabel - %434 = OpAccessChain %_ptr_Private_int %data %int_3 - %435 = OpLoad %int %434 - %436 = OpConvertSToF %float %435 - %437 = OpFDiv %float %436 %float_10 - %438 = OpFAdd %float %float_0_5 %437 - OpStore %grey %438 - OpBranch %431 - %433 = OpLabel - %439 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %440 = OpLoad %float %439 - %441 = OpConvertFToS %int %440 - %443 = OpSLessThan %bool %441 %int_150 - OpSelectionMerge %444 None - OpBranchConditional %443 %445 %446 - %445 = OpLabel + OpBranch %361 + %366 = OpLabel + %369 = OpLoad %int %j_1 + %370 = OpLoad %int %j_1 + %371 = OpAccessChain %_ptr_Private_int %data %370 + %372 = OpLoad %int %371 + %373 = OpAccessChain %_ptr_Private_int %temp %369 + OpStore %373 %372 + OpBranch %362 + %362 = OpLabel + %374 = OpLoad %int %j_1 + %375 = OpIAdd %int %374 %int_1 + OpStore %j_1 %375 + OpBranch %360 + %361 = OpLabel + %376 = OpFunctionCall %void %mergeSort_ + %378 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %379 = OpLoad %float %378 + %380 = OpConvertFToS %int %379 + %382 = OpSLessThan %bool %380 %int_30 + OpSelectionMerge %383 None + OpBranchConditional %382 %384 %385 + %384 = OpLabel + %386 = OpAccessChain %_ptr_Private_int %data %int_0 + %387 = OpLoad %int %386 + %389 = OpConvertSToF %float %387 + %391 = OpFDiv %float %389 %float_10 + %392 = OpFAdd %float %float_0_5 %391 + OpStore %grey %392 + OpBranch %383 + %385 = OpLabel + %393 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %394 = OpLoad %float %393 + %395 = OpConvertFToS %int %394 + %397 = OpSLessThan %bool %395 %int_60 + OpSelectionMerge %398 None + OpBranchConditional %397 %399 %400 + %399 = OpLabel + %401 = OpAccessChain %_ptr_Private_int %data %int_1 + %402 = OpLoad %int %401 + %403 = OpConvertSToF %float %402 + %404 = OpFDiv %float %403 %float_10 + %405 = OpFAdd %float %float_0_5 %404 + OpStore %grey %405 + OpBranch %398 + %400 = OpLabel + %406 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %407 = OpLoad %float %406 + %408 = OpConvertFToS %int %407 + %410 = OpSLessThan %bool %408 %int_90 + OpSelectionMerge %411 None + OpBranchConditional %410 %412 %413 + %412 = OpLabel + %414 = OpAccessChain %_ptr_Private_int %data %int_2 + %415 = OpLoad %int %414 + %416 = OpConvertSToF %float %415 + %417 = OpFDiv %float %416 %float_10 + %418 = OpFAdd %float %float_0_5 %417 + OpStore %grey %418 + OpBranch %411 + %413 = OpLabel + %419 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %420 = OpLoad %float %419 + %421 = OpConvertFToS %int %420 + %423 = OpSLessThan %bool %421 %int_120 + OpSelectionMerge %424 None + OpBranchConditional %423 %425 %426 + %425 = OpLabel + %427 = OpAccessChain %_ptr_Private_int %data %int_3 + %428 = OpLoad %int %427 + %429 = OpConvertSToF %float %428 + %430 = OpFDiv %float %429 %float_10 + %431 = OpFAdd %float %float_0_5 %430 + OpStore %grey %431 + OpBranch %424 + %426 = OpLabel + %432 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %433 = OpLoad %float %432 + %434 = OpConvertFToS %int %433 + %436 = OpSLessThan %bool %434 %int_150 + OpSelectionMerge %437 None + OpBranchConditional %436 %438 %439 + %438 = OpLabel OpKill + %439 = OpLabel + %440 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %441 = OpLoad %float %440 + %442 = OpConvertFToS %int %441 + %444 = OpSLessThan %bool %442 %int_180 + OpSelectionMerge %445 None + OpBranchConditional %444 %446 %447 %446 = OpLabel - %447 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %448 = OpLoad %float %447 - %449 = OpConvertFToS %int %448 - %451 = OpSLessThan %bool %449 %int_180 - OpSelectionMerge %452 None - OpBranchConditional %451 %453 %454 - %453 = OpLabel - %456 = OpAccessChain %_ptr_Private_int %data %int_5 - %457 = OpLoad %int %456 - %458 = OpConvertSToF %float %457 - %459 = OpFDiv %float %458 %float_10 - %460 = OpFAdd %float %float_0_5 %459 - OpStore %grey %460 - OpBranch %452 - %454 = OpLabel - %461 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %462 = OpLoad %float %461 - %463 = OpConvertFToS %int %462 - %465 = OpSLessThan %bool %463 %int_210 - OpSelectionMerge %466 None - OpBranchConditional %465 %467 %468 - %467 = OpLabel - %470 = OpAccessChain %_ptr_Private_int %data %int_6 - %471 = OpLoad %int %470 - %472 = OpConvertSToF %float %471 - %473 = OpFDiv %float %472 %float_10 - %474 = OpFAdd %float %float_0_5 %473 - OpStore %grey %474 - OpBranch %466 - %468 = OpLabel - %475 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %476 = OpLoad %float %475 - %477 = OpConvertFToS %int %476 - %479 = OpSLessThan %bool %477 %int_240 - OpSelectionMerge %480 None - OpBranchConditional %479 %481 %482 - %481 = OpLabel - %484 = OpAccessChain %_ptr_Private_int %data %int_7 - %485 = OpLoad %int %484 - %486 = OpConvertSToF %float %485 - %487 = OpFDiv %float %486 %float_10 - %488 = OpFAdd %float %float_0_5 %487 - OpStore %grey %488 - OpBranch %480 - %482 = OpLabel - %489 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %490 = OpLoad %float %489 - %491 = OpConvertFToS %int %490 - %493 = OpSLessThan %bool %491 %int_270 - OpSelectionMerge %494 None - OpBranchConditional %493 %495 %496 - %495 = OpLabel - %498 = OpAccessChain %_ptr_Private_int %data %int_8 - %499 = OpLoad %int %498 - %500 = OpConvertSToF %float %499 - %501 = OpFDiv %float %500 %float_10 - %502 = OpFAdd %float %float_0_5 %501 - OpStore %grey %502 - OpBranch %494 - %496 = OpLabel + %449 = OpAccessChain %_ptr_Private_int %data %int_5 + %450 = OpLoad %int %449 + %451 = OpConvertSToF %float %450 + %452 = OpFDiv %float %451 %float_10 + %453 = OpFAdd %float %float_0_5 %452 + OpStore %grey %453 + OpBranch %445 + %447 = OpLabel + %454 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %455 = OpLoad %float %454 + %456 = OpConvertFToS %int %455 + %458 = OpSLessThan %bool %456 %int_210 + OpSelectionMerge %459 None + OpBranchConditional %458 %460 %461 + %460 = OpLabel + %463 = OpAccessChain %_ptr_Private_int %data %int_6 + %464 = OpLoad %int %463 + %465 = OpConvertSToF %float %464 + %466 = OpFDiv %float %465 %float_10 + %467 = OpFAdd %float %float_0_5 %466 + OpStore %grey %467 + OpBranch %459 + %461 = OpLabel + %468 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %469 = OpLoad %float %468 + %470 = OpConvertFToS %int %469 + %472 = OpSLessThan %bool %470 %int_240 + OpSelectionMerge %473 None + OpBranchConditional %472 %474 %475 + %474 = OpLabel + %477 = OpAccessChain %_ptr_Private_int %data %int_7 + %478 = OpLoad %int %477 + %479 = OpConvertSToF %float %478 + %480 = OpFDiv %float %479 %float_10 + %481 = OpFAdd %float %float_0_5 %480 + OpStore %grey %481 + OpBranch %473 + %475 = OpLabel + %482 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %483 = OpLoad %float %482 + %484 = OpConvertFToS %int %483 + %486 = OpSLessThan %bool %484 %int_270 + OpSelectionMerge %487 None + OpBranchConditional %486 %488 %489 + %488 = OpLabel + %491 = OpAccessChain %_ptr_Private_int %data %int_8 + %492 = OpLoad %int %491 + %493 = OpConvertSToF %float %492 + %494 = OpFDiv %float %493 %float_10 + %495 = OpFAdd %float %float_0_5 %494 + OpStore %grey %495 + OpBranch %487 + %489 = OpLabel OpKill - %494 = OpLabel - OpBranch %480 - %480 = OpLabel - OpBranch %466 - %466 = OpLabel - OpBranch %452 - %452 = OpLabel - OpBranch %444 - %444 = OpLabel - OpBranch %431 - %431 = OpLabel - OpBranch %418 - %418 = OpLabel - OpBranch %405 - %405 = OpLabel - OpBranch %390 - %390 = OpLabel - %503 = OpLoad %float %grey - %505 = OpCompositeConstruct %v3float %503 %503 %503 - %506 = OpCompositeExtract %float %505 0 - %507 = OpCompositeExtract %float %505 1 - %508 = OpCompositeExtract %float %505 2 - %509 = OpCompositeConstruct %v4float %506 %507 %508 %float_1 - OpStore %x_GLF_color %509 + %487 = OpLabel + OpBranch %473 + %473 = OpLabel + OpBranch %459 + %459 = OpLabel + OpBranch %445 + %445 = OpLabel + OpBranch %437 + %437 = OpLabel + OpBranch %424 + %424 = OpLabel + OpBranch %411 + %411 = OpLabel + OpBranch %398 + %398 = OpLabel + OpBranch %383 + %383 = OpLabel + %496 = OpLoad %float %grey + %498 = OpCompositeConstruct %v3float %496 %496 %496 + %499 = OpCompositeExtract %float %498 0 + %500 = OpCompositeExtract %float %498 1 + %501 = OpCompositeExtract %float %498 2 + %502 = OpCompositeConstruct %v4float %499 %500 %501 %float_1 + OpStore %x_GLF_color %502 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %510 +%tint_symbol_3 = OpFunction %void None %503 %tint_symbol_1 = OpFunctionParameter %main_out - %514 = OpLabel - %515 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %515 + %507 = OpLabel + %508 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %508 OpReturn OpFunctionEnd - %main = OpFunction %void None %244 - %517 = OpLabel - %518 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %518 - %519 = OpFunctionCall %void %main_1 - %521 = OpLoad %v4float %x_GLF_color - %522 = OpCompositeConstruct %main_out %521 - %520 = OpFunctionCall %void %tint_symbol_3 %522 + %main = OpFunction %void None %240 + %510 = OpLabel + %511 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %511 + %512 = OpFunctionCall %void %main_1 + %514 = OpLoad %v4float %x_GLF_color + %515 = OpCompositeConstruct %main_out %514 + %513 = OpFunctionCall %void %tint_symbol_3 %515 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 318[%318] is not post dominated by the back-edge block 364[%364] - %364 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.wgsl.expected.spvasm index 338bca8871..0bab96492a 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 523 +; Bound: 520 ; Schema: 0 OpCapability Shader %288 = OpExtInstImport "GLSL.std.450" @@ -140,7 +138,7 @@ SKIP: FAILED %int_8 = OpConstant %int 8 %v3float = OpTypeVector %float 3 %main_out = OpTypeStruct %v4float - %510 = OpTypeFunction %void %main_out + %507 = OpTypeFunction %void %main_out %merge_i1_i1_i1_ = OpFunction %void None %23 %from = OpFunctionParameter %_ptr_Function_int %mid = OpFunctionParameter %_ptr_Function_int @@ -646,217 +644,207 @@ SKIP: FAILED %318 = OpLabel %362 = OpLoad %int %i_3 %363 = OpSLessThan %bool %362 %int_10 - OpSelectionMerge %364 None - OpBranchConditional %363 %365 %366 - %365 = OpLabel - OpBranch %364 - %366 = OpLabel - OpBranch %317 - %364 = OpLabel - OpBranch %316 + OpBranchConditional %363 %316 %317 %317 = OpLabel OpStore %j_1 %int_0 + OpBranch %364 + %364 = OpLabel + OpLoopMerge %365 %366 None OpBranch %367 %367 = OpLabel - OpLoopMerge %368 %369 None + %368 = OpLoad %int %j_1 + %369 = OpSLessThan %bool %368 %int_10 + OpSelectionMerge %370 None + OpBranchConditional %369 %371 %372 + %371 = OpLabel OpBranch %370 + %372 = OpLabel + OpBranch %365 %370 = OpLabel - %371 = OpLoad %int %j_1 - %372 = OpSLessThan %bool %371 %int_10 - OpSelectionMerge %373 None - OpBranchConditional %372 %374 %375 - %374 = OpLabel - OpBranch %373 - %375 = OpLabel - OpBranch %368 - %373 = OpLabel - %376 = OpLoad %int %j_1 - %377 = OpLoad %int %j_1 - %378 = OpAccessChain %_ptr_Private_int %data %377 - %379 = OpLoad %int %378 - %380 = OpAccessChain %_ptr_Private_int %temp %376 - OpStore %380 %379 - OpBranch %369 - %369 = OpLabel - %381 = OpLoad %int %j_1 - %382 = OpIAdd %int %381 %int_1 - OpStore %j_1 %382 - OpBranch %367 - %368 = OpLabel - %383 = OpFunctionCall %void %mergeSort_ - %385 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %386 = OpLoad %float %385 - %387 = OpConvertFToS %int %386 - %389 = OpSLessThan %bool %387 %int_30 - OpSelectionMerge %390 None - OpBranchConditional %389 %391 %392 - %391 = OpLabel - %393 = OpAccessChain %_ptr_Private_int %data %int_0 - %394 = OpLoad %int %393 - %396 = OpConvertSToF %float %394 - %398 = OpFDiv %float %396 %float_10 - %399 = OpFAdd %float %float_0_5 %398 - OpStore %grey %399 - OpBranch %390 - %392 = OpLabel - %400 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %401 = OpLoad %float %400 - %402 = OpConvertFToS %int %401 - %404 = OpSLessThan %bool %402 %int_60 - OpSelectionMerge %405 None - OpBranchConditional %404 %406 %407 - %406 = OpLabel - %408 = OpAccessChain %_ptr_Private_int %data %int_1 - %409 = OpLoad %int %408 - %410 = OpConvertSToF %float %409 - %411 = OpFDiv %float %410 %float_10 - %412 = OpFAdd %float %float_0_5 %411 - OpStore %grey %412 - OpBranch %405 - %407 = OpLabel - %413 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %414 = OpLoad %float %413 - %415 = OpConvertFToS %int %414 - %417 = OpSLessThan %bool %415 %int_90 - OpSelectionMerge %418 None - OpBranchConditional %417 %419 %420 - %419 = OpLabel - %421 = OpAccessChain %_ptr_Private_int %data %int_2 - %422 = OpLoad %int %421 - %423 = OpConvertSToF %float %422 - %424 = OpFDiv %float %423 %float_10 - %425 = OpFAdd %float %float_0_5 %424 - OpStore %grey %425 - OpBranch %418 - %420 = OpLabel - %426 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %427 = OpLoad %float %426 - %428 = OpConvertFToS %int %427 - %430 = OpSLessThan %bool %428 %int_120 - OpSelectionMerge %431 None - OpBranchConditional %430 %432 %433 - %432 = OpLabel - %434 = OpAccessChain %_ptr_Private_int %data %int_3 - %435 = OpLoad %int %434 - %436 = OpConvertSToF %float %435 - %437 = OpFDiv %float %436 %float_10 - %438 = OpFAdd %float %float_0_5 %437 - OpStore %grey %438 - OpBranch %431 - %433 = OpLabel - %439 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %440 = OpLoad %float %439 - %441 = OpConvertFToS %int %440 - %443 = OpSLessThan %bool %441 %int_150 - OpSelectionMerge %444 None - OpBranchConditional %443 %445 %446 - %445 = OpLabel + %373 = OpLoad %int %j_1 + %374 = OpLoad %int %j_1 + %375 = OpAccessChain %_ptr_Private_int %data %374 + %376 = OpLoad %int %375 + %377 = OpAccessChain %_ptr_Private_int %temp %373 + OpStore %377 %376 + OpBranch %366 + %366 = OpLabel + %378 = OpLoad %int %j_1 + %379 = OpIAdd %int %378 %int_1 + OpStore %j_1 %379 + OpBranch %364 + %365 = OpLabel + %380 = OpFunctionCall %void %mergeSort_ + %382 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %383 = OpLoad %float %382 + %384 = OpConvertFToS %int %383 + %386 = OpSLessThan %bool %384 %int_30 + OpSelectionMerge %387 None + OpBranchConditional %386 %388 %389 + %388 = OpLabel + %390 = OpAccessChain %_ptr_Private_int %data %int_0 + %391 = OpLoad %int %390 + %393 = OpConvertSToF %float %391 + %395 = OpFDiv %float %393 %float_10 + %396 = OpFAdd %float %float_0_5 %395 + OpStore %grey %396 + OpBranch %387 + %389 = OpLabel + %397 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %398 = OpLoad %float %397 + %399 = OpConvertFToS %int %398 + %401 = OpSLessThan %bool %399 %int_60 + OpSelectionMerge %402 None + OpBranchConditional %401 %403 %404 + %403 = OpLabel + %405 = OpAccessChain %_ptr_Private_int %data %int_1 + %406 = OpLoad %int %405 + %407 = OpConvertSToF %float %406 + %408 = OpFDiv %float %407 %float_10 + %409 = OpFAdd %float %float_0_5 %408 + OpStore %grey %409 + OpBranch %402 + %404 = OpLabel + %410 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %411 = OpLoad %float %410 + %412 = OpConvertFToS %int %411 + %414 = OpSLessThan %bool %412 %int_90 + OpSelectionMerge %415 None + OpBranchConditional %414 %416 %417 + %416 = OpLabel + %418 = OpAccessChain %_ptr_Private_int %data %int_2 + %419 = OpLoad %int %418 + %420 = OpConvertSToF %float %419 + %421 = OpFDiv %float %420 %float_10 + %422 = OpFAdd %float %float_0_5 %421 + OpStore %grey %422 + OpBranch %415 + %417 = OpLabel + %423 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %424 = OpLoad %float %423 + %425 = OpConvertFToS %int %424 + %427 = OpSLessThan %bool %425 %int_120 + OpSelectionMerge %428 None + OpBranchConditional %427 %429 %430 + %429 = OpLabel + %431 = OpAccessChain %_ptr_Private_int %data %int_3 + %432 = OpLoad %int %431 + %433 = OpConvertSToF %float %432 + %434 = OpFDiv %float %433 %float_10 + %435 = OpFAdd %float %float_0_5 %434 + OpStore %grey %435 + OpBranch %428 + %430 = OpLabel + %436 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %437 = OpLoad %float %436 + %438 = OpConvertFToS %int %437 + %440 = OpSLessThan %bool %438 %int_150 + OpSelectionMerge %441 None + OpBranchConditional %440 %442 %443 + %442 = OpLabel OpKill - %446 = OpLabel - %447 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %448 = OpLoad %float %447 - %449 = OpConvertFToS %int %448 - %451 = OpSLessThan %bool %449 %int_180 - OpSelectionMerge %452 None - OpBranchConditional %451 %453 %454 - %453 = OpLabel - %456 = OpAccessChain %_ptr_Private_int %data %int_5 - %457 = OpLoad %int %456 - %458 = OpConvertSToF %float %457 - %459 = OpFDiv %float %458 %float_10 - %460 = OpFAdd %float %float_0_5 %459 - OpStore %grey %460 - OpBranch %452 - %454 = OpLabel - %461 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %462 = OpLoad %float %461 - %463 = OpConvertFToS %int %462 - %465 = OpSLessThan %bool %463 %int_210 - OpSelectionMerge %466 None - OpBranchConditional %465 %467 %468 - %467 = OpLabel - %470 = OpAccessChain %_ptr_Private_int %data %int_6 - %471 = OpLoad %int %470 - %472 = OpConvertSToF %float %471 - %473 = OpFDiv %float %472 %float_10 - %474 = OpFAdd %float %float_0_5 %473 - OpStore %grey %474 - OpBranch %466 - %468 = OpLabel - %475 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %476 = OpLoad %float %475 - %477 = OpConvertFToS %int %476 - %479 = OpSLessThan %bool %477 %int_240 - OpSelectionMerge %480 None - OpBranchConditional %479 %481 %482 - %481 = OpLabel - %484 = OpAccessChain %_ptr_Private_int %data %int_7 - %485 = OpLoad %int %484 - %486 = OpConvertSToF %float %485 - %487 = OpFDiv %float %486 %float_10 - %488 = OpFAdd %float %float_0_5 %487 - OpStore %grey %488 - OpBranch %480 - %482 = OpLabel - %489 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %490 = OpLoad %float %489 - %491 = OpConvertFToS %int %490 - %493 = OpSLessThan %bool %491 %int_270 - OpSelectionMerge %494 None - OpBranchConditional %493 %495 %496 - %495 = OpLabel - %498 = OpAccessChain %_ptr_Private_int %data %int_8 - %499 = OpLoad %int %498 - %500 = OpConvertSToF %float %499 - %501 = OpFDiv %float %500 %float_10 - %502 = OpFAdd %float %float_0_5 %501 - OpStore %grey %502 - OpBranch %494 - %496 = OpLabel + %443 = OpLabel + %444 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %445 = OpLoad %float %444 + %446 = OpConvertFToS %int %445 + %448 = OpSLessThan %bool %446 %int_180 + OpSelectionMerge %449 None + OpBranchConditional %448 %450 %451 + %450 = OpLabel + %453 = OpAccessChain %_ptr_Private_int %data %int_5 + %454 = OpLoad %int %453 + %455 = OpConvertSToF %float %454 + %456 = OpFDiv %float %455 %float_10 + %457 = OpFAdd %float %float_0_5 %456 + OpStore %grey %457 + OpBranch %449 + %451 = OpLabel + %458 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %459 = OpLoad %float %458 + %460 = OpConvertFToS %int %459 + %462 = OpSLessThan %bool %460 %int_210 + OpSelectionMerge %463 None + OpBranchConditional %462 %464 %465 + %464 = OpLabel + %467 = OpAccessChain %_ptr_Private_int %data %int_6 + %468 = OpLoad %int %467 + %469 = OpConvertSToF %float %468 + %470 = OpFDiv %float %469 %float_10 + %471 = OpFAdd %float %float_0_5 %470 + OpStore %grey %471 + OpBranch %463 + %465 = OpLabel + %472 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %473 = OpLoad %float %472 + %474 = OpConvertFToS %int %473 + %476 = OpSLessThan %bool %474 %int_240 + OpSelectionMerge %477 None + OpBranchConditional %476 %478 %479 + %478 = OpLabel + %481 = OpAccessChain %_ptr_Private_int %data %int_7 + %482 = OpLoad %int %481 + %483 = OpConvertSToF %float %482 + %484 = OpFDiv %float %483 %float_10 + %485 = OpFAdd %float %float_0_5 %484 + OpStore %grey %485 + OpBranch %477 + %479 = OpLabel + %486 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %487 = OpLoad %float %486 + %488 = OpConvertFToS %int %487 + %490 = OpSLessThan %bool %488 %int_270 + OpSelectionMerge %491 None + OpBranchConditional %490 %492 %493 + %492 = OpLabel + %495 = OpAccessChain %_ptr_Private_int %data %int_8 + %496 = OpLoad %int %495 + %497 = OpConvertSToF %float %496 + %498 = OpFDiv %float %497 %float_10 + %499 = OpFAdd %float %float_0_5 %498 + OpStore %grey %499 + OpBranch %491 + %493 = OpLabel OpKill - %494 = OpLabel - OpBranch %480 - %480 = OpLabel - OpBranch %466 - %466 = OpLabel - OpBranch %452 - %452 = OpLabel - OpBranch %444 - %444 = OpLabel - OpBranch %431 - %431 = OpLabel - OpBranch %418 - %418 = OpLabel - OpBranch %405 - %405 = OpLabel - OpBranch %390 - %390 = OpLabel - %503 = OpLoad %float %grey - %505 = OpCompositeConstruct %v3float %503 %503 %503 - %506 = OpCompositeExtract %float %505 0 - %507 = OpCompositeExtract %float %505 1 - %508 = OpCompositeExtract %float %505 2 - %509 = OpCompositeConstruct %v4float %506 %507 %508 %float_1 - OpStore %x_GLF_color %509 + %491 = OpLabel + OpBranch %477 + %477 = OpLabel + OpBranch %463 + %463 = OpLabel + OpBranch %449 + %449 = OpLabel + OpBranch %441 + %441 = OpLabel + OpBranch %428 + %428 = OpLabel + OpBranch %415 + %415 = OpLabel + OpBranch %402 + %402 = OpLabel + OpBranch %387 + %387 = OpLabel + %500 = OpLoad %float %grey + %502 = OpCompositeConstruct %v3float %500 %500 %500 + %503 = OpCompositeExtract %float %502 0 + %504 = OpCompositeExtract %float %502 1 + %505 = OpCompositeExtract %float %502 2 + %506 = OpCompositeConstruct %v4float %503 %504 %505 %float_1 + OpStore %x_GLF_color %506 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %510 +%tint_symbol_3 = OpFunction %void None %507 %tint_symbol_1 = OpFunctionParameter %main_out - %514 = OpLabel - %515 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %515 + %511 = OpLabel + %512 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %512 OpReturn OpFunctionEnd %main = OpFunction %void None %244 - %517 = OpLabel - %518 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %518 - %519 = OpFunctionCall %void %main_1 - %521 = OpLoad %v4float %x_GLF_color - %522 = OpCompositeConstruct %main_out %521 - %520 = OpFunctionCall %void %tint_symbol_3 %522 + %514 = OpLabel + %515 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %515 + %516 = OpFunctionCall %void %main_1 + %518 = OpLoad %v4float %x_GLF_color + %519 = OpCompositeConstruct %main_out %518 + %517 = OpFunctionCall %void %tint_symbol_3 %519 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 318[%318] is not post dominated by the back-edge block 364[%364] - %364 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.spvasm index 451e62716f..b86fd0819e 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.spvasm @@ -1,12 +1,10 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 473 +; Bound: 466 ; Schema: 0 OpCapability Shader - %257 = OpExtInstImport "GLSL.std.450" + %250 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2 OpExecutionMode %main OriginUpperLeft @@ -96,9 +94,9 @@ SKIP: FAILED %bool = OpTypeBool %_ptr_Private_int = OpTypePointer Private %int %int_10 = OpConstant %int 10 - %132 = OpTypeFunction %void + %128 = OpTypeFunction %void %_ptr_Function_float = OpTypePointer Function %float - %149 = OpConstantNull %float + %145 = OpConstantNull %float %uint_0 = OpConstant %uint 0 %_ptr_Uniform_float = OpTypePointer Uniform %float %int_n5 = OpConstant %int -5 @@ -111,7 +109,7 @@ SKIP: FAILED %int_3 = OpConstant %int 3 %int_4 = OpConstant %int 4 %int_9 = OpConstant %int 9 - %250 = OpConstantComposite %_arr_int_uint_10 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 + %243 = OpConstantComposite %_arr_int_uint_10 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 %uint_1 = OpConstant %uint 1 %_ptr_Private_float = OpTypePointer Private %float %int_30 = OpConstant %int 30 @@ -132,7 +130,7 @@ SKIP: FAILED %v3float = OpTypeVector %float 3 %float_1 = OpConstant %float 1 %main_out = OpTypeStruct %v4float - %402 = OpTypeFunction %void %main_out + %395 = OpTypeFunction %void %main_out %merge_i1_i1_i1_ = OpFunction %void None %23 %from = OpFunctionParameter %_ptr_Function_int %mid = OpFunctionParameter %_ptr_Function_int @@ -159,129 +157,119 @@ SKIP: FAILED %51 = OpLoad %int %j %53 = OpLoad %int %to %54 = OpSLessThanEqual %bool %48 %50 - OpSelectionMerge %56 None - OpBranchConditional %54 %57 %56 - %57 = OpLabel - %58 = OpSLessThanEqual %bool %51 %53 - OpBranch %56 - %56 = OpLabel - %59 = OpPhi %bool %54 %47 %58 %57 - OpSelectionMerge %60 None - OpBranchConditional %59 %61 %62 - %61 = OpLabel - OpBranch %60 - %62 = OpLabel - OpBranch %45 + %56 = OpSLessThanEqual %bool %51 %53 + %57 = OpLogicalAnd %bool %54 %56 + OpSelectionMerge %58 None + OpBranchConditional %57 %59 %60 + %59 = OpLabel + OpBranch %58 %60 = OpLabel - %63 = OpLoad %int %i - %65 = OpAccessChain %_ptr_Private_int %data %63 - %66 = OpLoad %int %65 - %67 = OpLoad %int %j - %68 = OpAccessChain %_ptr_Private_int %data %67 - %69 = OpLoad %int %68 - %70 = OpSLessThan %bool %66 %69 - OpSelectionMerge %71 None - OpBranchConditional %70 %72 %73 - %72 = OpLabel - %74 = OpLoad %int %k + OpBranch %45 + %58 = OpLabel + %61 = OpLoad %int %i + %63 = OpAccessChain %_ptr_Private_int %data %61 + %64 = OpLoad %int %63 + %65 = OpLoad %int %j + %66 = OpAccessChain %_ptr_Private_int %data %65 + %67 = OpLoad %int %66 + %68 = OpSLessThan %bool %64 %67 + OpSelectionMerge %69 None + OpBranchConditional %68 %70 %71 + %70 = OpLabel + %72 = OpLoad %int %k + %73 = OpIAdd %int %72 %int_1 + OpStore %k %73 + %74 = OpLoad %int %i %75 = OpIAdd %int %74 %int_1 - OpStore %k %75 - %76 = OpLoad %int %i - %77 = OpIAdd %int %76 %int_1 - OpStore %i %77 - %78 = OpAccessChain %_ptr_Private_int %data %76 - %79 = OpLoad %int %78 - %80 = OpAccessChain %_ptr_Private_int %temp %74 - OpStore %80 %79 - OpBranch %71 - %73 = OpLabel - %81 = OpLoad %int %k - %82 = OpIAdd %int %81 %int_1 - OpStore %k %82 - %83 = OpLoad %int %j - %84 = OpIAdd %int %83 %int_1 - OpStore %j %84 - %85 = OpAccessChain %_ptr_Private_int %data %83 - %86 = OpLoad %int %85 - %87 = OpAccessChain %_ptr_Private_int %temp %81 - OpStore %87 %86 - OpBranch %71 + OpStore %i %75 + %76 = OpAccessChain %_ptr_Private_int %data %74 + %77 = OpLoad %int %76 + %78 = OpAccessChain %_ptr_Private_int %temp %72 + OpStore %78 %77 + OpBranch %69 %71 = OpLabel + %79 = OpLoad %int %k + %80 = OpIAdd %int %79 %int_1 + OpStore %k %80 + %81 = OpLoad %int %j + %82 = OpIAdd %int %81 %int_1 + OpStore %j %82 + %83 = OpAccessChain %_ptr_Private_int %data %81 + %84 = OpLoad %int %83 + %85 = OpAccessChain %_ptr_Private_int %temp %79 + OpStore %85 %84 + OpBranch %69 + %69 = OpLabel OpBranch %46 %46 = OpLabel OpBranch %44 %45 = OpLabel + OpBranch %86 + %86 = OpLabel + OpLoopMerge %87 %88 None + OpBranch %89 + %89 = OpLabel + %90 = OpLoad %int %i + %91 = OpLoad %int %i + %93 = OpLoad %int %mid + %95 = OpSLessThan %bool %90 %int_10 + %96 = OpSLessThanEqual %bool %91 %93 + %97 = OpLogicalAnd %bool %95 %96 + OpSelectionMerge %98 None + OpBranchConditional %97 %99 %100 + %99 = OpLabel + OpBranch %98 + %100 = OpLabel + OpBranch %87 + %98 = OpLabel + %101 = OpLoad %int %k + %102 = OpIAdd %int %101 %int_1 + OpStore %k %102 + %103 = OpLoad %int %i + %104 = OpIAdd %int %103 %int_1 + OpStore %i %104 + %105 = OpAccessChain %_ptr_Private_int %data %103 + %106 = OpLoad %int %105 + %107 = OpAccessChain %_ptr_Private_int %temp %101 + OpStore %107 %106 OpBranch %88 %88 = OpLabel - OpLoopMerge %89 %90 None - OpBranch %91 - %91 = OpLabel - %92 = OpLoad %int %i - %93 = OpLoad %int %i - %95 = OpLoad %int %mid - %97 = OpSLessThan %bool %92 %int_10 - OpSelectionMerge %98 None - OpBranchConditional %97 %99 %98 - %99 = OpLabel - %100 = OpSLessThanEqual %bool %93 %95 - OpBranch %98 - %98 = OpLabel - %101 = OpPhi %bool %97 %91 %100 %99 - OpSelectionMerge %102 None - OpBranchConditional %101 %103 %104 - %103 = OpLabel - OpBranch %102 - %104 = OpLabel - OpBranch %89 - %102 = OpLabel - %105 = OpLoad %int %k - %106 = OpIAdd %int %105 %int_1 - OpStore %k %106 - %107 = OpLoad %int %i - %108 = OpIAdd %int %107 %int_1 - OpStore %i %108 - %109 = OpAccessChain %_ptr_Private_int %data %107 - %110 = OpLoad %int %109 - %111 = OpAccessChain %_ptr_Private_int %temp %105 - OpStore %111 %110 - OpBranch %90 - %90 = OpLabel - OpBranch %88 - %89 = OpLabel - %113 = OpLoad %int %from - OpStore %i_1 %113 - OpBranch %114 - %114 = OpLabel - OpLoopMerge %115 %116 None - OpBranch %117 - %117 = OpLabel - %118 = OpLoad %int %i_1 - %120 = OpLoad %int %to - %121 = OpSLessThanEqual %bool %118 %120 - OpSelectionMerge %122 None - OpBranchConditional %121 %123 %124 - %123 = OpLabel - OpBranch %122 - %124 = OpLabel - OpBranch %115 - %122 = OpLabel - %125 = OpLoad %int %i_1 + OpBranch %86 + %87 = OpLabel + %109 = OpLoad %int %from + OpStore %i_1 %109 + OpBranch %110 + %110 = OpLabel + OpLoopMerge %111 %112 None + OpBranch %113 + %113 = OpLabel + %114 = OpLoad %int %i_1 + %116 = OpLoad %int %to + %117 = OpSLessThanEqual %bool %114 %116 + OpSelectionMerge %118 None + OpBranchConditional %117 %119 %120 + %119 = OpLabel + OpBranch %118 + %120 = OpLabel + OpBranch %111 + %118 = OpLabel + %121 = OpLoad %int %i_1 + %122 = OpLoad %int %i_1 + %123 = OpAccessChain %_ptr_Private_int %temp %122 + %124 = OpLoad %int %123 + %125 = OpAccessChain %_ptr_Private_int %data %121 + OpStore %125 %124 + OpBranch %112 + %112 = OpLabel %126 = OpLoad %int %i_1 - %127 = OpAccessChain %_ptr_Private_int %temp %126 - %128 = OpLoad %int %127 - %129 = OpAccessChain %_ptr_Private_int %data %125 - OpStore %129 %128 - OpBranch %116 - %116 = OpLabel - %130 = OpLoad %int %i_1 - %131 = OpIAdd %int %130 %int_1 - OpStore %i_1 %131 - OpBranch %114 - %115 = OpLabel + %127 = OpIAdd %int %126 %int_1 + OpStore %i_1 %127 + OpBranch %110 + %111 = OpLabel OpReturn OpFunctionEnd - %main_1 = OpFunction %void None %132 - %134 = OpLabel + %main_1 = OpFunction %void None %128 + %130 = OpLabel %x_85 = OpVariable %_ptr_Function_int Function %32 %x_86 = OpVariable %_ptr_Function_int Function %32 %x_87 = OpVariable %_ptr_Function_int Function %32 @@ -294,367 +282,360 @@ SKIP: FAILED %x_94 = OpVariable %_ptr_Function_int Function %32 %i_3 = OpVariable %_ptr_Function_int Function %32 %j_1 = OpVariable %_ptr_Function_int Function %32 - %grey = OpVariable %_ptr_Function_float Function %149 - %152 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 - %153 = OpLoad %float %152 - %154 = OpConvertFToS %int %153 - OpStore %i_3 %154 - OpBranch %155 - %155 = OpLabel - OpLoopMerge %156 %157 None - OpBranch %158 + %grey = OpVariable %_ptr_Function_float Function %145 + %148 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 + %149 = OpLoad %float %148 + %150 = OpConvertFToS %int %149 + OpStore %i_3 %150 + OpBranch %151 + %151 = OpLabel + OpLoopMerge %152 %153 None + OpBranch %154 + %154 = OpLabel + %155 = OpLoad %int %i_3 + OpSelectionMerge %156 None + OpSwitch %155 %157 9 %158 8 %159 7 %160 6 %161 5 %162 4 %163 3 %164 2 %165 1 %166 0 %167 %158 = OpLabel - %159 = OpLoad %int %i_3 - OpSelectionMerge %160 None - OpSwitch %159 %161 9 %162 8 %163 7 %164 6 %165 5 %166 4 %167 3 %168 2 %169 1 %170 0 %171 - %162 = OpLabel - %172 = OpLoad %int %i_3 - %173 = OpAccessChain %_ptr_Private_int %data %172 - OpStore %173 %int_n5 - OpBranch %160 - %163 = OpLabel - %175 = OpLoad %int %i_3 - %176 = OpAccessChain %_ptr_Private_int %data %175 - OpStore %176 %int_n4 - OpBranch %160 - %164 = OpLabel - %178 = OpLoad %int %i_3 - %179 = OpAccessChain %_ptr_Private_int %data %178 - OpStore %179 %int_n3 - OpBranch %160 - %165 = OpLabel - %181 = OpLoad %int %i_3 - %182 = OpAccessChain %_ptr_Private_int %data %181 - OpStore %182 %int_n2 - OpBranch %160 - %166 = OpLabel - %184 = OpLoad %int %i_3 - %185 = OpAccessChain %_ptr_Private_int %data %184 - OpStore %185 %int_n1 - OpBranch %160 - %167 = OpLabel - %187 = OpLoad %int %i_3 - %188 = OpAccessChain %_ptr_Private_int %data %187 - OpStore %188 %int_0 - OpBranch %160 - %168 = OpLabel - %190 = OpLoad %int %i_3 - %191 = OpAccessChain %_ptr_Private_int %data %190 - OpStore %191 %int_1 - OpBranch %160 - %169 = OpLabel - %192 = OpLoad %int %i_3 - %193 = OpAccessChain %_ptr_Private_int %data %192 - OpStore %193 %int_2 - OpBranch %160 - %170 = OpLabel - %195 = OpLoad %int %i_3 - %196 = OpAccessChain %_ptr_Private_int %data %195 - OpStore %196 %int_3 - OpBranch %160 - %171 = OpLabel - %198 = OpLoad %int %i_3 - %199 = OpAccessChain %_ptr_Private_int %data %198 - OpStore %199 %int_4 - OpBranch %160 - %161 = OpLabel - OpBranch %160 - %160 = OpLabel - %201 = OpLoad %int %i_3 - %202 = OpIAdd %int %201 %int_1 - OpStore %i_3 %202 - OpBranch %157 - %157 = OpLabel - %203 = OpLoad %int %i_3 - %204 = OpSLessThan %bool %203 %int_10 - OpSelectionMerge %205 None - OpBranchConditional %204 %206 %207 - %206 = OpLabel - OpBranch %205 - %207 = OpLabel + %168 = OpLoad %int %i_3 + %169 = OpAccessChain %_ptr_Private_int %data %168 + OpStore %169 %int_n5 + OpBranch %156 + %159 = OpLabel + %171 = OpLoad %int %i_3 + %172 = OpAccessChain %_ptr_Private_int %data %171 + OpStore %172 %int_n4 + OpBranch %156 + %160 = OpLabel + %174 = OpLoad %int %i_3 + %175 = OpAccessChain %_ptr_Private_int %data %174 + OpStore %175 %int_n3 + OpBranch %156 + %161 = OpLabel + %177 = OpLoad %int %i_3 + %178 = OpAccessChain %_ptr_Private_int %data %177 + OpStore %178 %int_n2 + OpBranch %156 + %162 = OpLabel + %180 = OpLoad %int %i_3 + %181 = OpAccessChain %_ptr_Private_int %data %180 + OpStore %181 %int_n1 + OpBranch %156 + %163 = OpLabel + %183 = OpLoad %int %i_3 + %184 = OpAccessChain %_ptr_Private_int %data %183 + OpStore %184 %int_0 + OpBranch %156 + %164 = OpLabel + %186 = OpLoad %int %i_3 + %187 = OpAccessChain %_ptr_Private_int %data %186 + OpStore %187 %int_1 + OpBranch %156 + %165 = OpLabel + %188 = OpLoad %int %i_3 + %189 = OpAccessChain %_ptr_Private_int %data %188 + OpStore %189 %int_2 + OpBranch %156 + %166 = OpLabel + %191 = OpLoad %int %i_3 + %192 = OpAccessChain %_ptr_Private_int %data %191 + OpStore %192 %int_3 + OpBranch %156 + %167 = OpLabel + %194 = OpLoad %int %i_3 + %195 = OpAccessChain %_ptr_Private_int %data %194 + OpStore %195 %int_4 + OpBranch %156 + %157 = OpLabel OpBranch %156 - %205 = OpLabel - OpBranch %155 %156 = OpLabel + %197 = OpLoad %int %i_3 + %198 = OpIAdd %int %197 %int_1 + OpStore %i_3 %198 + OpBranch %153 + %153 = OpLabel + %199 = OpLoad %int %i_3 + %200 = OpSLessThan %bool %199 %int_10 + OpBranchConditional %200 %151 %152 + %152 = OpLabel OpStore %j_1 %int_0 - OpBranch %208 + OpBranch %201 + %201 = OpLabel + OpLoopMerge %202 %203 None + OpBranch %204 + %204 = OpLabel + %205 = OpLoad %int %j_1 + %206 = OpSLessThan %bool %205 %int_10 + OpSelectionMerge %207 None + OpBranchConditional %206 %208 %209 %208 = OpLabel - OpLoopMerge %209 %210 None - OpBranch %211 - %211 = OpLabel - %212 = OpLoad %int %j_1 - %213 = OpSLessThan %bool %212 %int_10 - OpSelectionMerge %214 None - OpBranchConditional %213 %215 %216 - %215 = OpLabel - OpBranch %214 - %216 = OpLabel - OpBranch %209 - %214 = OpLabel - %217 = OpLoad %int %j_1 - %218 = OpLoad %int %j_1 - %219 = OpAccessChain %_ptr_Private_int %data %218 - %220 = OpLoad %int %219 - %221 = OpAccessChain %_ptr_Private_int %temp %217 - OpStore %221 %220 - OpBranch %210 - %210 = OpLabel - %222 = OpLoad %int %j_1 - %223 = OpIAdd %int %222 %int_1 - OpStore %j_1 %223 - OpBranch %208 + OpBranch %207 %209 = OpLabel + OpBranch %202 + %207 = OpLabel + %210 = OpLoad %int %j_1 + %211 = OpLoad %int %j_1 + %212 = OpAccessChain %_ptr_Private_int %data %211 + %213 = OpLoad %int %212 + %214 = OpAccessChain %_ptr_Private_int %temp %210 + OpStore %214 %213 + OpBranch %203 + %203 = OpLabel + %215 = OpLoad %int %j_1 + %216 = OpIAdd %int %215 %int_1 + OpStore %j_1 %216 + OpBranch %201 + %202 = OpLabel OpStore %x_94 %int_0 OpStore %x_93 %int_9 OpStore %x_92 %int_1 - OpBranch %225 - %225 = OpLabel - OpLoopMerge %226 %227 None - OpBranch %228 - %228 = OpLabel - %229 = OpLoad %int %x_92 - %230 = OpLoad %int %x_93 - %231 = OpSLessThanEqual %bool %229 %230 - OpSelectionMerge %232 None - OpBranchConditional %231 %233 %234 - %233 = OpLabel - OpBranch %232 - %234 = OpLabel - OpBranch %226 - %232 = OpLabel - %235 = OpLoad %int %x_94 - OpStore %x_91 %235 - OpBranch %236 - %236 = OpLabel - OpLoopMerge %237 %238 None - OpBranch %239 - %239 = OpLabel - %240 = OpLoad %int %x_91 - %241 = OpLoad %int %x_93 - %242 = OpSLessThan %bool %240 %241 - OpSelectionMerge %243 None - OpBranchConditional %242 %244 %245 - %244 = OpLabel - OpBranch %243 - %245 = OpLabel - OpBranch %237 - %243 = OpLabel - %246 = OpLoad %int %x_91 - OpStore %x_90 %246 - %247 = OpLoad %int %x_91 - %248 = OpLoad %int %x_92 - %249 = OpLoad %_arr_int_uint_10 %data - OpStore %data %250 - OpStore %data %249 - %251 = OpIAdd %int %247 %248 - %252 = OpISub %int %251 %int_1 - OpStore %x_89 %252 - %253 = OpLoad %int %x_91 - %254 = OpLoad %int %x_92 - %255 = OpLoad %int %x_93 - %258 = OpIMul %int %int_2 %254 - %259 = OpIAdd %int %253 %258 - %260 = OpISub %int %259 %int_1 - %256 = OpExtInst %int %257 SMin %260 %255 - OpStore %x_88 %256 - %261 = OpLoad %int %x_90 - OpStore %x_87 %261 - %262 = OpLoad %int %x_89 - OpStore %x_86 %262 - %263 = OpLoad %int %x_88 - OpStore %x_85 %263 - %264 = OpFunctionCall %void %merge_i1_i1_i1_ %x_87 %x_86 %x_85 - OpBranch %238 - %238 = OpLabel - %268 = OpLoad %int %x_92 - %269 = OpLoad %int %x_91 - %270 = OpIMul %int %int_2 %268 - %271 = OpIAdd %int %269 %270 - OpStore %x_91 %271 - OpBranch %236 - %237 = OpLabel - OpBranch %227 - %227 = OpLabel - %272 = OpLoad %int %x_92 - %273 = OpIMul %int %int_2 %272 - OpStore %x_92 %273 - OpBranch %225 + OpBranch %218 + %218 = OpLabel + OpLoopMerge %219 %220 None + OpBranch %221 + %221 = OpLabel + %222 = OpLoad %int %x_92 + %223 = OpLoad %int %x_93 + %224 = OpSLessThanEqual %bool %222 %223 + OpSelectionMerge %225 None + OpBranchConditional %224 %226 %227 %226 = OpLabel - %276 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %277 = OpLoad %float %276 - %278 = OpConvertFToS %int %277 - %280 = OpSLessThan %bool %278 %int_30 - OpSelectionMerge %281 None - OpBranchConditional %280 %282 %283 - %282 = OpLabel - %284 = OpAccessChain %_ptr_Private_int %data %int_0 - %285 = OpLoad %int %284 - %287 = OpConvertSToF %float %285 - %289 = OpFDiv %float %287 %float_10 - %290 = OpFAdd %float %float_0_5 %289 - OpStore %grey %290 - OpBranch %281 - %283 = OpLabel - %291 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %292 = OpLoad %float %291 - %293 = OpConvertFToS %int %292 - %295 = OpSLessThan %bool %293 %int_60 - OpSelectionMerge %296 None - OpBranchConditional %295 %297 %298 - %297 = OpLabel - %299 = OpAccessChain %_ptr_Private_int %data %int_1 - %300 = OpLoad %int %299 - %301 = OpConvertSToF %float %300 - %302 = OpFDiv %float %301 %float_10 - %303 = OpFAdd %float %float_0_5 %302 - OpStore %grey %303 - OpBranch %296 - %298 = OpLabel - %304 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %305 = OpLoad %float %304 - %306 = OpConvertFToS %int %305 - %308 = OpSLessThan %bool %306 %int_90 - OpSelectionMerge %309 None - OpBranchConditional %308 %310 %311 - %310 = OpLabel - %312 = OpAccessChain %_ptr_Private_int %data %int_2 - %313 = OpLoad %int %312 - %314 = OpConvertSToF %float %313 - %315 = OpFDiv %float %314 %float_10 - %316 = OpFAdd %float %float_0_5 %315 - OpStore %grey %316 - OpBranch %309 - %311 = OpLabel - %317 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %318 = OpLoad %float %317 - %319 = OpConvertFToS %int %318 - %321 = OpSLessThan %bool %319 %int_120 - OpSelectionMerge %322 None - OpBranchConditional %321 %323 %324 - %323 = OpLabel - %325 = OpAccessChain %_ptr_Private_int %data %int_3 - %326 = OpLoad %int %325 - %327 = OpConvertSToF %float %326 - %328 = OpFDiv %float %327 %float_10 - %329 = OpFAdd %float %float_0_5 %328 - OpStore %grey %329 - OpBranch %322 - %324 = OpLabel - %330 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %331 = OpLoad %float %330 - %332 = OpConvertFToS %int %331 - %334 = OpSLessThan %bool %332 %int_150 - OpSelectionMerge %335 None - OpBranchConditional %334 %336 %337 - %336 = OpLabel + OpBranch %225 + %227 = OpLabel + OpBranch %219 + %225 = OpLabel + %228 = OpLoad %int %x_94 + OpStore %x_91 %228 + OpBranch %229 + %229 = OpLabel + OpLoopMerge %230 %231 None + OpBranch %232 + %232 = OpLabel + %233 = OpLoad %int %x_91 + %234 = OpLoad %int %x_93 + %235 = OpSLessThan %bool %233 %234 + OpSelectionMerge %236 None + OpBranchConditional %235 %237 %238 + %237 = OpLabel + OpBranch %236 + %238 = OpLabel + OpBranch %230 + %236 = OpLabel + %239 = OpLoad %int %x_91 + OpStore %x_90 %239 + %240 = OpLoad %int %x_91 + %241 = OpLoad %int %x_92 + %242 = OpLoad %_arr_int_uint_10 %data + OpStore %data %243 + OpStore %data %242 + %244 = OpIAdd %int %240 %241 + %245 = OpISub %int %244 %int_1 + OpStore %x_89 %245 + %246 = OpLoad %int %x_91 + %247 = OpLoad %int %x_92 + %248 = OpLoad %int %x_93 + %251 = OpIMul %int %int_2 %247 + %252 = OpIAdd %int %246 %251 + %253 = OpISub %int %252 %int_1 + %249 = OpExtInst %int %250 SMin %253 %248 + OpStore %x_88 %249 + %254 = OpLoad %int %x_90 + OpStore %x_87 %254 + %255 = OpLoad %int %x_89 + OpStore %x_86 %255 + %256 = OpLoad %int %x_88 + OpStore %x_85 %256 + %257 = OpFunctionCall %void %merge_i1_i1_i1_ %x_87 %x_86 %x_85 + OpBranch %231 + %231 = OpLabel + %261 = OpLoad %int %x_92 + %262 = OpLoad %int %x_91 + %263 = OpIMul %int %int_2 %261 + %264 = OpIAdd %int %262 %263 + OpStore %x_91 %264 + OpBranch %229 + %230 = OpLabel + OpBranch %220 + %220 = OpLabel + %265 = OpLoad %int %x_92 + %266 = OpIMul %int %int_2 %265 + OpStore %x_92 %266 + OpBranch %218 + %219 = OpLabel + %269 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %270 = OpLoad %float %269 + %271 = OpConvertFToS %int %270 + %273 = OpSLessThan %bool %271 %int_30 + OpSelectionMerge %274 None + OpBranchConditional %273 %275 %276 + %275 = OpLabel + %277 = OpAccessChain %_ptr_Private_int %data %int_0 + %278 = OpLoad %int %277 + %280 = OpConvertSToF %float %278 + %282 = OpFDiv %float %280 %float_10 + %283 = OpFAdd %float %float_0_5 %282 + OpStore %grey %283 + OpBranch %274 + %276 = OpLabel + %284 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %285 = OpLoad %float %284 + %286 = OpConvertFToS %int %285 + %288 = OpSLessThan %bool %286 %int_60 + OpSelectionMerge %289 None + OpBranchConditional %288 %290 %291 + %290 = OpLabel + %292 = OpAccessChain %_ptr_Private_int %data %int_1 + %293 = OpLoad %int %292 + %294 = OpConvertSToF %float %293 + %295 = OpFDiv %float %294 %float_10 + %296 = OpFAdd %float %float_0_5 %295 + OpStore %grey %296 + OpBranch %289 + %291 = OpLabel + %297 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %298 = OpLoad %float %297 + %299 = OpConvertFToS %int %298 + %301 = OpSLessThan %bool %299 %int_90 + OpSelectionMerge %302 None + OpBranchConditional %301 %303 %304 + %303 = OpLabel + %305 = OpAccessChain %_ptr_Private_int %data %int_2 + %306 = OpLoad %int %305 + %307 = OpConvertSToF %float %306 + %308 = OpFDiv %float %307 %float_10 + %309 = OpFAdd %float %float_0_5 %308 + OpStore %grey %309 + OpBranch %302 + %304 = OpLabel + %310 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %311 = OpLoad %float %310 + %312 = OpConvertFToS %int %311 + %314 = OpSLessThan %bool %312 %int_120 + OpSelectionMerge %315 None + OpBranchConditional %314 %316 %317 + %316 = OpLabel + %318 = OpAccessChain %_ptr_Private_int %data %int_3 + %319 = OpLoad %int %318 + %320 = OpConvertSToF %float %319 + %321 = OpFDiv %float %320 %float_10 + %322 = OpFAdd %float %float_0_5 %321 + OpStore %grey %322 + OpBranch %315 + %317 = OpLabel + %323 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %324 = OpLoad %float %323 + %325 = OpConvertFToS %int %324 + %327 = OpSLessThan %bool %325 %int_150 + OpSelectionMerge %328 None + OpBranchConditional %327 %329 %330 + %329 = OpLabel OpKill + %330 = OpLabel + %331 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %332 = OpLoad %float %331 + %333 = OpConvertFToS %int %332 + %335 = OpSLessThan %bool %333 %int_180 + OpSelectionMerge %336 None + OpBranchConditional %335 %337 %338 %337 = OpLabel - %338 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %339 = OpLoad %float %338 - %340 = OpConvertFToS %int %339 - %342 = OpSLessThan %bool %340 %int_180 - OpSelectionMerge %343 None - OpBranchConditional %342 %344 %345 - %344 = OpLabel - %347 = OpAccessChain %_ptr_Private_int %data %int_5 - %348 = OpLoad %int %347 - %349 = OpConvertSToF %float %348 - %350 = OpFDiv %float %349 %float_10 - %351 = OpFAdd %float %float_0_5 %350 - OpStore %grey %351 - OpBranch %343 - %345 = OpLabel - %352 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %353 = OpLoad %float %352 - %354 = OpConvertFToS %int %353 - %356 = OpSLessThan %bool %354 %int_210 - OpSelectionMerge %357 None - OpBranchConditional %356 %358 %359 - %358 = OpLabel - %361 = OpAccessChain %_ptr_Private_int %data %int_6 - %362 = OpLoad %int %361 - %363 = OpConvertSToF %float %362 - %364 = OpFDiv %float %363 %float_10 - %365 = OpFAdd %float %float_0_5 %364 - OpStore %grey %365 - OpBranch %357 - %359 = OpLabel - %366 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %367 = OpLoad %float %366 - %368 = OpConvertFToS %int %367 - %370 = OpSLessThan %bool %368 %int_240 - OpSelectionMerge %371 None - OpBranchConditional %370 %372 %373 - %372 = OpLabel - %375 = OpAccessChain %_ptr_Private_int %data %int_7 - %376 = OpLoad %int %375 - %377 = OpConvertSToF %float %376 - %378 = OpFDiv %float %377 %float_10 - %379 = OpFAdd %float %float_0_5 %378 - OpStore %grey %379 - OpBranch %371 - %373 = OpLabel - %380 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %381 = OpLoad %float %380 - %382 = OpConvertFToS %int %381 - %384 = OpSLessThan %bool %382 %int_270 - OpSelectionMerge %385 None - OpBranchConditional %384 %386 %387 - %386 = OpLabel - %389 = OpAccessChain %_ptr_Private_int %data %int_8 - %390 = OpLoad %int %389 - %391 = OpConvertSToF %float %390 - %392 = OpFDiv %float %391 %float_10 - %393 = OpFAdd %float %float_0_5 %392 - OpStore %grey %393 - OpBranch %385 - %387 = OpLabel + %340 = OpAccessChain %_ptr_Private_int %data %int_5 + %341 = OpLoad %int %340 + %342 = OpConvertSToF %float %341 + %343 = OpFDiv %float %342 %float_10 + %344 = OpFAdd %float %float_0_5 %343 + OpStore %grey %344 + OpBranch %336 + %338 = OpLabel + %345 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %346 = OpLoad %float %345 + %347 = OpConvertFToS %int %346 + %349 = OpSLessThan %bool %347 %int_210 + OpSelectionMerge %350 None + OpBranchConditional %349 %351 %352 + %351 = OpLabel + %354 = OpAccessChain %_ptr_Private_int %data %int_6 + %355 = OpLoad %int %354 + %356 = OpConvertSToF %float %355 + %357 = OpFDiv %float %356 %float_10 + %358 = OpFAdd %float %float_0_5 %357 + OpStore %grey %358 + OpBranch %350 + %352 = OpLabel + %359 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %360 = OpLoad %float %359 + %361 = OpConvertFToS %int %360 + %363 = OpSLessThan %bool %361 %int_240 + OpSelectionMerge %364 None + OpBranchConditional %363 %365 %366 + %365 = OpLabel + %368 = OpAccessChain %_ptr_Private_int %data %int_7 + %369 = OpLoad %int %368 + %370 = OpConvertSToF %float %369 + %371 = OpFDiv %float %370 %float_10 + %372 = OpFAdd %float %float_0_5 %371 + OpStore %grey %372 + OpBranch %364 + %366 = OpLabel + %373 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %374 = OpLoad %float %373 + %375 = OpConvertFToS %int %374 + %377 = OpSLessThan %bool %375 %int_270 + OpSelectionMerge %378 None + OpBranchConditional %377 %379 %380 + %379 = OpLabel + %382 = OpAccessChain %_ptr_Private_int %data %int_8 + %383 = OpLoad %int %382 + %384 = OpConvertSToF %float %383 + %385 = OpFDiv %float %384 %float_10 + %386 = OpFAdd %float %float_0_5 %385 + OpStore %grey %386 + OpBranch %378 + %380 = OpLabel OpKill - %385 = OpLabel - OpBranch %371 - %371 = OpLabel - OpBranch %357 - %357 = OpLabel - OpBranch %343 - %343 = OpLabel - OpBranch %335 - %335 = OpLabel - OpBranch %322 - %322 = OpLabel - OpBranch %309 - %309 = OpLabel - OpBranch %296 - %296 = OpLabel - OpBranch %281 - %281 = OpLabel - %394 = OpLoad %float %grey - %396 = OpCompositeConstruct %v3float %394 %394 %394 - %397 = OpCompositeExtract %float %396 0 - %398 = OpCompositeExtract %float %396 1 - %399 = OpCompositeExtract %float %396 2 - %401 = OpCompositeConstruct %v4float %397 %398 %399 %float_1 - OpStore %x_GLF_color %401 + %378 = OpLabel + OpBranch %364 + %364 = OpLabel + OpBranch %350 + %350 = OpLabel + OpBranch %336 + %336 = OpLabel + OpBranch %328 + %328 = OpLabel + OpBranch %315 + %315 = OpLabel + OpBranch %302 + %302 = OpLabel + OpBranch %289 + %289 = OpLabel + OpBranch %274 + %274 = OpLabel + %387 = OpLoad %float %grey + %389 = OpCompositeConstruct %v3float %387 %387 %387 + %390 = OpCompositeExtract %float %389 0 + %391 = OpCompositeExtract %float %389 1 + %392 = OpCompositeExtract %float %389 2 + %394 = OpCompositeConstruct %v4float %390 %391 %392 %float_1 + OpStore %x_GLF_color %394 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %402 +%tint_symbol_3 = OpFunction %void None %395 %tint_symbol_1 = OpFunctionParameter %main_out - %406 = OpLabel - %407 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %407 + %399 = OpLabel + %400 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %400 OpReturn OpFunctionEnd - %main = OpFunction %void None %132 + %main = OpFunction %void None %128 + %402 = OpLabel + %403 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %403 + %404 = OpFunctionCall %void %main_1 + %406 = OpLoad %v4float %x_GLF_color + %407 = OpCompositeConstruct %main_out %406 + %405 = OpFunctionCall %void %tint_symbol_3 %407 + OpReturn + OpFunctionEnd + %mergeSort_ = OpFunction %void None %128 %409 = OpLabel - %410 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %410 - %411 = OpFunctionCall %void %main_1 - %413 = OpLoad %v4float %x_GLF_color - %414 = OpCompositeConstruct %main_out %413 - %412 = OpFunctionCall %void %tint_symbol_3 %414 - OpReturn - OpFunctionEnd - %mergeSort_ = OpFunction %void None %132 - %416 = OpLabel %low = OpVariable %_ptr_Function_int Function %32 %high = OpVariable %_ptr_Function_int Function %32 %m = OpVariable %_ptr_Function_int Function %32 @@ -668,78 +649,75 @@ SKIP: FAILED OpStore %low %int_0 OpStore %high %int_9 OpStore %m %int_1 - OpBranch %427 - %427 = OpLabel - OpLoopMerge %428 %429 None - OpBranch %430 - %430 = OpLabel - %431 = OpLoad %int %m - %432 = OpLoad %int %high - %433 = OpSLessThanEqual %bool %431 %432 - OpSelectionMerge %434 None - OpBranchConditional %433 %435 %436 - %435 = OpLabel - OpBranch %434 - %436 = OpLabel - OpBranch %428 - %434 = OpLabel - %437 = OpLoad %int %low - OpStore %i_2 %437 - OpBranch %438 - %438 = OpLabel - OpLoopMerge %439 %440 None - OpBranch %441 - %441 = OpLabel - %442 = OpLoad %int %i_2 - %443 = OpLoad %int %high - %444 = OpSLessThan %bool %442 %443 - OpSelectionMerge %445 None - OpBranchConditional %444 %446 %447 - %446 = OpLabel - OpBranch %445 - %447 = OpLabel - OpBranch %439 - %445 = OpLabel - %448 = OpLoad %int %i_2 - OpStore %from_1 %448 - %449 = OpLoad %int %i_2 - %450 = OpLoad %int %m - %451 = OpIAdd %int %449 %450 - %452 = OpISub %int %451 %int_1 - OpStore %mid_1 %452 - %453 = OpLoad %int %i_2 - %454 = OpLoad %int %m - %455 = OpLoad %int %high - %457 = OpIMul %int %int_2 %454 - %458 = OpIAdd %int %453 %457 - %459 = OpISub %int %458 %int_1 - %456 = OpExtInst %int %257 SMin %459 %455 - OpStore %to_1 %456 - %460 = OpLoad %int %from_1 - OpStore %param %460 - %461 = OpLoad %int %mid_1 - OpStore %param_1 %461 - %462 = OpLoad %int %to_1 - OpStore %param_2 %462 - %463 = OpFunctionCall %void %merge_i1_i1_i1_ %param %param_1 %param_2 - OpBranch %440 - %440 = OpLabel - %467 = OpLoad %int %m - %468 = OpLoad %int %i_2 - %469 = OpIMul %int %int_2 %467 - %470 = OpIAdd %int %468 %469 - OpStore %i_2 %470 - OpBranch %438 - %439 = OpLabel - OpBranch %429 - %429 = OpLabel - %471 = OpLoad %int %m - %472 = OpIMul %int %int_2 %471 - OpStore %m %472 - OpBranch %427 + OpBranch %420 + %420 = OpLabel + OpLoopMerge %421 %422 None + OpBranch %423 + %423 = OpLabel + %424 = OpLoad %int %m + %425 = OpLoad %int %high + %426 = OpSLessThanEqual %bool %424 %425 + OpSelectionMerge %427 None + OpBranchConditional %426 %428 %429 %428 = OpLabel + OpBranch %427 + %429 = OpLabel + OpBranch %421 + %427 = OpLabel + %430 = OpLoad %int %low + OpStore %i_2 %430 + OpBranch %431 + %431 = OpLabel + OpLoopMerge %432 %433 None + OpBranch %434 + %434 = OpLabel + %435 = OpLoad %int %i_2 + %436 = OpLoad %int %high + %437 = OpSLessThan %bool %435 %436 + OpSelectionMerge %438 None + OpBranchConditional %437 %439 %440 + %439 = OpLabel + OpBranch %438 + %440 = OpLabel + OpBranch %432 + %438 = OpLabel + %441 = OpLoad %int %i_2 + OpStore %from_1 %441 + %442 = OpLoad %int %i_2 + %443 = OpLoad %int %m + %444 = OpIAdd %int %442 %443 + %445 = OpISub %int %444 %int_1 + OpStore %mid_1 %445 + %446 = OpLoad %int %i_2 + %447 = OpLoad %int %m + %448 = OpLoad %int %high + %450 = OpIMul %int %int_2 %447 + %451 = OpIAdd %int %446 %450 + %452 = OpISub %int %451 %int_1 + %449 = OpExtInst %int %250 SMin %452 %448 + OpStore %to_1 %449 + %453 = OpLoad %int %from_1 + OpStore %param %453 + %454 = OpLoad %int %mid_1 + OpStore %param_1 %454 + %455 = OpLoad %int %to_1 + OpStore %param_2 %455 + %456 = OpFunctionCall %void %merge_i1_i1_i1_ %param %param_1 %param_2 + OpBranch %433 + %433 = OpLabel + %460 = OpLoad %int %m + %461 = OpLoad %int %i_2 + %462 = OpIMul %int %int_2 %460 + %463 = OpIAdd %int %461 %462 + OpStore %i_2 %463 + OpBranch %431 + %432 = OpLabel + OpBranch %422 + %422 = OpLabel + %464 = OpLoad %int %m + %465 = OpIMul %int %int_2 %464 + OpStore %m %465 + OpBranch %420 + %421 = OpLabel OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 157[%157] is not post dominated by the back-edge block 205[%205] - %205 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.wgsl.expected.spvasm index 451e62716f..6f99e9fc78 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.wgsl.expected.spvasm @@ -1,12 +1,10 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 473 +; Bound: 470 ; Schema: 0 OpCapability Shader - %257 = OpExtInstImport "GLSL.std.450" + %254 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2 OpExecutionMode %main OriginUpperLeft @@ -111,7 +109,7 @@ SKIP: FAILED %int_3 = OpConstant %int 3 %int_4 = OpConstant %int 4 %int_9 = OpConstant %int 9 - %250 = OpConstantComposite %_arr_int_uint_10 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 + %247 = OpConstantComposite %_arr_int_uint_10 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 %uint_1 = OpConstant %uint 1 %_ptr_Private_float = OpTypePointer Private %float %int_30 = OpConstant %int 30 @@ -132,7 +130,7 @@ SKIP: FAILED %v3float = OpTypeVector %float 3 %float_1 = OpConstant %float 1 %main_out = OpTypeStruct %v4float - %402 = OpTypeFunction %void %main_out + %399 = OpTypeFunction %void %main_out %merge_i1_i1_i1_ = OpFunction %void None %23 %from = OpFunctionParameter %_ptr_Function_int %mid = OpFunctionParameter %_ptr_Function_int @@ -367,294 +365,287 @@ SKIP: FAILED %157 = OpLabel %203 = OpLoad %int %i_3 %204 = OpSLessThan %bool %203 %int_10 - OpSelectionMerge %205 None - OpBranchConditional %204 %206 %207 - %206 = OpLabel - OpBranch %205 - %207 = OpLabel - OpBranch %156 - %205 = OpLabel - OpBranch %155 + OpBranchConditional %204 %155 %156 %156 = OpLabel OpStore %j_1 %int_0 + OpBranch %205 + %205 = OpLabel + OpLoopMerge %206 %207 None OpBranch %208 %208 = OpLabel - OpLoopMerge %209 %210 None + %209 = OpLoad %int %j_1 + %210 = OpSLessThan %bool %209 %int_10 + OpSelectionMerge %211 None + OpBranchConditional %210 %212 %213 + %212 = OpLabel OpBranch %211 + %213 = OpLabel + OpBranch %206 %211 = OpLabel - %212 = OpLoad %int %j_1 - %213 = OpSLessThan %bool %212 %int_10 - OpSelectionMerge %214 None - OpBranchConditional %213 %215 %216 - %215 = OpLabel - OpBranch %214 - %216 = OpLabel - OpBranch %209 - %214 = OpLabel - %217 = OpLoad %int %j_1 - %218 = OpLoad %int %j_1 - %219 = OpAccessChain %_ptr_Private_int %data %218 - %220 = OpLoad %int %219 - %221 = OpAccessChain %_ptr_Private_int %temp %217 - OpStore %221 %220 - OpBranch %210 - %210 = OpLabel - %222 = OpLoad %int %j_1 - %223 = OpIAdd %int %222 %int_1 - OpStore %j_1 %223 - OpBranch %208 - %209 = OpLabel + %214 = OpLoad %int %j_1 + %215 = OpLoad %int %j_1 + %216 = OpAccessChain %_ptr_Private_int %data %215 + %217 = OpLoad %int %216 + %218 = OpAccessChain %_ptr_Private_int %temp %214 + OpStore %218 %217 + OpBranch %207 + %207 = OpLabel + %219 = OpLoad %int %j_1 + %220 = OpIAdd %int %219 %int_1 + OpStore %j_1 %220 + OpBranch %205 + %206 = OpLabel OpStore %x_94 %int_0 OpStore %x_93 %int_9 OpStore %x_92 %int_1 + OpBranch %222 + %222 = OpLabel + OpLoopMerge %223 %224 None OpBranch %225 %225 = OpLabel - OpLoopMerge %226 %227 None - OpBranch %228 - %228 = OpLabel - %229 = OpLoad %int %x_92 - %230 = OpLoad %int %x_93 - %231 = OpSLessThanEqual %bool %229 %230 - OpSelectionMerge %232 None - OpBranchConditional %231 %233 %234 + %226 = OpLoad %int %x_92 + %227 = OpLoad %int %x_93 + %228 = OpSLessThanEqual %bool %226 %227 + OpSelectionMerge %229 None + OpBranchConditional %228 %230 %231 + %230 = OpLabel + OpBranch %229 + %231 = OpLabel + OpBranch %223 + %229 = OpLabel + %232 = OpLoad %int %x_94 + OpStore %x_91 %232 + OpBranch %233 %233 = OpLabel - OpBranch %232 - %234 = OpLabel - OpBranch %226 - %232 = OpLabel - %235 = OpLoad %int %x_94 - OpStore %x_91 %235 + OpLoopMerge %234 %235 None OpBranch %236 %236 = OpLabel - OpLoopMerge %237 %238 None - OpBranch %239 - %239 = OpLabel - %240 = OpLoad %int %x_91 - %241 = OpLoad %int %x_93 - %242 = OpSLessThan %bool %240 %241 - OpSelectionMerge %243 None - OpBranchConditional %242 %244 %245 - %244 = OpLabel - OpBranch %243 - %245 = OpLabel - OpBranch %237 - %243 = OpLabel - %246 = OpLoad %int %x_91 - OpStore %x_90 %246 - %247 = OpLoad %int %x_91 - %248 = OpLoad %int %x_92 - %249 = OpLoad %_arr_int_uint_10 %data - OpStore %data %250 - OpStore %data %249 - %251 = OpIAdd %int %247 %248 - %252 = OpISub %int %251 %int_1 - OpStore %x_89 %252 - %253 = OpLoad %int %x_91 - %254 = OpLoad %int %x_92 - %255 = OpLoad %int %x_93 - %258 = OpIMul %int %int_2 %254 - %259 = OpIAdd %int %253 %258 - %260 = OpISub %int %259 %int_1 - %256 = OpExtInst %int %257 SMin %260 %255 - OpStore %x_88 %256 - %261 = OpLoad %int %x_90 - OpStore %x_87 %261 - %262 = OpLoad %int %x_89 - OpStore %x_86 %262 - %263 = OpLoad %int %x_88 - OpStore %x_85 %263 - %264 = OpFunctionCall %void %merge_i1_i1_i1_ %x_87 %x_86 %x_85 - OpBranch %238 - %238 = OpLabel - %268 = OpLoad %int %x_92 - %269 = OpLoad %int %x_91 - %270 = OpIMul %int %int_2 %268 - %271 = OpIAdd %int %269 %270 - OpStore %x_91 %271 - OpBranch %236 - %237 = OpLabel - OpBranch %227 - %227 = OpLabel - %272 = OpLoad %int %x_92 - %273 = OpIMul %int %int_2 %272 - OpStore %x_92 %273 - OpBranch %225 - %226 = OpLabel - %276 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %277 = OpLoad %float %276 - %278 = OpConvertFToS %int %277 - %280 = OpSLessThan %bool %278 %int_30 - OpSelectionMerge %281 None - OpBranchConditional %280 %282 %283 - %282 = OpLabel - %284 = OpAccessChain %_ptr_Private_int %data %int_0 - %285 = OpLoad %int %284 - %287 = OpConvertSToF %float %285 - %289 = OpFDiv %float %287 %float_10 - %290 = OpFAdd %float %float_0_5 %289 - OpStore %grey %290 - OpBranch %281 - %283 = OpLabel - %291 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %292 = OpLoad %float %291 - %293 = OpConvertFToS %int %292 - %295 = OpSLessThan %bool %293 %int_60 - OpSelectionMerge %296 None - OpBranchConditional %295 %297 %298 - %297 = OpLabel - %299 = OpAccessChain %_ptr_Private_int %data %int_1 - %300 = OpLoad %int %299 - %301 = OpConvertSToF %float %300 - %302 = OpFDiv %float %301 %float_10 - %303 = OpFAdd %float %float_0_5 %302 - OpStore %grey %303 - OpBranch %296 - %298 = OpLabel - %304 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %305 = OpLoad %float %304 - %306 = OpConvertFToS %int %305 - %308 = OpSLessThan %bool %306 %int_90 - OpSelectionMerge %309 None - OpBranchConditional %308 %310 %311 - %310 = OpLabel - %312 = OpAccessChain %_ptr_Private_int %data %int_2 - %313 = OpLoad %int %312 - %314 = OpConvertSToF %float %313 - %315 = OpFDiv %float %314 %float_10 - %316 = OpFAdd %float %float_0_5 %315 - OpStore %grey %316 - OpBranch %309 - %311 = OpLabel - %317 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %318 = OpLoad %float %317 - %319 = OpConvertFToS %int %318 - %321 = OpSLessThan %bool %319 %int_120 - OpSelectionMerge %322 None - OpBranchConditional %321 %323 %324 - %323 = OpLabel - %325 = OpAccessChain %_ptr_Private_int %data %int_3 - %326 = OpLoad %int %325 - %327 = OpConvertSToF %float %326 - %328 = OpFDiv %float %327 %float_10 - %329 = OpFAdd %float %float_0_5 %328 - OpStore %grey %329 - OpBranch %322 - %324 = OpLabel - %330 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %331 = OpLoad %float %330 - %332 = OpConvertFToS %int %331 - %334 = OpSLessThan %bool %332 %int_150 - OpSelectionMerge %335 None - OpBranchConditional %334 %336 %337 - %336 = OpLabel + %237 = OpLoad %int %x_91 + %238 = OpLoad %int %x_93 + %239 = OpSLessThan %bool %237 %238 + OpSelectionMerge %240 None + OpBranchConditional %239 %241 %242 + %241 = OpLabel + OpBranch %240 + %242 = OpLabel + OpBranch %234 + %240 = OpLabel + %243 = OpLoad %int %x_91 + OpStore %x_90 %243 + %244 = OpLoad %int %x_91 + %245 = OpLoad %int %x_92 + %246 = OpLoad %_arr_int_uint_10 %data + OpStore %data %247 + OpStore %data %246 + %248 = OpIAdd %int %244 %245 + %249 = OpISub %int %248 %int_1 + OpStore %x_89 %249 + %250 = OpLoad %int %x_91 + %251 = OpLoad %int %x_92 + %252 = OpLoad %int %x_93 + %255 = OpIMul %int %int_2 %251 + %256 = OpIAdd %int %250 %255 + %257 = OpISub %int %256 %int_1 + %253 = OpExtInst %int %254 SMin %257 %252 + OpStore %x_88 %253 + %258 = OpLoad %int %x_90 + OpStore %x_87 %258 + %259 = OpLoad %int %x_89 + OpStore %x_86 %259 + %260 = OpLoad %int %x_88 + OpStore %x_85 %260 + %261 = OpFunctionCall %void %merge_i1_i1_i1_ %x_87 %x_86 %x_85 + OpBranch %235 + %235 = OpLabel + %265 = OpLoad %int %x_92 + %266 = OpLoad %int %x_91 + %267 = OpIMul %int %int_2 %265 + %268 = OpIAdd %int %266 %267 + OpStore %x_91 %268 + OpBranch %233 + %234 = OpLabel + OpBranch %224 + %224 = OpLabel + %269 = OpLoad %int %x_92 + %270 = OpIMul %int %int_2 %269 + OpStore %x_92 %270 + OpBranch %222 + %223 = OpLabel + %273 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %274 = OpLoad %float %273 + %275 = OpConvertFToS %int %274 + %277 = OpSLessThan %bool %275 %int_30 + OpSelectionMerge %278 None + OpBranchConditional %277 %279 %280 + %279 = OpLabel + %281 = OpAccessChain %_ptr_Private_int %data %int_0 + %282 = OpLoad %int %281 + %284 = OpConvertSToF %float %282 + %286 = OpFDiv %float %284 %float_10 + %287 = OpFAdd %float %float_0_5 %286 + OpStore %grey %287 + OpBranch %278 + %280 = OpLabel + %288 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %289 = OpLoad %float %288 + %290 = OpConvertFToS %int %289 + %292 = OpSLessThan %bool %290 %int_60 + OpSelectionMerge %293 None + OpBranchConditional %292 %294 %295 + %294 = OpLabel + %296 = OpAccessChain %_ptr_Private_int %data %int_1 + %297 = OpLoad %int %296 + %298 = OpConvertSToF %float %297 + %299 = OpFDiv %float %298 %float_10 + %300 = OpFAdd %float %float_0_5 %299 + OpStore %grey %300 + OpBranch %293 + %295 = OpLabel + %301 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %302 = OpLoad %float %301 + %303 = OpConvertFToS %int %302 + %305 = OpSLessThan %bool %303 %int_90 + OpSelectionMerge %306 None + OpBranchConditional %305 %307 %308 + %307 = OpLabel + %309 = OpAccessChain %_ptr_Private_int %data %int_2 + %310 = OpLoad %int %309 + %311 = OpConvertSToF %float %310 + %312 = OpFDiv %float %311 %float_10 + %313 = OpFAdd %float %float_0_5 %312 + OpStore %grey %313 + OpBranch %306 + %308 = OpLabel + %314 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %315 = OpLoad %float %314 + %316 = OpConvertFToS %int %315 + %318 = OpSLessThan %bool %316 %int_120 + OpSelectionMerge %319 None + OpBranchConditional %318 %320 %321 + %320 = OpLabel + %322 = OpAccessChain %_ptr_Private_int %data %int_3 + %323 = OpLoad %int %322 + %324 = OpConvertSToF %float %323 + %325 = OpFDiv %float %324 %float_10 + %326 = OpFAdd %float %float_0_5 %325 + OpStore %grey %326 + OpBranch %319 + %321 = OpLabel + %327 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %328 = OpLoad %float %327 + %329 = OpConvertFToS %int %328 + %331 = OpSLessThan %bool %329 %int_150 + OpSelectionMerge %332 None + OpBranchConditional %331 %333 %334 + %333 = OpLabel OpKill - %337 = OpLabel - %338 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %339 = OpLoad %float %338 - %340 = OpConvertFToS %int %339 - %342 = OpSLessThan %bool %340 %int_180 - OpSelectionMerge %343 None - OpBranchConditional %342 %344 %345 - %344 = OpLabel - %347 = OpAccessChain %_ptr_Private_int %data %int_5 - %348 = OpLoad %int %347 - %349 = OpConvertSToF %float %348 - %350 = OpFDiv %float %349 %float_10 - %351 = OpFAdd %float %float_0_5 %350 - OpStore %grey %351 - OpBranch %343 - %345 = OpLabel - %352 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %353 = OpLoad %float %352 - %354 = OpConvertFToS %int %353 - %356 = OpSLessThan %bool %354 %int_210 - OpSelectionMerge %357 None - OpBranchConditional %356 %358 %359 - %358 = OpLabel - %361 = OpAccessChain %_ptr_Private_int %data %int_6 - %362 = OpLoad %int %361 - %363 = OpConvertSToF %float %362 - %364 = OpFDiv %float %363 %float_10 - %365 = OpFAdd %float %float_0_5 %364 - OpStore %grey %365 - OpBranch %357 - %359 = OpLabel - %366 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %367 = OpLoad %float %366 - %368 = OpConvertFToS %int %367 - %370 = OpSLessThan %bool %368 %int_240 - OpSelectionMerge %371 None - OpBranchConditional %370 %372 %373 - %372 = OpLabel - %375 = OpAccessChain %_ptr_Private_int %data %int_7 - %376 = OpLoad %int %375 - %377 = OpConvertSToF %float %376 - %378 = OpFDiv %float %377 %float_10 - %379 = OpFAdd %float %float_0_5 %378 - OpStore %grey %379 - OpBranch %371 - %373 = OpLabel - %380 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %381 = OpLoad %float %380 - %382 = OpConvertFToS %int %381 - %384 = OpSLessThan %bool %382 %int_270 - OpSelectionMerge %385 None - OpBranchConditional %384 %386 %387 - %386 = OpLabel - %389 = OpAccessChain %_ptr_Private_int %data %int_8 - %390 = OpLoad %int %389 - %391 = OpConvertSToF %float %390 - %392 = OpFDiv %float %391 %float_10 - %393 = OpFAdd %float %float_0_5 %392 - OpStore %grey %393 - OpBranch %385 - %387 = OpLabel + %334 = OpLabel + %335 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %336 = OpLoad %float %335 + %337 = OpConvertFToS %int %336 + %339 = OpSLessThan %bool %337 %int_180 + OpSelectionMerge %340 None + OpBranchConditional %339 %341 %342 + %341 = OpLabel + %344 = OpAccessChain %_ptr_Private_int %data %int_5 + %345 = OpLoad %int %344 + %346 = OpConvertSToF %float %345 + %347 = OpFDiv %float %346 %float_10 + %348 = OpFAdd %float %float_0_5 %347 + OpStore %grey %348 + OpBranch %340 + %342 = OpLabel + %349 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %350 = OpLoad %float %349 + %351 = OpConvertFToS %int %350 + %353 = OpSLessThan %bool %351 %int_210 + OpSelectionMerge %354 None + OpBranchConditional %353 %355 %356 + %355 = OpLabel + %358 = OpAccessChain %_ptr_Private_int %data %int_6 + %359 = OpLoad %int %358 + %360 = OpConvertSToF %float %359 + %361 = OpFDiv %float %360 %float_10 + %362 = OpFAdd %float %float_0_5 %361 + OpStore %grey %362 + OpBranch %354 + %356 = OpLabel + %363 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %364 = OpLoad %float %363 + %365 = OpConvertFToS %int %364 + %367 = OpSLessThan %bool %365 %int_240 + OpSelectionMerge %368 None + OpBranchConditional %367 %369 %370 + %369 = OpLabel + %372 = OpAccessChain %_ptr_Private_int %data %int_7 + %373 = OpLoad %int %372 + %374 = OpConvertSToF %float %373 + %375 = OpFDiv %float %374 %float_10 + %376 = OpFAdd %float %float_0_5 %375 + OpStore %grey %376 + OpBranch %368 + %370 = OpLabel + %377 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %378 = OpLoad %float %377 + %379 = OpConvertFToS %int %378 + %381 = OpSLessThan %bool %379 %int_270 + OpSelectionMerge %382 None + OpBranchConditional %381 %383 %384 + %383 = OpLabel + %386 = OpAccessChain %_ptr_Private_int %data %int_8 + %387 = OpLoad %int %386 + %388 = OpConvertSToF %float %387 + %389 = OpFDiv %float %388 %float_10 + %390 = OpFAdd %float %float_0_5 %389 + OpStore %grey %390 + OpBranch %382 + %384 = OpLabel OpKill - %385 = OpLabel - OpBranch %371 - %371 = OpLabel - OpBranch %357 - %357 = OpLabel - OpBranch %343 - %343 = OpLabel - OpBranch %335 - %335 = OpLabel - OpBranch %322 - %322 = OpLabel - OpBranch %309 - %309 = OpLabel - OpBranch %296 - %296 = OpLabel - OpBranch %281 - %281 = OpLabel - %394 = OpLoad %float %grey - %396 = OpCompositeConstruct %v3float %394 %394 %394 - %397 = OpCompositeExtract %float %396 0 - %398 = OpCompositeExtract %float %396 1 - %399 = OpCompositeExtract %float %396 2 - %401 = OpCompositeConstruct %v4float %397 %398 %399 %float_1 - OpStore %x_GLF_color %401 + %382 = OpLabel + OpBranch %368 + %368 = OpLabel + OpBranch %354 + %354 = OpLabel + OpBranch %340 + %340 = OpLabel + OpBranch %332 + %332 = OpLabel + OpBranch %319 + %319 = OpLabel + OpBranch %306 + %306 = OpLabel + OpBranch %293 + %293 = OpLabel + OpBranch %278 + %278 = OpLabel + %391 = OpLoad %float %grey + %393 = OpCompositeConstruct %v3float %391 %391 %391 + %394 = OpCompositeExtract %float %393 0 + %395 = OpCompositeExtract %float %393 1 + %396 = OpCompositeExtract %float %393 2 + %398 = OpCompositeConstruct %v4float %394 %395 %396 %float_1 + OpStore %x_GLF_color %398 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %402 +%tint_symbol_3 = OpFunction %void None %399 %tint_symbol_1 = OpFunctionParameter %main_out - %406 = OpLabel - %407 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %407 + %403 = OpLabel + %404 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %404 OpReturn OpFunctionEnd %main = OpFunction %void None %132 - %409 = OpLabel - %410 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %410 - %411 = OpFunctionCall %void %main_1 - %413 = OpLoad %v4float %x_GLF_color - %414 = OpCompositeConstruct %main_out %413 - %412 = OpFunctionCall %void %tint_symbol_3 %414 + %406 = OpLabel + %407 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %407 + %408 = OpFunctionCall %void %main_1 + %410 = OpLoad %v4float %x_GLF_color + %411 = OpCompositeConstruct %main_out %410 + %409 = OpFunctionCall %void %tint_symbol_3 %411 OpReturn OpFunctionEnd %mergeSort_ = OpFunction %void None %132 - %416 = OpLabel + %413 = OpLabel %low = OpVariable %_ptr_Function_int Function %32 %high = OpVariable %_ptr_Function_int Function %32 %m = OpVariable %_ptr_Function_int Function %32 @@ -668,78 +659,75 @@ SKIP: FAILED OpStore %low %int_0 OpStore %high %int_9 OpStore %m %int_1 + OpBranch %424 + %424 = OpLabel + OpLoopMerge %425 %426 None OpBranch %427 %427 = OpLabel - OpLoopMerge %428 %429 None - OpBranch %430 - %430 = OpLabel - %431 = OpLoad %int %m - %432 = OpLoad %int %high - %433 = OpSLessThanEqual %bool %431 %432 - OpSelectionMerge %434 None - OpBranchConditional %433 %435 %436 + %428 = OpLoad %int %m + %429 = OpLoad %int %high + %430 = OpSLessThanEqual %bool %428 %429 + OpSelectionMerge %431 None + OpBranchConditional %430 %432 %433 + %432 = OpLabel + OpBranch %431 + %433 = OpLabel + OpBranch %425 + %431 = OpLabel + %434 = OpLoad %int %low + OpStore %i_2 %434 + OpBranch %435 %435 = OpLabel - OpBranch %434 - %436 = OpLabel - OpBranch %428 - %434 = OpLabel - %437 = OpLoad %int %low - OpStore %i_2 %437 + OpLoopMerge %436 %437 None OpBranch %438 %438 = OpLabel - OpLoopMerge %439 %440 None - OpBranch %441 - %441 = OpLabel - %442 = OpLoad %int %i_2 - %443 = OpLoad %int %high - %444 = OpSLessThan %bool %442 %443 - OpSelectionMerge %445 None - OpBranchConditional %444 %446 %447 - %446 = OpLabel - OpBranch %445 - %447 = OpLabel - OpBranch %439 - %445 = OpLabel - %448 = OpLoad %int %i_2 - OpStore %from_1 %448 - %449 = OpLoad %int %i_2 - %450 = OpLoad %int %m - %451 = OpIAdd %int %449 %450 - %452 = OpISub %int %451 %int_1 - OpStore %mid_1 %452 - %453 = OpLoad %int %i_2 - %454 = OpLoad %int %m - %455 = OpLoad %int %high - %457 = OpIMul %int %int_2 %454 - %458 = OpIAdd %int %453 %457 - %459 = OpISub %int %458 %int_1 - %456 = OpExtInst %int %257 SMin %459 %455 - OpStore %to_1 %456 - %460 = OpLoad %int %from_1 - OpStore %param %460 - %461 = OpLoad %int %mid_1 - OpStore %param_1 %461 - %462 = OpLoad %int %to_1 - OpStore %param_2 %462 - %463 = OpFunctionCall %void %merge_i1_i1_i1_ %param %param_1 %param_2 - OpBranch %440 - %440 = OpLabel - %467 = OpLoad %int %m - %468 = OpLoad %int %i_2 - %469 = OpIMul %int %int_2 %467 - %470 = OpIAdd %int %468 %469 - OpStore %i_2 %470 - OpBranch %438 - %439 = OpLabel - OpBranch %429 - %429 = OpLabel - %471 = OpLoad %int %m - %472 = OpIMul %int %int_2 %471 - OpStore %m %472 - OpBranch %427 - %428 = OpLabel + %439 = OpLoad %int %i_2 + %440 = OpLoad %int %high + %441 = OpSLessThan %bool %439 %440 + OpSelectionMerge %442 None + OpBranchConditional %441 %443 %444 + %443 = OpLabel + OpBranch %442 + %444 = OpLabel + OpBranch %436 + %442 = OpLabel + %445 = OpLoad %int %i_2 + OpStore %from_1 %445 + %446 = OpLoad %int %i_2 + %447 = OpLoad %int %m + %448 = OpIAdd %int %446 %447 + %449 = OpISub %int %448 %int_1 + OpStore %mid_1 %449 + %450 = OpLoad %int %i_2 + %451 = OpLoad %int %m + %452 = OpLoad %int %high + %454 = OpIMul %int %int_2 %451 + %455 = OpIAdd %int %450 %454 + %456 = OpISub %int %455 %int_1 + %453 = OpExtInst %int %254 SMin %456 %452 + OpStore %to_1 %453 + %457 = OpLoad %int %from_1 + OpStore %param %457 + %458 = OpLoad %int %mid_1 + OpStore %param_1 %458 + %459 = OpLoad %int %to_1 + OpStore %param_2 %459 + %460 = OpFunctionCall %void %merge_i1_i1_i1_ %param %param_1 %param_2 + OpBranch %437 + %437 = OpLabel + %464 = OpLoad %int %m + %465 = OpLoad %int %i_2 + %466 = OpIMul %int %int_2 %464 + %467 = OpIAdd %int %465 %466 + OpStore %i_2 %467 + OpBranch %435 + %436 = OpLabel + OpBranch %426 + %426 = OpLabel + %468 = OpLoad %int %m + %469 = OpIMul %int %int_2 %468 + OpStore %m %469 + OpBranch %424 + %425 = OpLabel OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 157[%157] is not post dominated by the back-edge block 205[%205] - %205 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.spvasm index 5cce2a6fa2..06e5ba8508 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.spvasm @@ -1,12 +1,10 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 471 +; Bound: 464 ; Schema: 0 OpCapability Shader - %255 = OpExtInstImport "GLSL.std.450" + %248 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2 OpExecutionMode %main OriginUpperLeft @@ -96,9 +94,9 @@ SKIP: FAILED %bool = OpTypeBool %_ptr_Private_int = OpTypePointer Private %int %int_10 = OpConstant %int 10 - %132 = OpTypeFunction %void + %128 = OpTypeFunction %void %_ptr_Function_float = OpTypePointer Function %float - %149 = OpConstantNull %float + %145 = OpConstantNull %float %uint_0 = OpConstant %uint 0 %_ptr_Uniform_float = OpTypePointer Uniform %float %int_n5 = OpConstant %int -5 @@ -131,7 +129,7 @@ SKIP: FAILED %v3float = OpTypeVector %float 3 %float_1 = OpConstant %float 1 %main_out = OpTypeStruct %v4float - %400 = OpTypeFunction %void %main_out + %393 = OpTypeFunction %void %main_out %merge_i1_i1_i1_ = OpFunction %void None %23 %from = OpFunctionParameter %_ptr_Function_int %mid = OpFunctionParameter %_ptr_Function_int @@ -158,129 +156,119 @@ SKIP: FAILED %51 = OpLoad %int %j %53 = OpLoad %int %to %54 = OpSLessThanEqual %bool %48 %50 - OpSelectionMerge %56 None - OpBranchConditional %54 %57 %56 - %57 = OpLabel - %58 = OpSLessThanEqual %bool %51 %53 - OpBranch %56 - %56 = OpLabel - %59 = OpPhi %bool %54 %47 %58 %57 - OpSelectionMerge %60 None - OpBranchConditional %59 %61 %62 - %61 = OpLabel - OpBranch %60 - %62 = OpLabel - OpBranch %45 + %56 = OpSLessThanEqual %bool %51 %53 + %57 = OpLogicalAnd %bool %54 %56 + OpSelectionMerge %58 None + OpBranchConditional %57 %59 %60 + %59 = OpLabel + OpBranch %58 %60 = OpLabel - %63 = OpLoad %int %i - %65 = OpAccessChain %_ptr_Private_int %data %63 - %66 = OpLoad %int %65 - %67 = OpLoad %int %j - %68 = OpAccessChain %_ptr_Private_int %data %67 - %69 = OpLoad %int %68 - %70 = OpSLessThan %bool %66 %69 - OpSelectionMerge %71 None - OpBranchConditional %70 %72 %73 - %72 = OpLabel - %74 = OpLoad %int %k + OpBranch %45 + %58 = OpLabel + %61 = OpLoad %int %i + %63 = OpAccessChain %_ptr_Private_int %data %61 + %64 = OpLoad %int %63 + %65 = OpLoad %int %j + %66 = OpAccessChain %_ptr_Private_int %data %65 + %67 = OpLoad %int %66 + %68 = OpSLessThan %bool %64 %67 + OpSelectionMerge %69 None + OpBranchConditional %68 %70 %71 + %70 = OpLabel + %72 = OpLoad %int %k + %73 = OpIAdd %int %72 %int_1 + OpStore %k %73 + %74 = OpLoad %int %i %75 = OpIAdd %int %74 %int_1 - OpStore %k %75 - %76 = OpLoad %int %i - %77 = OpIAdd %int %76 %int_1 - OpStore %i %77 - %78 = OpAccessChain %_ptr_Private_int %data %76 - %79 = OpLoad %int %78 - %80 = OpAccessChain %_ptr_Private_int %temp %74 - OpStore %80 %79 - OpBranch %71 - %73 = OpLabel - %81 = OpLoad %int %k - %82 = OpIAdd %int %81 %int_1 - OpStore %k %82 - %83 = OpLoad %int %j - %84 = OpIAdd %int %83 %int_1 - OpStore %j %84 - %85 = OpAccessChain %_ptr_Private_int %data %83 - %86 = OpLoad %int %85 - %87 = OpAccessChain %_ptr_Private_int %temp %81 - OpStore %87 %86 - OpBranch %71 + OpStore %i %75 + %76 = OpAccessChain %_ptr_Private_int %data %74 + %77 = OpLoad %int %76 + %78 = OpAccessChain %_ptr_Private_int %temp %72 + OpStore %78 %77 + OpBranch %69 %71 = OpLabel + %79 = OpLoad %int %k + %80 = OpIAdd %int %79 %int_1 + OpStore %k %80 + %81 = OpLoad %int %j + %82 = OpIAdd %int %81 %int_1 + OpStore %j %82 + %83 = OpAccessChain %_ptr_Private_int %data %81 + %84 = OpLoad %int %83 + %85 = OpAccessChain %_ptr_Private_int %temp %79 + OpStore %85 %84 + OpBranch %69 + %69 = OpLabel OpBranch %46 %46 = OpLabel OpBranch %44 %45 = OpLabel + OpBranch %86 + %86 = OpLabel + OpLoopMerge %87 %88 None + OpBranch %89 + %89 = OpLabel + %90 = OpLoad %int %i + %91 = OpLoad %int %i + %93 = OpLoad %int %mid + %95 = OpSLessThan %bool %90 %int_10 + %96 = OpSLessThanEqual %bool %91 %93 + %97 = OpLogicalAnd %bool %95 %96 + OpSelectionMerge %98 None + OpBranchConditional %97 %99 %100 + %99 = OpLabel + OpBranch %98 + %100 = OpLabel + OpBranch %87 + %98 = OpLabel + %101 = OpLoad %int %k + %102 = OpIAdd %int %101 %int_1 + OpStore %k %102 + %103 = OpLoad %int %i + %104 = OpIAdd %int %103 %int_1 + OpStore %i %104 + %105 = OpAccessChain %_ptr_Private_int %data %103 + %106 = OpLoad %int %105 + %107 = OpAccessChain %_ptr_Private_int %temp %101 + OpStore %107 %106 OpBranch %88 %88 = OpLabel - OpLoopMerge %89 %90 None - OpBranch %91 - %91 = OpLabel - %92 = OpLoad %int %i - %93 = OpLoad %int %i - %95 = OpLoad %int %mid - %97 = OpSLessThan %bool %92 %int_10 - OpSelectionMerge %98 None - OpBranchConditional %97 %99 %98 - %99 = OpLabel - %100 = OpSLessThanEqual %bool %93 %95 - OpBranch %98 - %98 = OpLabel - %101 = OpPhi %bool %97 %91 %100 %99 - OpSelectionMerge %102 None - OpBranchConditional %101 %103 %104 - %103 = OpLabel - OpBranch %102 - %104 = OpLabel - OpBranch %89 - %102 = OpLabel - %105 = OpLoad %int %k - %106 = OpIAdd %int %105 %int_1 - OpStore %k %106 - %107 = OpLoad %int %i - %108 = OpIAdd %int %107 %int_1 - OpStore %i %108 - %109 = OpAccessChain %_ptr_Private_int %data %107 - %110 = OpLoad %int %109 - %111 = OpAccessChain %_ptr_Private_int %temp %105 - OpStore %111 %110 - OpBranch %90 - %90 = OpLabel - OpBranch %88 - %89 = OpLabel - %113 = OpLoad %int %from - OpStore %i_1 %113 - OpBranch %114 - %114 = OpLabel - OpLoopMerge %115 %116 None - OpBranch %117 - %117 = OpLabel - %118 = OpLoad %int %i_1 - %120 = OpLoad %int %to - %121 = OpSLessThanEqual %bool %118 %120 - OpSelectionMerge %122 None - OpBranchConditional %121 %123 %124 - %123 = OpLabel - OpBranch %122 - %124 = OpLabel - OpBranch %115 - %122 = OpLabel - %125 = OpLoad %int %i_1 + OpBranch %86 + %87 = OpLabel + %109 = OpLoad %int %from + OpStore %i_1 %109 + OpBranch %110 + %110 = OpLabel + OpLoopMerge %111 %112 None + OpBranch %113 + %113 = OpLabel + %114 = OpLoad %int %i_1 + %116 = OpLoad %int %to + %117 = OpSLessThanEqual %bool %114 %116 + OpSelectionMerge %118 None + OpBranchConditional %117 %119 %120 + %119 = OpLabel + OpBranch %118 + %120 = OpLabel + OpBranch %111 + %118 = OpLabel + %121 = OpLoad %int %i_1 + %122 = OpLoad %int %i_1 + %123 = OpAccessChain %_ptr_Private_int %temp %122 + %124 = OpLoad %int %123 + %125 = OpAccessChain %_ptr_Private_int %data %121 + OpStore %125 %124 + OpBranch %112 + %112 = OpLabel %126 = OpLoad %int %i_1 - %127 = OpAccessChain %_ptr_Private_int %temp %126 - %128 = OpLoad %int %127 - %129 = OpAccessChain %_ptr_Private_int %data %125 - OpStore %129 %128 - OpBranch %116 - %116 = OpLabel - %130 = OpLoad %int %i_1 - %131 = OpIAdd %int %130 %int_1 - OpStore %i_1 %131 - OpBranch %114 - %115 = OpLabel + %127 = OpIAdd %int %126 %int_1 + OpStore %i_1 %127 + OpBranch %110 + %111 = OpLabel OpReturn OpFunctionEnd - %main_1 = OpFunction %void None %132 - %134 = OpLabel + %main_1 = OpFunction %void None %128 + %130 = OpLabel %x_85 = OpVariable %_ptr_Function_int Function %32 %x_86 = OpVariable %_ptr_Function_int Function %32 %x_87 = OpVariable %_ptr_Function_int Function %32 @@ -293,364 +281,357 @@ SKIP: FAILED %x_94 = OpVariable %_ptr_Function_int Function %32 %i_3 = OpVariable %_ptr_Function_int Function %32 %j_1 = OpVariable %_ptr_Function_int Function %32 - %grey = OpVariable %_ptr_Function_float Function %149 - %152 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 - %153 = OpLoad %float %152 - %154 = OpConvertFToS %int %153 - OpStore %i_3 %154 - OpBranch %155 - %155 = OpLabel - OpLoopMerge %156 %157 None - OpBranch %158 + %grey = OpVariable %_ptr_Function_float Function %145 + %148 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 + %149 = OpLoad %float %148 + %150 = OpConvertFToS %int %149 + OpStore %i_3 %150 + OpBranch %151 + %151 = OpLabel + OpLoopMerge %152 %153 None + OpBranch %154 + %154 = OpLabel + %155 = OpLoad %int %i_3 + OpSelectionMerge %156 None + OpSwitch %155 %157 9 %158 8 %159 7 %160 6 %161 5 %162 4 %163 3 %164 2 %165 1 %166 0 %167 %158 = OpLabel - %159 = OpLoad %int %i_3 - OpSelectionMerge %160 None - OpSwitch %159 %161 9 %162 8 %163 7 %164 6 %165 5 %166 4 %167 3 %168 2 %169 1 %170 0 %171 - %162 = OpLabel - %172 = OpLoad %int %i_3 - %173 = OpAccessChain %_ptr_Private_int %data %172 - OpStore %173 %int_n5 - OpBranch %160 - %163 = OpLabel - %175 = OpLoad %int %i_3 - %176 = OpAccessChain %_ptr_Private_int %data %175 - OpStore %176 %int_n4 - OpBranch %160 - %164 = OpLabel - %178 = OpLoad %int %i_3 - %179 = OpAccessChain %_ptr_Private_int %data %178 - OpStore %179 %int_n3 - OpBranch %160 - %165 = OpLabel - %181 = OpLoad %int %i_3 - %182 = OpAccessChain %_ptr_Private_int %data %181 - OpStore %182 %int_n2 - OpBranch %160 - %166 = OpLabel - %184 = OpLoad %int %i_3 - %185 = OpAccessChain %_ptr_Private_int %data %184 - OpStore %185 %int_n1 - OpBranch %160 - %167 = OpLabel - %187 = OpLoad %int %i_3 - %188 = OpAccessChain %_ptr_Private_int %data %187 - OpStore %188 %int_0 - OpBranch %160 - %168 = OpLabel - %190 = OpLoad %int %i_3 - %191 = OpAccessChain %_ptr_Private_int %data %190 - OpStore %191 %int_1 - OpBranch %160 - %169 = OpLabel - %192 = OpLoad %int %i_3 - %193 = OpAccessChain %_ptr_Private_int %data %192 - OpStore %193 %int_2 - OpBranch %160 - %170 = OpLabel - %195 = OpLoad %int %i_3 - %196 = OpAccessChain %_ptr_Private_int %data %195 - OpStore %196 %int_3 - OpBranch %160 - %171 = OpLabel - %198 = OpLoad %int %i_3 - %199 = OpAccessChain %_ptr_Private_int %data %198 - OpStore %199 %int_4 - OpBranch %160 - %161 = OpLabel - OpBranch %160 - %160 = OpLabel - %201 = OpLoad %int %i_3 - %202 = OpIAdd %int %201 %int_1 - OpStore %i_3 %202 - OpBranch %157 - %157 = OpLabel - %203 = OpLoad %int %i_3 - %204 = OpSLessThan %bool %203 %int_10 - OpSelectionMerge %205 None - OpBranchConditional %204 %206 %207 - %206 = OpLabel - OpBranch %205 - %207 = OpLabel + %168 = OpLoad %int %i_3 + %169 = OpAccessChain %_ptr_Private_int %data %168 + OpStore %169 %int_n5 + OpBranch %156 + %159 = OpLabel + %171 = OpLoad %int %i_3 + %172 = OpAccessChain %_ptr_Private_int %data %171 + OpStore %172 %int_n4 + OpBranch %156 + %160 = OpLabel + %174 = OpLoad %int %i_3 + %175 = OpAccessChain %_ptr_Private_int %data %174 + OpStore %175 %int_n3 + OpBranch %156 + %161 = OpLabel + %177 = OpLoad %int %i_3 + %178 = OpAccessChain %_ptr_Private_int %data %177 + OpStore %178 %int_n2 + OpBranch %156 + %162 = OpLabel + %180 = OpLoad %int %i_3 + %181 = OpAccessChain %_ptr_Private_int %data %180 + OpStore %181 %int_n1 + OpBranch %156 + %163 = OpLabel + %183 = OpLoad %int %i_3 + %184 = OpAccessChain %_ptr_Private_int %data %183 + OpStore %184 %int_0 + OpBranch %156 + %164 = OpLabel + %186 = OpLoad %int %i_3 + %187 = OpAccessChain %_ptr_Private_int %data %186 + OpStore %187 %int_1 + OpBranch %156 + %165 = OpLabel + %188 = OpLoad %int %i_3 + %189 = OpAccessChain %_ptr_Private_int %data %188 + OpStore %189 %int_2 + OpBranch %156 + %166 = OpLabel + %191 = OpLoad %int %i_3 + %192 = OpAccessChain %_ptr_Private_int %data %191 + OpStore %192 %int_3 + OpBranch %156 + %167 = OpLabel + %194 = OpLoad %int %i_3 + %195 = OpAccessChain %_ptr_Private_int %data %194 + OpStore %195 %int_4 + OpBranch %156 + %157 = OpLabel OpBranch %156 - %205 = OpLabel - OpBranch %155 %156 = OpLabel + %197 = OpLoad %int %i_3 + %198 = OpIAdd %int %197 %int_1 + OpStore %i_3 %198 + OpBranch %153 + %153 = OpLabel + %199 = OpLoad %int %i_3 + %200 = OpSLessThan %bool %199 %int_10 + OpBranchConditional %200 %151 %152 + %152 = OpLabel OpStore %j_1 %int_0 - OpBranch %208 + OpBranch %201 + %201 = OpLabel + OpLoopMerge %202 %203 None + OpBranch %204 + %204 = OpLabel + %205 = OpLoad %int %j_1 + %206 = OpSLessThan %bool %205 %int_10 + OpSelectionMerge %207 None + OpBranchConditional %206 %208 %209 %208 = OpLabel - OpLoopMerge %209 %210 None - OpBranch %211 - %211 = OpLabel - %212 = OpLoad %int %j_1 - %213 = OpSLessThan %bool %212 %int_10 - OpSelectionMerge %214 None - OpBranchConditional %213 %215 %216 - %215 = OpLabel - OpBranch %214 - %216 = OpLabel - OpBranch %209 - %214 = OpLabel - %217 = OpLoad %int %j_1 - %218 = OpLoad %int %j_1 - %219 = OpAccessChain %_ptr_Private_int %data %218 - %220 = OpLoad %int %219 - %221 = OpAccessChain %_ptr_Private_int %temp %217 - OpStore %221 %220 - OpBranch %210 - %210 = OpLabel - %222 = OpLoad %int %j_1 - %223 = OpIAdd %int %222 %int_1 - OpStore %j_1 %223 - OpBranch %208 + OpBranch %207 %209 = OpLabel + OpBranch %202 + %207 = OpLabel + %210 = OpLoad %int %j_1 + %211 = OpLoad %int %j_1 + %212 = OpAccessChain %_ptr_Private_int %data %211 + %213 = OpLoad %int %212 + %214 = OpAccessChain %_ptr_Private_int %temp %210 + OpStore %214 %213 + OpBranch %203 + %203 = OpLabel + %215 = OpLoad %int %j_1 + %216 = OpIAdd %int %215 %int_1 + OpStore %j_1 %216 + OpBranch %201 + %202 = OpLabel OpStore %x_94 %int_0 OpStore %x_93 %int_9 OpStore %x_92 %int_1 - OpBranch %225 - %225 = OpLabel - OpLoopMerge %226 %227 None - OpBranch %228 - %228 = OpLabel - %229 = OpLoad %int %x_92 - %230 = OpLoad %int %x_93 - %231 = OpSLessThanEqual %bool %229 %230 - OpSelectionMerge %232 None - OpBranchConditional %231 %233 %234 - %233 = OpLabel - OpBranch %232 - %234 = OpLabel - OpBranch %226 - %232 = OpLabel - %235 = OpLoad %int %x_94 - OpStore %x_91 %235 - OpBranch %236 - %236 = OpLabel - OpLoopMerge %237 %238 None - OpBranch %239 - %239 = OpLabel - %240 = OpLoad %int %x_91 - %241 = OpLoad %int %x_93 - %242 = OpSLessThan %bool %240 %241 - OpSelectionMerge %243 None - OpBranchConditional %242 %244 %245 - %244 = OpLabel - OpBranch %243 - %245 = OpLabel - OpBranch %237 - %243 = OpLabel - %246 = OpLoad %int %x_91 - OpStore %x_90 %246 - %247 = OpLoad %int %x_91 - %248 = OpLoad %int %x_92 - %249 = OpIAdd %int %247 %248 - %250 = OpISub %int %249 %int_1 - OpStore %x_89 %250 - %251 = OpLoad %int %x_91 - %252 = OpLoad %int %x_92 - %253 = OpLoad %int %x_93 - %256 = OpIMul %int %int_2 %252 - %257 = OpIAdd %int %251 %256 - %258 = OpISub %int %257 %int_1 - %254 = OpExtInst %int %255 SMin %258 %253 - OpStore %x_88 %254 - %259 = OpLoad %int %x_90 - OpStore %x_87 %259 - %260 = OpLoad %int %x_89 - OpStore %x_86 %260 - %261 = OpLoad %int %x_88 - OpStore %x_85 %261 - %262 = OpFunctionCall %void %merge_i1_i1_i1_ %x_87 %x_86 %x_85 - OpBranch %238 - %238 = OpLabel - %266 = OpLoad %int %x_92 - %267 = OpLoad %int %x_91 - %268 = OpIMul %int %int_2 %266 - %269 = OpIAdd %int %267 %268 - OpStore %x_91 %269 - OpBranch %236 - %237 = OpLabel - OpBranch %227 - %227 = OpLabel - %270 = OpLoad %int %x_92 - %271 = OpIMul %int %int_2 %270 - OpStore %x_92 %271 - OpBranch %225 + OpBranch %218 + %218 = OpLabel + OpLoopMerge %219 %220 None + OpBranch %221 + %221 = OpLabel + %222 = OpLoad %int %x_92 + %223 = OpLoad %int %x_93 + %224 = OpSLessThanEqual %bool %222 %223 + OpSelectionMerge %225 None + OpBranchConditional %224 %226 %227 %226 = OpLabel - %274 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %275 = OpLoad %float %274 - %276 = OpConvertFToS %int %275 - %278 = OpSLessThan %bool %276 %int_30 - OpSelectionMerge %279 None - OpBranchConditional %278 %280 %281 - %280 = OpLabel - %282 = OpAccessChain %_ptr_Private_int %data %int_0 - %283 = OpLoad %int %282 - %285 = OpConvertSToF %float %283 - %287 = OpFDiv %float %285 %float_10 - %288 = OpFAdd %float %float_0_5 %287 - OpStore %grey %288 - OpBranch %279 - %281 = OpLabel - %289 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %290 = OpLoad %float %289 - %291 = OpConvertFToS %int %290 - %293 = OpSLessThan %bool %291 %int_60 - OpSelectionMerge %294 None - OpBranchConditional %293 %295 %296 - %295 = OpLabel - %297 = OpAccessChain %_ptr_Private_int %data %int_1 - %298 = OpLoad %int %297 - %299 = OpConvertSToF %float %298 - %300 = OpFDiv %float %299 %float_10 - %301 = OpFAdd %float %float_0_5 %300 - OpStore %grey %301 - OpBranch %294 - %296 = OpLabel - %302 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %303 = OpLoad %float %302 - %304 = OpConvertFToS %int %303 - %306 = OpSLessThan %bool %304 %int_90 - OpSelectionMerge %307 None - OpBranchConditional %306 %308 %309 - %308 = OpLabel - %310 = OpAccessChain %_ptr_Private_int %data %int_2 - %311 = OpLoad %int %310 - %312 = OpConvertSToF %float %311 - %313 = OpFDiv %float %312 %float_10 - %314 = OpFAdd %float %float_0_5 %313 - OpStore %grey %314 - OpBranch %307 - %309 = OpLabel - %315 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %316 = OpLoad %float %315 - %317 = OpConvertFToS %int %316 - %319 = OpSLessThan %bool %317 %int_120 - OpSelectionMerge %320 None - OpBranchConditional %319 %321 %322 - %321 = OpLabel - %323 = OpAccessChain %_ptr_Private_int %data %int_3 - %324 = OpLoad %int %323 - %325 = OpConvertSToF %float %324 - %326 = OpFDiv %float %325 %float_10 - %327 = OpFAdd %float %float_0_5 %326 - OpStore %grey %327 - OpBranch %320 - %322 = OpLabel - %328 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %329 = OpLoad %float %328 - %330 = OpConvertFToS %int %329 - %332 = OpSLessThan %bool %330 %int_150 - OpSelectionMerge %333 None - OpBranchConditional %332 %334 %335 - %334 = OpLabel + OpBranch %225 + %227 = OpLabel + OpBranch %219 + %225 = OpLabel + %228 = OpLoad %int %x_94 + OpStore %x_91 %228 + OpBranch %229 + %229 = OpLabel + OpLoopMerge %230 %231 None + OpBranch %232 + %232 = OpLabel + %233 = OpLoad %int %x_91 + %234 = OpLoad %int %x_93 + %235 = OpSLessThan %bool %233 %234 + OpSelectionMerge %236 None + OpBranchConditional %235 %237 %238 + %237 = OpLabel + OpBranch %236 + %238 = OpLabel + OpBranch %230 + %236 = OpLabel + %239 = OpLoad %int %x_91 + OpStore %x_90 %239 + %240 = OpLoad %int %x_91 + %241 = OpLoad %int %x_92 + %242 = OpIAdd %int %240 %241 + %243 = OpISub %int %242 %int_1 + OpStore %x_89 %243 + %244 = OpLoad %int %x_91 + %245 = OpLoad %int %x_92 + %246 = OpLoad %int %x_93 + %249 = OpIMul %int %int_2 %245 + %250 = OpIAdd %int %244 %249 + %251 = OpISub %int %250 %int_1 + %247 = OpExtInst %int %248 SMin %251 %246 + OpStore %x_88 %247 + %252 = OpLoad %int %x_90 + OpStore %x_87 %252 + %253 = OpLoad %int %x_89 + OpStore %x_86 %253 + %254 = OpLoad %int %x_88 + OpStore %x_85 %254 + %255 = OpFunctionCall %void %merge_i1_i1_i1_ %x_87 %x_86 %x_85 + OpBranch %231 + %231 = OpLabel + %259 = OpLoad %int %x_92 + %260 = OpLoad %int %x_91 + %261 = OpIMul %int %int_2 %259 + %262 = OpIAdd %int %260 %261 + OpStore %x_91 %262 + OpBranch %229 + %230 = OpLabel + OpBranch %220 + %220 = OpLabel + %263 = OpLoad %int %x_92 + %264 = OpIMul %int %int_2 %263 + OpStore %x_92 %264 + OpBranch %218 + %219 = OpLabel + %267 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %268 = OpLoad %float %267 + %269 = OpConvertFToS %int %268 + %271 = OpSLessThan %bool %269 %int_30 + OpSelectionMerge %272 None + OpBranchConditional %271 %273 %274 + %273 = OpLabel + %275 = OpAccessChain %_ptr_Private_int %data %int_0 + %276 = OpLoad %int %275 + %278 = OpConvertSToF %float %276 + %280 = OpFDiv %float %278 %float_10 + %281 = OpFAdd %float %float_0_5 %280 + OpStore %grey %281 + OpBranch %272 + %274 = OpLabel + %282 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %283 = OpLoad %float %282 + %284 = OpConvertFToS %int %283 + %286 = OpSLessThan %bool %284 %int_60 + OpSelectionMerge %287 None + OpBranchConditional %286 %288 %289 + %288 = OpLabel + %290 = OpAccessChain %_ptr_Private_int %data %int_1 + %291 = OpLoad %int %290 + %292 = OpConvertSToF %float %291 + %293 = OpFDiv %float %292 %float_10 + %294 = OpFAdd %float %float_0_5 %293 + OpStore %grey %294 + OpBranch %287 + %289 = OpLabel + %295 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %296 = OpLoad %float %295 + %297 = OpConvertFToS %int %296 + %299 = OpSLessThan %bool %297 %int_90 + OpSelectionMerge %300 None + OpBranchConditional %299 %301 %302 + %301 = OpLabel + %303 = OpAccessChain %_ptr_Private_int %data %int_2 + %304 = OpLoad %int %303 + %305 = OpConvertSToF %float %304 + %306 = OpFDiv %float %305 %float_10 + %307 = OpFAdd %float %float_0_5 %306 + OpStore %grey %307 + OpBranch %300 + %302 = OpLabel + %308 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %309 = OpLoad %float %308 + %310 = OpConvertFToS %int %309 + %312 = OpSLessThan %bool %310 %int_120 + OpSelectionMerge %313 None + OpBranchConditional %312 %314 %315 + %314 = OpLabel + %316 = OpAccessChain %_ptr_Private_int %data %int_3 + %317 = OpLoad %int %316 + %318 = OpConvertSToF %float %317 + %319 = OpFDiv %float %318 %float_10 + %320 = OpFAdd %float %float_0_5 %319 + OpStore %grey %320 + OpBranch %313 + %315 = OpLabel + %321 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %322 = OpLoad %float %321 + %323 = OpConvertFToS %int %322 + %325 = OpSLessThan %bool %323 %int_150 + OpSelectionMerge %326 None + OpBranchConditional %325 %327 %328 + %327 = OpLabel OpKill + %328 = OpLabel + %329 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %330 = OpLoad %float %329 + %331 = OpConvertFToS %int %330 + %333 = OpSLessThan %bool %331 %int_180 + OpSelectionMerge %334 None + OpBranchConditional %333 %335 %336 %335 = OpLabel - %336 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %337 = OpLoad %float %336 - %338 = OpConvertFToS %int %337 - %340 = OpSLessThan %bool %338 %int_180 - OpSelectionMerge %341 None - OpBranchConditional %340 %342 %343 - %342 = OpLabel - %345 = OpAccessChain %_ptr_Private_int %data %int_5 - %346 = OpLoad %int %345 - %347 = OpConvertSToF %float %346 - %348 = OpFDiv %float %347 %float_10 - %349 = OpFAdd %float %float_0_5 %348 - OpStore %grey %349 - OpBranch %341 - %343 = OpLabel - %350 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %351 = OpLoad %float %350 - %352 = OpConvertFToS %int %351 - %354 = OpSLessThan %bool %352 %int_210 - OpSelectionMerge %355 None - OpBranchConditional %354 %356 %357 - %356 = OpLabel - %359 = OpAccessChain %_ptr_Private_int %data %int_6 - %360 = OpLoad %int %359 - %361 = OpConvertSToF %float %360 - %362 = OpFDiv %float %361 %float_10 - %363 = OpFAdd %float %float_0_5 %362 - OpStore %grey %363 - OpBranch %355 - %357 = OpLabel - %364 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %365 = OpLoad %float %364 - %366 = OpConvertFToS %int %365 - %368 = OpSLessThan %bool %366 %int_240 - OpSelectionMerge %369 None - OpBranchConditional %368 %370 %371 - %370 = OpLabel - %373 = OpAccessChain %_ptr_Private_int %data %int_7 - %374 = OpLoad %int %373 - %375 = OpConvertSToF %float %374 - %376 = OpFDiv %float %375 %float_10 - %377 = OpFAdd %float %float_0_5 %376 - OpStore %grey %377 - OpBranch %369 - %371 = OpLabel - %378 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %379 = OpLoad %float %378 - %380 = OpConvertFToS %int %379 - %382 = OpSLessThan %bool %380 %int_270 - OpSelectionMerge %383 None - OpBranchConditional %382 %384 %385 - %384 = OpLabel - %387 = OpAccessChain %_ptr_Private_int %data %int_8 - %388 = OpLoad %int %387 - %389 = OpConvertSToF %float %388 - %390 = OpFDiv %float %389 %float_10 - %391 = OpFAdd %float %float_0_5 %390 - OpStore %grey %391 - OpBranch %383 - %385 = OpLabel + %338 = OpAccessChain %_ptr_Private_int %data %int_5 + %339 = OpLoad %int %338 + %340 = OpConvertSToF %float %339 + %341 = OpFDiv %float %340 %float_10 + %342 = OpFAdd %float %float_0_5 %341 + OpStore %grey %342 + OpBranch %334 + %336 = OpLabel + %343 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %344 = OpLoad %float %343 + %345 = OpConvertFToS %int %344 + %347 = OpSLessThan %bool %345 %int_210 + OpSelectionMerge %348 None + OpBranchConditional %347 %349 %350 + %349 = OpLabel + %352 = OpAccessChain %_ptr_Private_int %data %int_6 + %353 = OpLoad %int %352 + %354 = OpConvertSToF %float %353 + %355 = OpFDiv %float %354 %float_10 + %356 = OpFAdd %float %float_0_5 %355 + OpStore %grey %356 + OpBranch %348 + %350 = OpLabel + %357 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %358 = OpLoad %float %357 + %359 = OpConvertFToS %int %358 + %361 = OpSLessThan %bool %359 %int_240 + OpSelectionMerge %362 None + OpBranchConditional %361 %363 %364 + %363 = OpLabel + %366 = OpAccessChain %_ptr_Private_int %data %int_7 + %367 = OpLoad %int %366 + %368 = OpConvertSToF %float %367 + %369 = OpFDiv %float %368 %float_10 + %370 = OpFAdd %float %float_0_5 %369 + OpStore %grey %370 + OpBranch %362 + %364 = OpLabel + %371 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %372 = OpLoad %float %371 + %373 = OpConvertFToS %int %372 + %375 = OpSLessThan %bool %373 %int_270 + OpSelectionMerge %376 None + OpBranchConditional %375 %377 %378 + %377 = OpLabel + %380 = OpAccessChain %_ptr_Private_int %data %int_8 + %381 = OpLoad %int %380 + %382 = OpConvertSToF %float %381 + %383 = OpFDiv %float %382 %float_10 + %384 = OpFAdd %float %float_0_5 %383 + OpStore %grey %384 + OpBranch %376 + %378 = OpLabel OpKill - %383 = OpLabel - OpBranch %369 - %369 = OpLabel - OpBranch %355 - %355 = OpLabel - OpBranch %341 - %341 = OpLabel - OpBranch %333 - %333 = OpLabel - OpBranch %320 - %320 = OpLabel - OpBranch %307 - %307 = OpLabel - OpBranch %294 - %294 = OpLabel - OpBranch %279 - %279 = OpLabel - %392 = OpLoad %float %grey - %394 = OpCompositeConstruct %v3float %392 %392 %392 - %395 = OpCompositeExtract %float %394 0 - %396 = OpCompositeExtract %float %394 1 - %397 = OpCompositeExtract %float %394 2 - %399 = OpCompositeConstruct %v4float %395 %396 %397 %float_1 - OpStore %x_GLF_color %399 + %376 = OpLabel + OpBranch %362 + %362 = OpLabel + OpBranch %348 + %348 = OpLabel + OpBranch %334 + %334 = OpLabel + OpBranch %326 + %326 = OpLabel + OpBranch %313 + %313 = OpLabel + OpBranch %300 + %300 = OpLabel + OpBranch %287 + %287 = OpLabel + OpBranch %272 + %272 = OpLabel + %385 = OpLoad %float %grey + %387 = OpCompositeConstruct %v3float %385 %385 %385 + %388 = OpCompositeExtract %float %387 0 + %389 = OpCompositeExtract %float %387 1 + %390 = OpCompositeExtract %float %387 2 + %392 = OpCompositeConstruct %v4float %388 %389 %390 %float_1 + OpStore %x_GLF_color %392 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %400 +%tint_symbol_3 = OpFunction %void None %393 %tint_symbol_1 = OpFunctionParameter %main_out - %404 = OpLabel - %405 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %405 + %397 = OpLabel + %398 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %398 OpReturn OpFunctionEnd - %main = OpFunction %void None %132 + %main = OpFunction %void None %128 + %400 = OpLabel + %401 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %401 + %402 = OpFunctionCall %void %main_1 + %404 = OpLoad %v4float %x_GLF_color + %405 = OpCompositeConstruct %main_out %404 + %403 = OpFunctionCall %void %tint_symbol_3 %405 + OpReturn + OpFunctionEnd + %mergeSort_ = OpFunction %void None %128 %407 = OpLabel - %408 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %408 - %409 = OpFunctionCall %void %main_1 - %411 = OpLoad %v4float %x_GLF_color - %412 = OpCompositeConstruct %main_out %411 - %410 = OpFunctionCall %void %tint_symbol_3 %412 - OpReturn - OpFunctionEnd - %mergeSort_ = OpFunction %void None %132 - %414 = OpLabel %low = OpVariable %_ptr_Function_int Function %32 %high = OpVariable %_ptr_Function_int Function %32 %m = OpVariable %_ptr_Function_int Function %32 @@ -664,78 +645,75 @@ SKIP: FAILED OpStore %low %int_0 OpStore %high %int_9 OpStore %m %int_1 - OpBranch %425 - %425 = OpLabel - OpLoopMerge %426 %427 None - OpBranch %428 - %428 = OpLabel - %429 = OpLoad %int %m - %430 = OpLoad %int %high - %431 = OpSLessThanEqual %bool %429 %430 - OpSelectionMerge %432 None - OpBranchConditional %431 %433 %434 - %433 = OpLabel - OpBranch %432 - %434 = OpLabel - OpBranch %426 - %432 = OpLabel - %435 = OpLoad %int %low - OpStore %i_2 %435 - OpBranch %436 - %436 = OpLabel - OpLoopMerge %437 %438 None - OpBranch %439 - %439 = OpLabel - %440 = OpLoad %int %i_2 - %441 = OpLoad %int %high - %442 = OpSLessThan %bool %440 %441 - OpSelectionMerge %443 None - OpBranchConditional %442 %444 %445 - %444 = OpLabel - OpBranch %443 - %445 = OpLabel - OpBranch %437 - %443 = OpLabel - %446 = OpLoad %int %i_2 - OpStore %from_1 %446 - %447 = OpLoad %int %i_2 - %448 = OpLoad %int %m - %449 = OpIAdd %int %447 %448 - %450 = OpISub %int %449 %int_1 - OpStore %mid_1 %450 - %451 = OpLoad %int %i_2 - %452 = OpLoad %int %m - %453 = OpLoad %int %high - %455 = OpIMul %int %int_2 %452 - %456 = OpIAdd %int %451 %455 - %457 = OpISub %int %456 %int_1 - %454 = OpExtInst %int %255 SMin %457 %453 - OpStore %to_1 %454 - %458 = OpLoad %int %from_1 - OpStore %param %458 - %459 = OpLoad %int %mid_1 - OpStore %param_1 %459 - %460 = OpLoad %int %to_1 - OpStore %param_2 %460 - %461 = OpFunctionCall %void %merge_i1_i1_i1_ %param %param_1 %param_2 - OpBranch %438 - %438 = OpLabel - %465 = OpLoad %int %m - %466 = OpLoad %int %i_2 - %467 = OpIMul %int %int_2 %465 - %468 = OpIAdd %int %466 %467 - OpStore %i_2 %468 - OpBranch %436 - %437 = OpLabel - OpBranch %427 - %427 = OpLabel - %469 = OpLoad %int %m - %470 = OpIMul %int %int_2 %469 - OpStore %m %470 - OpBranch %425 + OpBranch %418 + %418 = OpLabel + OpLoopMerge %419 %420 None + OpBranch %421 + %421 = OpLabel + %422 = OpLoad %int %m + %423 = OpLoad %int %high + %424 = OpSLessThanEqual %bool %422 %423 + OpSelectionMerge %425 None + OpBranchConditional %424 %426 %427 %426 = OpLabel + OpBranch %425 + %427 = OpLabel + OpBranch %419 + %425 = OpLabel + %428 = OpLoad %int %low + OpStore %i_2 %428 + OpBranch %429 + %429 = OpLabel + OpLoopMerge %430 %431 None + OpBranch %432 + %432 = OpLabel + %433 = OpLoad %int %i_2 + %434 = OpLoad %int %high + %435 = OpSLessThan %bool %433 %434 + OpSelectionMerge %436 None + OpBranchConditional %435 %437 %438 + %437 = OpLabel + OpBranch %436 + %438 = OpLabel + OpBranch %430 + %436 = OpLabel + %439 = OpLoad %int %i_2 + OpStore %from_1 %439 + %440 = OpLoad %int %i_2 + %441 = OpLoad %int %m + %442 = OpIAdd %int %440 %441 + %443 = OpISub %int %442 %int_1 + OpStore %mid_1 %443 + %444 = OpLoad %int %i_2 + %445 = OpLoad %int %m + %446 = OpLoad %int %high + %448 = OpIMul %int %int_2 %445 + %449 = OpIAdd %int %444 %448 + %450 = OpISub %int %449 %int_1 + %447 = OpExtInst %int %248 SMin %450 %446 + OpStore %to_1 %447 + %451 = OpLoad %int %from_1 + OpStore %param %451 + %452 = OpLoad %int %mid_1 + OpStore %param_1 %452 + %453 = OpLoad %int %to_1 + OpStore %param_2 %453 + %454 = OpFunctionCall %void %merge_i1_i1_i1_ %param %param_1 %param_2 + OpBranch %431 + %431 = OpLabel + %458 = OpLoad %int %m + %459 = OpLoad %int %i_2 + %460 = OpIMul %int %int_2 %458 + %461 = OpIAdd %int %459 %460 + OpStore %i_2 %461 + OpBranch %429 + %430 = OpLabel + OpBranch %420 + %420 = OpLabel + %462 = OpLoad %int %m + %463 = OpIMul %int %int_2 %462 + OpStore %m %463 + OpBranch %418 + %419 = OpLabel OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 157[%157] is not post dominated by the back-edge block 205[%205] - %205 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.wgsl.expected.spvasm index 5cce2a6fa2..a502034ac9 100644 --- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.wgsl.expected.spvasm @@ -1,12 +1,10 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 471 +; Bound: 468 ; Schema: 0 OpCapability Shader - %255 = OpExtInstImport "GLSL.std.450" + %252 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2 OpExecutionMode %main OriginUpperLeft @@ -131,7 +129,7 @@ SKIP: FAILED %v3float = OpTypeVector %float 3 %float_1 = OpConstant %float 1 %main_out = OpTypeStruct %v4float - %400 = OpTypeFunction %void %main_out + %397 = OpTypeFunction %void %main_out %merge_i1_i1_i1_ = OpFunction %void None %23 %from = OpFunctionParameter %_ptr_Function_int %mid = OpFunctionParameter %_ptr_Function_int @@ -366,291 +364,284 @@ SKIP: FAILED %157 = OpLabel %203 = OpLoad %int %i_3 %204 = OpSLessThan %bool %203 %int_10 - OpSelectionMerge %205 None - OpBranchConditional %204 %206 %207 - %206 = OpLabel - OpBranch %205 - %207 = OpLabel - OpBranch %156 - %205 = OpLabel - OpBranch %155 + OpBranchConditional %204 %155 %156 %156 = OpLabel OpStore %j_1 %int_0 + OpBranch %205 + %205 = OpLabel + OpLoopMerge %206 %207 None OpBranch %208 %208 = OpLabel - OpLoopMerge %209 %210 None + %209 = OpLoad %int %j_1 + %210 = OpSLessThan %bool %209 %int_10 + OpSelectionMerge %211 None + OpBranchConditional %210 %212 %213 + %212 = OpLabel OpBranch %211 + %213 = OpLabel + OpBranch %206 %211 = OpLabel - %212 = OpLoad %int %j_1 - %213 = OpSLessThan %bool %212 %int_10 - OpSelectionMerge %214 None - OpBranchConditional %213 %215 %216 - %215 = OpLabel - OpBranch %214 - %216 = OpLabel - OpBranch %209 - %214 = OpLabel - %217 = OpLoad %int %j_1 - %218 = OpLoad %int %j_1 - %219 = OpAccessChain %_ptr_Private_int %data %218 - %220 = OpLoad %int %219 - %221 = OpAccessChain %_ptr_Private_int %temp %217 - OpStore %221 %220 - OpBranch %210 - %210 = OpLabel - %222 = OpLoad %int %j_1 - %223 = OpIAdd %int %222 %int_1 - OpStore %j_1 %223 - OpBranch %208 - %209 = OpLabel + %214 = OpLoad %int %j_1 + %215 = OpLoad %int %j_1 + %216 = OpAccessChain %_ptr_Private_int %data %215 + %217 = OpLoad %int %216 + %218 = OpAccessChain %_ptr_Private_int %temp %214 + OpStore %218 %217 + OpBranch %207 + %207 = OpLabel + %219 = OpLoad %int %j_1 + %220 = OpIAdd %int %219 %int_1 + OpStore %j_1 %220 + OpBranch %205 + %206 = OpLabel OpStore %x_94 %int_0 OpStore %x_93 %int_9 OpStore %x_92 %int_1 + OpBranch %222 + %222 = OpLabel + OpLoopMerge %223 %224 None OpBranch %225 %225 = OpLabel - OpLoopMerge %226 %227 None - OpBranch %228 - %228 = OpLabel - %229 = OpLoad %int %x_92 - %230 = OpLoad %int %x_93 - %231 = OpSLessThanEqual %bool %229 %230 - OpSelectionMerge %232 None - OpBranchConditional %231 %233 %234 + %226 = OpLoad %int %x_92 + %227 = OpLoad %int %x_93 + %228 = OpSLessThanEqual %bool %226 %227 + OpSelectionMerge %229 None + OpBranchConditional %228 %230 %231 + %230 = OpLabel + OpBranch %229 + %231 = OpLabel + OpBranch %223 + %229 = OpLabel + %232 = OpLoad %int %x_94 + OpStore %x_91 %232 + OpBranch %233 %233 = OpLabel - OpBranch %232 - %234 = OpLabel - OpBranch %226 - %232 = OpLabel - %235 = OpLoad %int %x_94 - OpStore %x_91 %235 + OpLoopMerge %234 %235 None OpBranch %236 %236 = OpLabel - OpLoopMerge %237 %238 None - OpBranch %239 - %239 = OpLabel - %240 = OpLoad %int %x_91 - %241 = OpLoad %int %x_93 - %242 = OpSLessThan %bool %240 %241 - OpSelectionMerge %243 None - OpBranchConditional %242 %244 %245 - %244 = OpLabel - OpBranch %243 - %245 = OpLabel - OpBranch %237 - %243 = OpLabel - %246 = OpLoad %int %x_91 - OpStore %x_90 %246 - %247 = OpLoad %int %x_91 - %248 = OpLoad %int %x_92 - %249 = OpIAdd %int %247 %248 - %250 = OpISub %int %249 %int_1 - OpStore %x_89 %250 - %251 = OpLoad %int %x_91 - %252 = OpLoad %int %x_92 - %253 = OpLoad %int %x_93 - %256 = OpIMul %int %int_2 %252 - %257 = OpIAdd %int %251 %256 - %258 = OpISub %int %257 %int_1 - %254 = OpExtInst %int %255 SMin %258 %253 - OpStore %x_88 %254 - %259 = OpLoad %int %x_90 - OpStore %x_87 %259 - %260 = OpLoad %int %x_89 - OpStore %x_86 %260 - %261 = OpLoad %int %x_88 - OpStore %x_85 %261 - %262 = OpFunctionCall %void %merge_i1_i1_i1_ %x_87 %x_86 %x_85 - OpBranch %238 - %238 = OpLabel - %266 = OpLoad %int %x_92 - %267 = OpLoad %int %x_91 - %268 = OpIMul %int %int_2 %266 - %269 = OpIAdd %int %267 %268 - OpStore %x_91 %269 - OpBranch %236 - %237 = OpLabel - OpBranch %227 - %227 = OpLabel - %270 = OpLoad %int %x_92 - %271 = OpIMul %int %int_2 %270 - OpStore %x_92 %271 - OpBranch %225 - %226 = OpLabel - %274 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %275 = OpLoad %float %274 - %276 = OpConvertFToS %int %275 - %278 = OpSLessThan %bool %276 %int_30 - OpSelectionMerge %279 None - OpBranchConditional %278 %280 %281 - %280 = OpLabel - %282 = OpAccessChain %_ptr_Private_int %data %int_0 - %283 = OpLoad %int %282 - %285 = OpConvertSToF %float %283 - %287 = OpFDiv %float %285 %float_10 - %288 = OpFAdd %float %float_0_5 %287 - OpStore %grey %288 - OpBranch %279 - %281 = OpLabel - %289 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %290 = OpLoad %float %289 - %291 = OpConvertFToS %int %290 - %293 = OpSLessThan %bool %291 %int_60 - OpSelectionMerge %294 None - OpBranchConditional %293 %295 %296 - %295 = OpLabel - %297 = OpAccessChain %_ptr_Private_int %data %int_1 - %298 = OpLoad %int %297 - %299 = OpConvertSToF %float %298 - %300 = OpFDiv %float %299 %float_10 - %301 = OpFAdd %float %float_0_5 %300 - OpStore %grey %301 - OpBranch %294 - %296 = OpLabel - %302 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %303 = OpLoad %float %302 - %304 = OpConvertFToS %int %303 - %306 = OpSLessThan %bool %304 %int_90 - OpSelectionMerge %307 None - OpBranchConditional %306 %308 %309 - %308 = OpLabel - %310 = OpAccessChain %_ptr_Private_int %data %int_2 - %311 = OpLoad %int %310 - %312 = OpConvertSToF %float %311 - %313 = OpFDiv %float %312 %float_10 - %314 = OpFAdd %float %float_0_5 %313 - OpStore %grey %314 - OpBranch %307 - %309 = OpLabel - %315 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %316 = OpLoad %float %315 - %317 = OpConvertFToS %int %316 - %319 = OpSLessThan %bool %317 %int_120 - OpSelectionMerge %320 None - OpBranchConditional %319 %321 %322 - %321 = OpLabel - %323 = OpAccessChain %_ptr_Private_int %data %int_3 - %324 = OpLoad %int %323 - %325 = OpConvertSToF %float %324 - %326 = OpFDiv %float %325 %float_10 - %327 = OpFAdd %float %float_0_5 %326 - OpStore %grey %327 - OpBranch %320 - %322 = OpLabel - %328 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %329 = OpLoad %float %328 - %330 = OpConvertFToS %int %329 - %332 = OpSLessThan %bool %330 %int_150 - OpSelectionMerge %333 None - OpBranchConditional %332 %334 %335 - %334 = OpLabel + %237 = OpLoad %int %x_91 + %238 = OpLoad %int %x_93 + %239 = OpSLessThan %bool %237 %238 + OpSelectionMerge %240 None + OpBranchConditional %239 %241 %242 + %241 = OpLabel + OpBranch %240 + %242 = OpLabel + OpBranch %234 + %240 = OpLabel + %243 = OpLoad %int %x_91 + OpStore %x_90 %243 + %244 = OpLoad %int %x_91 + %245 = OpLoad %int %x_92 + %246 = OpIAdd %int %244 %245 + %247 = OpISub %int %246 %int_1 + OpStore %x_89 %247 + %248 = OpLoad %int %x_91 + %249 = OpLoad %int %x_92 + %250 = OpLoad %int %x_93 + %253 = OpIMul %int %int_2 %249 + %254 = OpIAdd %int %248 %253 + %255 = OpISub %int %254 %int_1 + %251 = OpExtInst %int %252 SMin %255 %250 + OpStore %x_88 %251 + %256 = OpLoad %int %x_90 + OpStore %x_87 %256 + %257 = OpLoad %int %x_89 + OpStore %x_86 %257 + %258 = OpLoad %int %x_88 + OpStore %x_85 %258 + %259 = OpFunctionCall %void %merge_i1_i1_i1_ %x_87 %x_86 %x_85 + OpBranch %235 + %235 = OpLabel + %263 = OpLoad %int %x_92 + %264 = OpLoad %int %x_91 + %265 = OpIMul %int %int_2 %263 + %266 = OpIAdd %int %264 %265 + OpStore %x_91 %266 + OpBranch %233 + %234 = OpLabel + OpBranch %224 + %224 = OpLabel + %267 = OpLoad %int %x_92 + %268 = OpIMul %int %int_2 %267 + OpStore %x_92 %268 + OpBranch %222 + %223 = OpLabel + %271 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %272 = OpLoad %float %271 + %273 = OpConvertFToS %int %272 + %275 = OpSLessThan %bool %273 %int_30 + OpSelectionMerge %276 None + OpBranchConditional %275 %277 %278 + %277 = OpLabel + %279 = OpAccessChain %_ptr_Private_int %data %int_0 + %280 = OpLoad %int %279 + %282 = OpConvertSToF %float %280 + %284 = OpFDiv %float %282 %float_10 + %285 = OpFAdd %float %float_0_5 %284 + OpStore %grey %285 + OpBranch %276 + %278 = OpLabel + %286 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %287 = OpLoad %float %286 + %288 = OpConvertFToS %int %287 + %290 = OpSLessThan %bool %288 %int_60 + OpSelectionMerge %291 None + OpBranchConditional %290 %292 %293 + %292 = OpLabel + %294 = OpAccessChain %_ptr_Private_int %data %int_1 + %295 = OpLoad %int %294 + %296 = OpConvertSToF %float %295 + %297 = OpFDiv %float %296 %float_10 + %298 = OpFAdd %float %float_0_5 %297 + OpStore %grey %298 + OpBranch %291 + %293 = OpLabel + %299 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %300 = OpLoad %float %299 + %301 = OpConvertFToS %int %300 + %303 = OpSLessThan %bool %301 %int_90 + OpSelectionMerge %304 None + OpBranchConditional %303 %305 %306 + %305 = OpLabel + %307 = OpAccessChain %_ptr_Private_int %data %int_2 + %308 = OpLoad %int %307 + %309 = OpConvertSToF %float %308 + %310 = OpFDiv %float %309 %float_10 + %311 = OpFAdd %float %float_0_5 %310 + OpStore %grey %311 + OpBranch %304 + %306 = OpLabel + %312 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %313 = OpLoad %float %312 + %314 = OpConvertFToS %int %313 + %316 = OpSLessThan %bool %314 %int_120 + OpSelectionMerge %317 None + OpBranchConditional %316 %318 %319 + %318 = OpLabel + %320 = OpAccessChain %_ptr_Private_int %data %int_3 + %321 = OpLoad %int %320 + %322 = OpConvertSToF %float %321 + %323 = OpFDiv %float %322 %float_10 + %324 = OpFAdd %float %float_0_5 %323 + OpStore %grey %324 + OpBranch %317 + %319 = OpLabel + %325 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %326 = OpLoad %float %325 + %327 = OpConvertFToS %int %326 + %329 = OpSLessThan %bool %327 %int_150 + OpSelectionMerge %330 None + OpBranchConditional %329 %331 %332 + %331 = OpLabel OpKill - %335 = OpLabel - %336 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %337 = OpLoad %float %336 - %338 = OpConvertFToS %int %337 - %340 = OpSLessThan %bool %338 %int_180 - OpSelectionMerge %341 None - OpBranchConditional %340 %342 %343 - %342 = OpLabel - %345 = OpAccessChain %_ptr_Private_int %data %int_5 - %346 = OpLoad %int %345 - %347 = OpConvertSToF %float %346 - %348 = OpFDiv %float %347 %float_10 - %349 = OpFAdd %float %float_0_5 %348 - OpStore %grey %349 - OpBranch %341 - %343 = OpLabel - %350 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %351 = OpLoad %float %350 - %352 = OpConvertFToS %int %351 - %354 = OpSLessThan %bool %352 %int_210 - OpSelectionMerge %355 None - OpBranchConditional %354 %356 %357 - %356 = OpLabel - %359 = OpAccessChain %_ptr_Private_int %data %int_6 - %360 = OpLoad %int %359 - %361 = OpConvertSToF %float %360 - %362 = OpFDiv %float %361 %float_10 - %363 = OpFAdd %float %float_0_5 %362 - OpStore %grey %363 - OpBranch %355 - %357 = OpLabel - %364 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %365 = OpLoad %float %364 - %366 = OpConvertFToS %int %365 - %368 = OpSLessThan %bool %366 %int_240 - OpSelectionMerge %369 None - OpBranchConditional %368 %370 %371 - %370 = OpLabel - %373 = OpAccessChain %_ptr_Private_int %data %int_7 - %374 = OpLoad %int %373 - %375 = OpConvertSToF %float %374 - %376 = OpFDiv %float %375 %float_10 - %377 = OpFAdd %float %float_0_5 %376 - OpStore %grey %377 - OpBranch %369 - %371 = OpLabel - %378 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %379 = OpLoad %float %378 - %380 = OpConvertFToS %int %379 - %382 = OpSLessThan %bool %380 %int_270 - OpSelectionMerge %383 None - OpBranchConditional %382 %384 %385 - %384 = OpLabel - %387 = OpAccessChain %_ptr_Private_int %data %int_8 - %388 = OpLoad %int %387 - %389 = OpConvertSToF %float %388 - %390 = OpFDiv %float %389 %float_10 - %391 = OpFAdd %float %float_0_5 %390 - OpStore %grey %391 - OpBranch %383 - %385 = OpLabel + %332 = OpLabel + %333 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %334 = OpLoad %float %333 + %335 = OpConvertFToS %int %334 + %337 = OpSLessThan %bool %335 %int_180 + OpSelectionMerge %338 None + OpBranchConditional %337 %339 %340 + %339 = OpLabel + %342 = OpAccessChain %_ptr_Private_int %data %int_5 + %343 = OpLoad %int %342 + %344 = OpConvertSToF %float %343 + %345 = OpFDiv %float %344 %float_10 + %346 = OpFAdd %float %float_0_5 %345 + OpStore %grey %346 + OpBranch %338 + %340 = OpLabel + %347 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %348 = OpLoad %float %347 + %349 = OpConvertFToS %int %348 + %351 = OpSLessThan %bool %349 %int_210 + OpSelectionMerge %352 None + OpBranchConditional %351 %353 %354 + %353 = OpLabel + %356 = OpAccessChain %_ptr_Private_int %data %int_6 + %357 = OpLoad %int %356 + %358 = OpConvertSToF %float %357 + %359 = OpFDiv %float %358 %float_10 + %360 = OpFAdd %float %float_0_5 %359 + OpStore %grey %360 + OpBranch %352 + %354 = OpLabel + %361 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %362 = OpLoad %float %361 + %363 = OpConvertFToS %int %362 + %365 = OpSLessThan %bool %363 %int_240 + OpSelectionMerge %366 None + OpBranchConditional %365 %367 %368 + %367 = OpLabel + %370 = OpAccessChain %_ptr_Private_int %data %int_7 + %371 = OpLoad %int %370 + %372 = OpConvertSToF %float %371 + %373 = OpFDiv %float %372 %float_10 + %374 = OpFAdd %float %float_0_5 %373 + OpStore %grey %374 + OpBranch %366 + %368 = OpLabel + %375 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %376 = OpLoad %float %375 + %377 = OpConvertFToS %int %376 + %379 = OpSLessThan %bool %377 %int_270 + OpSelectionMerge %380 None + OpBranchConditional %379 %381 %382 + %381 = OpLabel + %384 = OpAccessChain %_ptr_Private_int %data %int_8 + %385 = OpLoad %int %384 + %386 = OpConvertSToF %float %385 + %387 = OpFDiv %float %386 %float_10 + %388 = OpFAdd %float %float_0_5 %387 + OpStore %grey %388 + OpBranch %380 + %382 = OpLabel OpKill - %383 = OpLabel - OpBranch %369 - %369 = OpLabel - OpBranch %355 - %355 = OpLabel - OpBranch %341 - %341 = OpLabel - OpBranch %333 - %333 = OpLabel - OpBranch %320 - %320 = OpLabel - OpBranch %307 - %307 = OpLabel - OpBranch %294 - %294 = OpLabel - OpBranch %279 - %279 = OpLabel - %392 = OpLoad %float %grey - %394 = OpCompositeConstruct %v3float %392 %392 %392 - %395 = OpCompositeExtract %float %394 0 - %396 = OpCompositeExtract %float %394 1 - %397 = OpCompositeExtract %float %394 2 - %399 = OpCompositeConstruct %v4float %395 %396 %397 %float_1 - OpStore %x_GLF_color %399 + %380 = OpLabel + OpBranch %366 + %366 = OpLabel + OpBranch %352 + %352 = OpLabel + OpBranch %338 + %338 = OpLabel + OpBranch %330 + %330 = OpLabel + OpBranch %317 + %317 = OpLabel + OpBranch %304 + %304 = OpLabel + OpBranch %291 + %291 = OpLabel + OpBranch %276 + %276 = OpLabel + %389 = OpLoad %float %grey + %391 = OpCompositeConstruct %v3float %389 %389 %389 + %392 = OpCompositeExtract %float %391 0 + %393 = OpCompositeExtract %float %391 1 + %394 = OpCompositeExtract %float %391 2 + %396 = OpCompositeConstruct %v4float %392 %393 %394 %float_1 + OpStore %x_GLF_color %396 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %400 +%tint_symbol_3 = OpFunction %void None %397 %tint_symbol_1 = OpFunctionParameter %main_out - %404 = OpLabel - %405 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %405 + %401 = OpLabel + %402 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %402 OpReturn OpFunctionEnd %main = OpFunction %void None %132 - %407 = OpLabel - %408 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %408 - %409 = OpFunctionCall %void %main_1 - %411 = OpLoad %v4float %x_GLF_color - %412 = OpCompositeConstruct %main_out %411 - %410 = OpFunctionCall %void %tint_symbol_3 %412 + %404 = OpLabel + %405 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %405 + %406 = OpFunctionCall %void %main_1 + %408 = OpLoad %v4float %x_GLF_color + %409 = OpCompositeConstruct %main_out %408 + %407 = OpFunctionCall %void %tint_symbol_3 %409 OpReturn OpFunctionEnd %mergeSort_ = OpFunction %void None %132 - %414 = OpLabel + %411 = OpLabel %low = OpVariable %_ptr_Function_int Function %32 %high = OpVariable %_ptr_Function_int Function %32 %m = OpVariable %_ptr_Function_int Function %32 @@ -664,78 +655,75 @@ SKIP: FAILED OpStore %low %int_0 OpStore %high %int_9 OpStore %m %int_1 + OpBranch %422 + %422 = OpLabel + OpLoopMerge %423 %424 None OpBranch %425 %425 = OpLabel - OpLoopMerge %426 %427 None - OpBranch %428 - %428 = OpLabel - %429 = OpLoad %int %m - %430 = OpLoad %int %high - %431 = OpSLessThanEqual %bool %429 %430 - OpSelectionMerge %432 None - OpBranchConditional %431 %433 %434 + %426 = OpLoad %int %m + %427 = OpLoad %int %high + %428 = OpSLessThanEqual %bool %426 %427 + OpSelectionMerge %429 None + OpBranchConditional %428 %430 %431 + %430 = OpLabel + OpBranch %429 + %431 = OpLabel + OpBranch %423 + %429 = OpLabel + %432 = OpLoad %int %low + OpStore %i_2 %432 + OpBranch %433 %433 = OpLabel - OpBranch %432 - %434 = OpLabel - OpBranch %426 - %432 = OpLabel - %435 = OpLoad %int %low - OpStore %i_2 %435 + OpLoopMerge %434 %435 None OpBranch %436 %436 = OpLabel - OpLoopMerge %437 %438 None - OpBranch %439 - %439 = OpLabel - %440 = OpLoad %int %i_2 - %441 = OpLoad %int %high - %442 = OpSLessThan %bool %440 %441 - OpSelectionMerge %443 None - OpBranchConditional %442 %444 %445 - %444 = OpLabel - OpBranch %443 - %445 = OpLabel - OpBranch %437 - %443 = OpLabel - %446 = OpLoad %int %i_2 - OpStore %from_1 %446 - %447 = OpLoad %int %i_2 - %448 = OpLoad %int %m - %449 = OpIAdd %int %447 %448 - %450 = OpISub %int %449 %int_1 - OpStore %mid_1 %450 - %451 = OpLoad %int %i_2 - %452 = OpLoad %int %m - %453 = OpLoad %int %high - %455 = OpIMul %int %int_2 %452 - %456 = OpIAdd %int %451 %455 - %457 = OpISub %int %456 %int_1 - %454 = OpExtInst %int %255 SMin %457 %453 - OpStore %to_1 %454 - %458 = OpLoad %int %from_1 - OpStore %param %458 - %459 = OpLoad %int %mid_1 - OpStore %param_1 %459 - %460 = OpLoad %int %to_1 - OpStore %param_2 %460 - %461 = OpFunctionCall %void %merge_i1_i1_i1_ %param %param_1 %param_2 - OpBranch %438 - %438 = OpLabel - %465 = OpLoad %int %m - %466 = OpLoad %int %i_2 - %467 = OpIMul %int %int_2 %465 - %468 = OpIAdd %int %466 %467 - OpStore %i_2 %468 - OpBranch %436 - %437 = OpLabel - OpBranch %427 - %427 = OpLabel - %469 = OpLoad %int %m - %470 = OpIMul %int %int_2 %469 - OpStore %m %470 - OpBranch %425 - %426 = OpLabel + %437 = OpLoad %int %i_2 + %438 = OpLoad %int %high + %439 = OpSLessThan %bool %437 %438 + OpSelectionMerge %440 None + OpBranchConditional %439 %441 %442 + %441 = OpLabel + OpBranch %440 + %442 = OpLabel + OpBranch %434 + %440 = OpLabel + %443 = OpLoad %int %i_2 + OpStore %from_1 %443 + %444 = OpLoad %int %i_2 + %445 = OpLoad %int %m + %446 = OpIAdd %int %444 %445 + %447 = OpISub %int %446 %int_1 + OpStore %mid_1 %447 + %448 = OpLoad %int %i_2 + %449 = OpLoad %int %m + %450 = OpLoad %int %high + %452 = OpIMul %int %int_2 %449 + %453 = OpIAdd %int %448 %452 + %454 = OpISub %int %453 %int_1 + %451 = OpExtInst %int %252 SMin %454 %450 + OpStore %to_1 %451 + %455 = OpLoad %int %from_1 + OpStore %param %455 + %456 = OpLoad %int %mid_1 + OpStore %param_1 %456 + %457 = OpLoad %int %to_1 + OpStore %param_2 %457 + %458 = OpFunctionCall %void %merge_i1_i1_i1_ %param %param_1 %param_2 + OpBranch %435 + %435 = OpLabel + %462 = OpLoad %int %m + %463 = OpLoad %int %i_2 + %464 = OpIMul %int %int_2 %462 + %465 = OpIAdd %int %463 %464 + OpStore %i_2 %465 + OpBranch %433 + %434 = OpLabel + OpBranch %424 + %424 = OpLabel + %466 = OpLoad %int %m + %467 = OpIMul %int %int_2 %466 + OpStore %m %467 + OpBranch %422 + %423 = OpLabel OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 157[%157] is not post dominated by the back-edge block 205[%205] - %205 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.spvasm index 6248b33ed0..238e1fc19f 100644 --- a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.spvasm @@ -1,12 +1,10 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 463 +; Bound: 456 ; Schema: 0 OpCapability Shader - %174 = OpExtInstImport "GLSL.std.450" + %170 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2 OpExecutionMode %main OriginUpperLeft @@ -94,7 +92,7 @@ SKIP: FAILED %bool = OpTypeBool %_ptr_Private_int = OpTypePointer Private %int %int_10 = OpConstant %int 10 - %132 = OpTypeFunction %int %_ptr_Function_int %_ptr_Function_int + %128 = OpTypeFunction %int %_ptr_Function_int %_ptr_Function_int %uint_0 = OpConstant %uint 0 %_ptr_Private_float = OpTypePointer Private %float %float_0 = OpConstant %float 0 @@ -102,10 +100,10 @@ SKIP: FAILED %int_0 = OpConstant %int 0 %int_4 = OpConstant %int 4 %int_2 = OpConstant %int 2 - %180 = OpTypeFunction %void + %176 = OpTypeFunction %void %int_9 = OpConstant %int 9 %_ptr_Function_float = OpTypePointer Function %float - %251 = OpConstantNull %float + %247 = OpConstantNull %float %_ptr_Uniform_float = OpTypePointer Uniform %float %int_n5 = OpConstant %int -5 %int_n4 = OpConstant %int -4 @@ -132,7 +130,7 @@ SKIP: FAILED %v3float = OpTypeVector %float 3 %float_1 = OpConstant %float 1 %main_out = OpTypeStruct %v4float - %450 = OpTypeFunction %void %main_out + %443 = OpTypeFunction %void %main_out %merge_i1_i1_i1_ = OpFunction %void None %23 %from = OpFunctionParameter %_ptr_Function_int %mid = OpFunctionParameter %_ptr_Function_int @@ -159,180 +157,170 @@ SKIP: FAILED %51 = OpLoad %int %j %53 = OpLoad %int %to %54 = OpSLessThanEqual %bool %48 %50 - OpSelectionMerge %56 None - OpBranchConditional %54 %57 %56 - %57 = OpLabel - %58 = OpSLessThanEqual %bool %51 %53 - OpBranch %56 - %56 = OpLabel - %59 = OpPhi %bool %54 %47 %58 %57 - OpSelectionMerge %60 None - OpBranchConditional %59 %61 %62 - %61 = OpLabel - OpBranch %60 - %62 = OpLabel - OpBranch %45 + %56 = OpSLessThanEqual %bool %51 %53 + %57 = OpLogicalAnd %bool %54 %56 + OpSelectionMerge %58 None + OpBranchConditional %57 %59 %60 + %59 = OpLabel + OpBranch %58 %60 = OpLabel - %63 = OpLoad %int %i - %65 = OpAccessChain %_ptr_Private_int %data %63 - %66 = OpLoad %int %65 - %67 = OpLoad %int %j - %68 = OpAccessChain %_ptr_Private_int %data %67 - %69 = OpLoad %int %68 - %70 = OpSLessThan %bool %66 %69 - OpSelectionMerge %71 None - OpBranchConditional %70 %72 %73 - %72 = OpLabel - %74 = OpLoad %int %k + OpBranch %45 + %58 = OpLabel + %61 = OpLoad %int %i + %63 = OpAccessChain %_ptr_Private_int %data %61 + %64 = OpLoad %int %63 + %65 = OpLoad %int %j + %66 = OpAccessChain %_ptr_Private_int %data %65 + %67 = OpLoad %int %66 + %68 = OpSLessThan %bool %64 %67 + OpSelectionMerge %69 None + OpBranchConditional %68 %70 %71 + %70 = OpLabel + %72 = OpLoad %int %k + %73 = OpIAdd %int %72 %int_1 + OpStore %k %73 + %74 = OpLoad %int %i %75 = OpIAdd %int %74 %int_1 - OpStore %k %75 - %76 = OpLoad %int %i - %77 = OpIAdd %int %76 %int_1 - OpStore %i %77 - %78 = OpAccessChain %_ptr_Private_int %data %76 - %79 = OpLoad %int %78 - %80 = OpAccessChain %_ptr_Private_int %temp %74 - OpStore %80 %79 - OpBranch %71 - %73 = OpLabel - %81 = OpLoad %int %k - %82 = OpIAdd %int %81 %int_1 - OpStore %k %82 - %83 = OpLoad %int %j - %84 = OpIAdd %int %83 %int_1 - OpStore %j %84 - %85 = OpAccessChain %_ptr_Private_int %data %83 - %86 = OpLoad %int %85 - %87 = OpAccessChain %_ptr_Private_int %temp %81 - OpStore %87 %86 - OpBranch %71 + OpStore %i %75 + %76 = OpAccessChain %_ptr_Private_int %data %74 + %77 = OpLoad %int %76 + %78 = OpAccessChain %_ptr_Private_int %temp %72 + OpStore %78 %77 + OpBranch %69 %71 = OpLabel + %79 = OpLoad %int %k + %80 = OpIAdd %int %79 %int_1 + OpStore %k %80 + %81 = OpLoad %int %j + %82 = OpIAdd %int %81 %int_1 + OpStore %j %82 + %83 = OpAccessChain %_ptr_Private_int %data %81 + %84 = OpLoad %int %83 + %85 = OpAccessChain %_ptr_Private_int %temp %79 + OpStore %85 %84 + OpBranch %69 + %69 = OpLabel OpBranch %46 %46 = OpLabel OpBranch %44 %45 = OpLabel + OpBranch %86 + %86 = OpLabel + OpLoopMerge %87 %88 None + OpBranch %89 + %89 = OpLabel + %90 = OpLoad %int %i + %91 = OpLoad %int %i + %93 = OpLoad %int %mid + %95 = OpSLessThan %bool %90 %int_10 + %96 = OpSLessThanEqual %bool %91 %93 + %97 = OpLogicalAnd %bool %95 %96 + OpSelectionMerge %98 None + OpBranchConditional %97 %99 %100 + %99 = OpLabel + OpBranch %98 + %100 = OpLabel + OpBranch %87 + %98 = OpLabel + %101 = OpLoad %int %k + %102 = OpIAdd %int %101 %int_1 + OpStore %k %102 + %103 = OpLoad %int %i + %104 = OpIAdd %int %103 %int_1 + OpStore %i %104 + %105 = OpAccessChain %_ptr_Private_int %data %103 + %106 = OpLoad %int %105 + %107 = OpAccessChain %_ptr_Private_int %temp %101 + OpStore %107 %106 OpBranch %88 %88 = OpLabel - OpLoopMerge %89 %90 None - OpBranch %91 - %91 = OpLabel - %92 = OpLoad %int %i - %93 = OpLoad %int %i - %95 = OpLoad %int %mid - %97 = OpSLessThan %bool %92 %int_10 - OpSelectionMerge %98 None - OpBranchConditional %97 %99 %98 - %99 = OpLabel - %100 = OpSLessThanEqual %bool %93 %95 - OpBranch %98 - %98 = OpLabel - %101 = OpPhi %bool %97 %91 %100 %99 - OpSelectionMerge %102 None - OpBranchConditional %101 %103 %104 - %103 = OpLabel - OpBranch %102 - %104 = OpLabel - OpBranch %89 - %102 = OpLabel - %105 = OpLoad %int %k - %106 = OpIAdd %int %105 %int_1 - OpStore %k %106 - %107 = OpLoad %int %i - %108 = OpIAdd %int %107 %int_1 - OpStore %i %108 - %109 = OpAccessChain %_ptr_Private_int %data %107 - %110 = OpLoad %int %109 - %111 = OpAccessChain %_ptr_Private_int %temp %105 - OpStore %111 %110 - OpBranch %90 - %90 = OpLabel - OpBranch %88 - %89 = OpLabel - %113 = OpLoad %int %from - OpStore %i_1 %113 - OpBranch %114 - %114 = OpLabel - OpLoopMerge %115 %116 None - OpBranch %117 - %117 = OpLabel - %118 = OpLoad %int %i_1 - %120 = OpLoad %int %to - %121 = OpSLessThanEqual %bool %118 %120 - OpSelectionMerge %122 None - OpBranchConditional %121 %123 %124 - %123 = OpLabel - OpBranch %122 - %124 = OpLabel - OpBranch %115 - %122 = OpLabel - %125 = OpLoad %int %i_1 + OpBranch %86 + %87 = OpLabel + %109 = OpLoad %int %from + OpStore %i_1 %109 + OpBranch %110 + %110 = OpLabel + OpLoopMerge %111 %112 None + OpBranch %113 + %113 = OpLabel + %114 = OpLoad %int %i_1 + %116 = OpLoad %int %to + %117 = OpSLessThanEqual %bool %114 %116 + OpSelectionMerge %118 None + OpBranchConditional %117 %119 %120 + %119 = OpLabel + OpBranch %118 + %120 = OpLabel + OpBranch %111 + %118 = OpLabel + %121 = OpLoad %int %i_1 + %122 = OpLoad %int %i_1 + %123 = OpAccessChain %_ptr_Private_int %temp %122 + %124 = OpLoad %int %123 + %125 = OpAccessChain %_ptr_Private_int %data %121 + OpStore %125 %124 + OpBranch %112 + %112 = OpLabel %126 = OpLoad %int %i_1 - %127 = OpAccessChain %_ptr_Private_int %temp %126 - %128 = OpLoad %int %127 - %129 = OpAccessChain %_ptr_Private_int %data %125 - OpStore %129 %128 - OpBranch %116 - %116 = OpLabel - %130 = OpLoad %int %i_1 - %131 = OpIAdd %int %130 %int_1 - OpStore %i_1 %131 - OpBranch %114 - %115 = OpLabel + %127 = OpIAdd %int %126 %int_1 + OpStore %i_1 %127 + OpBranch %110 + %111 = OpLabel OpReturn OpFunctionEnd -%func_i1_i1_ = OpFunction %int None %132 +%func_i1_i1_ = OpFunction %int None %128 %m = OpFunctionParameter %_ptr_Function_int %high = OpFunctionParameter %_ptr_Function_int - %136 = OpLabel + %132 = OpLabel %x = OpVariable %_ptr_Function_int Function %32 %x_335 = OpVariable %_ptr_Function_int Function %32 %x_336 = OpVariable %_ptr_Function_int Function %32 - %142 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0 - %143 = OpLoad %float %142 - %145 = OpFOrdGreaterThanEqual %bool %143 %float_0 + %138 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0 + %139 = OpLoad %float %138 + %141 = OpFOrdGreaterThanEqual %bool %139 %float_0 + OpSelectionMerge %142 None + OpBranchConditional %141 %143 %144 + %143 = OpLabel OpSelectionMerge %146 None - OpBranchConditional %145 %147 %148 + OpBranchConditional %false %147 %148 %147 = OpLabel - OpSelectionMerge %150 None - OpBranchConditional %false %151 %152 - %151 = OpLabel - %154 = OpLoad %int %high - %155 = OpBitcast %uint %int_0 - %157 = OpShiftLeftLogical %int %154 %155 - OpStore %x_336 %157 - OpBranch %150 - %152 = OpLabel - OpStore %x_336 %int_4 - OpBranch %150 - %150 = OpLabel - %159 = OpLoad %int %x_336 - %160 = OpBitcast %uint %159 - %161 = OpShiftLeftLogical %int %int_1 %160 - OpStore %x_335 %161 + %150 = OpLoad %int %high + %151 = OpBitcast %uint %int_0 + %153 = OpShiftLeftLogical %int %150 %151 + OpStore %x_336 %153 OpBranch %146 %148 = OpLabel - OpStore %x_335 %int_1 + OpStore %x_336 %int_4 OpBranch %146 %146 = OpLabel - %162 = OpLoad %int %x_335 - OpStore %x %162 - %163 = OpLoad %int %x - %164 = OpBitcast %uint %int_4 - %165 = OpShiftRightArithmetic %int %163 %164 - OpStore %x %165 + %155 = OpLoad %int %x_336 + %156 = OpBitcast %uint %155 + %157 = OpShiftLeftLogical %int %int_1 %156 + OpStore %x_335 %157 + OpBranch %142 + %144 = OpLabel + OpStore %x_335 %int_1 + OpBranch %142 + %142 = OpLabel + %158 = OpLoad %int %x_335 + OpStore %x %158 + %159 = OpLoad %int %x + %160 = OpBitcast %uint %int_4 + %161 = OpShiftRightArithmetic %int %159 %160 + OpStore %x %161 + %163 = OpLoad %int %m + %165 = OpLoad %int %m %167 = OpLoad %int %m - %169 = OpLoad %int %m - %171 = OpLoad %int %m - %172 = OpLoad %int %x - %176 = OpIMul %int %int_2 %167 - %177 = OpIMul %int %int_2 %169 - %178 = OpIMul %int %int_2 %171 - %179 = OpSDiv %int %178 %172 - %173 = OpExtInst %int %174 SClamp %176 %177 %179 - OpReturnValue %173 + %168 = OpLoad %int %x + %172 = OpIMul %int %int_2 %163 + %173 = OpIMul %int %int_2 %165 + %174 = OpIMul %int %int_2 %167 + %175 = OpSDiv %int %174 %168 + %169 = OpExtInst %int %170 SClamp %172 %173 %175 + OpReturnValue %169 OpFunctionEnd - %mergeSort_ = OpFunction %void None %180 - %182 = OpLabel + %mergeSort_ = OpFunction %void None %176 + %178 = OpLabel %low = OpVariable %_ptr_Function_int Function %32 %high_1 = OpVariable %_ptr_Function_int Function %32 %m_1 = OpVariable %_ptr_Function_int Function %32 @@ -348,369 +336,359 @@ SKIP: FAILED OpStore %low %int_0 OpStore %high_1 %int_9 OpStore %m_1 %int_1 - OpBranch %196 - %196 = OpLabel - OpLoopMerge %197 %198 None + OpBranch %192 + %192 = OpLabel + OpLoopMerge %193 %194 None + OpBranch %195 + %195 = OpLabel + %196 = OpLoad %int %m_1 + %197 = OpLoad %int %high_1 + %198 = OpSLessThanEqual %bool %196 %197 + OpSelectionMerge %199 None + OpBranchConditional %198 %200 %201 + %200 = OpLabel OpBranch %199 + %201 = OpLabel + OpBranch %193 %199 = OpLabel - %200 = OpLoad %int %m_1 - %201 = OpLoad %int %high_1 - %202 = OpSLessThanEqual %bool %200 %201 - OpSelectionMerge %203 None - OpBranchConditional %202 %204 %205 - %204 = OpLabel + %202 = OpLoad %int %low + OpStore %i_2 %202 OpBranch %203 - %205 = OpLabel - OpBranch %197 %203 = OpLabel - %206 = OpLoad %int %low - OpStore %i_2 %206 - OpBranch %207 - %207 = OpLabel - OpLoopMerge %208 %209 None + OpLoopMerge %204 %205 None + OpBranch %206 + %206 = OpLabel + %207 = OpLoad %int %i_2 + %208 = OpLoad %int %high_1 + %209 = OpSLessThan %bool %207 %208 + OpSelectionMerge %210 None + OpBranchConditional %209 %211 %212 + %211 = OpLabel OpBranch %210 + %212 = OpLabel + OpBranch %204 %210 = OpLabel - %211 = OpLoad %int %i_2 - %212 = OpLoad %int %high_1 - %213 = OpSLessThan %bool %211 %212 - OpSelectionMerge %214 None - OpBranchConditional %213 %215 %216 - %215 = OpLabel - OpBranch %214 - %216 = OpLabel - OpBranch %208 - %214 = OpLabel - %217 = OpLoad %int %i_2 - OpStore %from_1 %217 + %213 = OpLoad %int %i_2 + OpStore %from_1 %213 + %214 = OpLoad %int %i_2 + %215 = OpLoad %int %m_1 + %216 = OpIAdd %int %214 %215 + %217 = OpISub %int %216 %int_1 + OpStore %mid_1 %217 %218 = OpLoad %int %i_2 %219 = OpLoad %int %m_1 - %220 = OpIAdd %int %218 %219 - %221 = OpISub %int %220 %int_1 - OpStore %mid_1 %221 - %222 = OpLoad %int %i_2 - %223 = OpLoad %int %m_1 - %224 = OpLoad %int %high_1 - %226 = OpIMul %int %int_2 %223 - %227 = OpIAdd %int %222 %226 - %228 = OpISub %int %227 %int_1 - %225 = OpExtInst %int %174 SMin %228 %224 - OpStore %to_1 %225 - %229 = OpLoad %int %from_1 - OpStore %param %229 - %230 = OpLoad %int %mid_1 - OpStore %param_1 %230 - %231 = OpLoad %int %to_1 - OpStore %param_2 %231 - %232 = OpFunctionCall %void %merge_i1_i1_i1_ %param %param_1 %param_2 - OpBranch %209 - %209 = OpLabel - %236 = OpLoad %int %m_1 - OpStore %param_3 %236 - %237 = OpLoad %int %high_1 - OpStore %param_4 %237 - %238 = OpFunctionCall %int %func_i1_i1_ %param_3 %param_4 - %241 = OpLoad %int %i_2 - %242 = OpIAdd %int %241 %238 - OpStore %i_2 %242 - OpBranch %207 - %208 = OpLabel - OpBranch %198 - %198 = OpLabel - %243 = OpLoad %int %m_1 - %244 = OpIMul %int %int_2 %243 - OpStore %m_1 %244 - OpBranch %196 - %197 = OpLabel + %220 = OpLoad %int %high_1 + %222 = OpIMul %int %int_2 %219 + %223 = OpIAdd %int %218 %222 + %224 = OpISub %int %223 %int_1 + %221 = OpExtInst %int %170 SMin %224 %220 + OpStore %to_1 %221 + %225 = OpLoad %int %from_1 + OpStore %param %225 + %226 = OpLoad %int %mid_1 + OpStore %param_1 %226 + %227 = OpLoad %int %to_1 + OpStore %param_2 %227 + %228 = OpFunctionCall %void %merge_i1_i1_i1_ %param %param_1 %param_2 + OpBranch %205 + %205 = OpLabel + %232 = OpLoad %int %m_1 + OpStore %param_3 %232 + %233 = OpLoad %int %high_1 + OpStore %param_4 %233 + %234 = OpFunctionCall %int %func_i1_i1_ %param_3 %param_4 + %237 = OpLoad %int %i_2 + %238 = OpIAdd %int %237 %234 + OpStore %i_2 %238 + OpBranch %203 + %204 = OpLabel + OpBranch %194 + %194 = OpLabel + %239 = OpLoad %int %m_1 + %240 = OpIMul %int %int_2 %239 + OpStore %m_1 %240 + OpBranch %192 + %193 = OpLabel OpReturn OpFunctionEnd - %main_1 = OpFunction %void None %180 - %246 = OpLabel + %main_1 = OpFunction %void None %176 + %242 = OpLabel %i_3 = OpVariable %_ptr_Function_int Function %32 %j_1 = OpVariable %_ptr_Function_int Function %32 - %grey = OpVariable %_ptr_Function_float Function %251 - %253 = OpAccessChain %_ptr_Uniform_float %x_34 %uint_0 %uint_0 - %254 = OpLoad %float %253 - %255 = OpConvertFToS %int %254 - OpStore %i_3 %255 - OpBranch %256 - %256 = OpLabel - OpLoopMerge %257 %258 None - OpBranch %259 + %grey = OpVariable %_ptr_Function_float Function %247 + %249 = OpAccessChain %_ptr_Uniform_float %x_34 %uint_0 %uint_0 + %250 = OpLoad %float %249 + %251 = OpConvertFToS %int %250 + OpStore %i_3 %251 + OpBranch %252 + %252 = OpLabel + OpLoopMerge %253 %254 None + OpBranch %255 + %255 = OpLabel + %256 = OpLoad %int %i_3 + OpSelectionMerge %257 None + OpSwitch %256 %258 9 %259 8 %260 7 %261 6 %262 5 %263 4 %264 3 %265 2 %266 1 %267 0 %268 %259 = OpLabel - %260 = OpLoad %int %i_3 - OpSelectionMerge %261 None - OpSwitch %260 %262 9 %263 8 %264 7 %265 6 %266 5 %267 4 %268 3 %269 2 %270 1 %271 0 %272 + %269 = OpLoad %int %i_3 + %270 = OpAccessChain %_ptr_Private_int %data %269 + OpStore %270 %int_n5 + OpBranch %257 + %260 = OpLabel + %272 = OpLoad %int %i_3 + %273 = OpAccessChain %_ptr_Private_int %data %272 + OpStore %273 %int_n4 + OpBranch %257 + %261 = OpLabel + %275 = OpLoad %int %i_3 + %276 = OpAccessChain %_ptr_Private_int %data %275 + OpStore %276 %int_n3 + OpBranch %257 + %262 = OpLabel + %278 = OpLoad %int %i_3 + %279 = OpAccessChain %_ptr_Private_int %data %278 + OpStore %279 %int_n2 + OpBranch %257 %263 = OpLabel - %273 = OpLoad %int %i_3 - %274 = OpAccessChain %_ptr_Private_int %data %273 - OpStore %274 %int_n5 - OpBranch %261 + %281 = OpLoad %int %i_3 + %282 = OpAccessChain %_ptr_Private_int %data %281 + OpStore %282 %int_n1 + OpBranch %257 %264 = OpLabel - %276 = OpLoad %int %i_3 - %277 = OpAccessChain %_ptr_Private_int %data %276 - OpStore %277 %int_n4 - OpBranch %261 + %284 = OpLoad %int %i_3 + %285 = OpAccessChain %_ptr_Private_int %data %284 + OpStore %285 %int_0 + OpBranch %257 %265 = OpLabel - %279 = OpLoad %int %i_3 - %280 = OpAccessChain %_ptr_Private_int %data %279 - OpStore %280 %int_n3 - OpBranch %261 + %286 = OpLoad %int %i_3 + %287 = OpAccessChain %_ptr_Private_int %data %286 + OpStore %287 %int_1 + OpBranch %257 %266 = OpLabel - %282 = OpLoad %int %i_3 - %283 = OpAccessChain %_ptr_Private_int %data %282 - OpStore %283 %int_n2 - OpBranch %261 - %267 = OpLabel - %285 = OpLoad %int %i_3 - %286 = OpAccessChain %_ptr_Private_int %data %285 - OpStore %286 %int_n1 - OpBranch %261 - %268 = OpLabel %288 = OpLoad %int %i_3 %289 = OpAccessChain %_ptr_Private_int %data %288 - OpStore %289 %int_0 - OpBranch %261 - %269 = OpLabel + OpStore %289 %int_2 + OpBranch %257 + %267 = OpLabel %290 = OpLoad %int %i_3 %291 = OpAccessChain %_ptr_Private_int %data %290 - OpStore %291 %int_1 - OpBranch %261 - %270 = OpLabel - %292 = OpLoad %int %i_3 - %293 = OpAccessChain %_ptr_Private_int %data %292 - OpStore %293 %int_2 - OpBranch %261 - %271 = OpLabel - %294 = OpLoad %int %i_3 - %295 = OpAccessChain %_ptr_Private_int %data %294 - OpStore %295 %int_3 - OpBranch %261 - %272 = OpLabel - %297 = OpLoad %int %i_3 - %298 = OpAccessChain %_ptr_Private_int %data %297 - OpStore %298 %int_4 - OpBranch %261 - %262 = OpLabel - OpBranch %261 - %261 = OpLabel - %299 = OpLoad %int %i_3 - %300 = OpIAdd %int %299 %int_1 - OpStore %i_3 %300 - OpBranch %258 - %258 = OpLabel - %301 = OpLoad %int %i_3 - %302 = OpSLessThan %bool %301 %int_10 - OpSelectionMerge %303 None - OpBranchConditional %302 %304 %305 - %304 = OpLabel - OpBranch %303 - %305 = OpLabel + OpStore %291 %int_3 + OpBranch %257 + %268 = OpLabel + %293 = OpLoad %int %i_3 + %294 = OpAccessChain %_ptr_Private_int %data %293 + OpStore %294 %int_4 + OpBranch %257 + %258 = OpLabel OpBranch %257 - %303 = OpLabel - OpBranch %256 %257 = OpLabel + %295 = OpLoad %int %i_3 + %296 = OpIAdd %int %295 %int_1 + OpStore %i_3 %296 + OpBranch %254 + %254 = OpLabel + %297 = OpLoad %int %i_3 + %298 = OpSLessThan %bool %297 %int_10 + OpBranchConditional %298 %252 %253 + %253 = OpLabel OpStore %j_1 %int_0 - OpBranch %306 + OpBranch %299 + %299 = OpLabel + OpLoopMerge %300 %301 None + OpBranch %302 + %302 = OpLabel + %303 = OpLoad %int %j_1 + %304 = OpSLessThan %bool %303 %int_10 + OpSelectionMerge %305 None + OpBranchConditional %304 %306 %307 %306 = OpLabel - OpLoopMerge %307 %308 None - OpBranch %309 - %309 = OpLabel - %310 = OpLoad %int %j_1 - %311 = OpSLessThan %bool %310 %int_10 - OpSelectionMerge %312 None - OpBranchConditional %311 %313 %314 - %313 = OpLabel - OpBranch %312 - %314 = OpLabel - OpBranch %307 - %312 = OpLabel - %315 = OpLoad %int %j_1 - %316 = OpLoad %int %j_1 - %317 = OpAccessChain %_ptr_Private_int %data %316 - %318 = OpLoad %int %317 - %319 = OpAccessChain %_ptr_Private_int %temp %315 - OpStore %319 %318 - OpBranch %308 - %308 = OpLabel - %320 = OpLoad %int %j_1 - %321 = OpIAdd %int %320 %int_1 - OpStore %j_1 %321 - OpBranch %306 + OpBranch %305 %307 = OpLabel - %322 = OpFunctionCall %void %mergeSort_ - %324 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %325 = OpLoad %float %324 - %326 = OpConvertFToS %int %325 - %328 = OpSLessThan %bool %326 %int_30 - OpSelectionMerge %329 None - OpBranchConditional %328 %330 %331 - %330 = OpLabel - %332 = OpAccessChain %_ptr_Private_int %data %int_0 - %333 = OpLoad %int %332 - %335 = OpConvertSToF %float %333 - %337 = OpFDiv %float %335 %float_10 - %338 = OpFAdd %float %float_0_5 %337 - OpStore %grey %338 - OpBranch %329 - %331 = OpLabel - %339 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %340 = OpLoad %float %339 - %341 = OpConvertFToS %int %340 - %343 = OpSLessThan %bool %341 %int_60 - OpSelectionMerge %344 None - OpBranchConditional %343 %345 %346 - %345 = OpLabel - %347 = OpAccessChain %_ptr_Private_int %data %int_1 - %348 = OpLoad %int %347 - %349 = OpConvertSToF %float %348 - %350 = OpFDiv %float %349 %float_10 - %351 = OpFAdd %float %float_0_5 %350 - OpStore %grey %351 - OpBranch %344 - %346 = OpLabel - %352 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %353 = OpLoad %float %352 - %354 = OpConvertFToS %int %353 - %356 = OpSLessThan %bool %354 %int_90 - OpSelectionMerge %357 None - OpBranchConditional %356 %358 %359 - %358 = OpLabel - %360 = OpAccessChain %_ptr_Private_int %data %int_2 - %361 = OpLoad %int %360 - %362 = OpConvertSToF %float %361 - %363 = OpFDiv %float %362 %float_10 - %364 = OpFAdd %float %float_0_5 %363 - OpStore %grey %364 - OpBranch %357 - %359 = OpLabel - %365 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %366 = OpLoad %float %365 - %367 = OpConvertFToS %int %366 - %369 = OpSLessThan %bool %367 %int_120 - OpSelectionMerge %370 None - OpBranchConditional %369 %371 %372 - %371 = OpLabel - %373 = OpAccessChain %_ptr_Private_int %data %int_3 - %374 = OpLoad %int %373 - %375 = OpConvertSToF %float %374 - %376 = OpFDiv %float %375 %float_10 - %377 = OpFAdd %float %float_0_5 %376 - OpStore %grey %377 - OpBranch %370 - %372 = OpLabel - %378 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %379 = OpLoad %float %378 - %380 = OpConvertFToS %int %379 - %382 = OpSLessThan %bool %380 %int_150 - OpSelectionMerge %383 None - OpBranchConditional %382 %384 %385 - %384 = OpLabel + OpBranch %300 + %305 = OpLabel + %308 = OpLoad %int %j_1 + %309 = OpLoad %int %j_1 + %310 = OpAccessChain %_ptr_Private_int %data %309 + %311 = OpLoad %int %310 + %312 = OpAccessChain %_ptr_Private_int %temp %308 + OpStore %312 %311 + OpBranch %301 + %301 = OpLabel + %313 = OpLoad %int %j_1 + %314 = OpIAdd %int %313 %int_1 + OpStore %j_1 %314 + OpBranch %299 + %300 = OpLabel + %315 = OpFunctionCall %void %mergeSort_ + %317 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %318 = OpLoad %float %317 + %319 = OpConvertFToS %int %318 + %321 = OpSLessThan %bool %319 %int_30 + OpSelectionMerge %322 None + OpBranchConditional %321 %323 %324 + %323 = OpLabel + %325 = OpAccessChain %_ptr_Private_int %data %int_0 + %326 = OpLoad %int %325 + %328 = OpConvertSToF %float %326 + %330 = OpFDiv %float %328 %float_10 + %331 = OpFAdd %float %float_0_5 %330 + OpStore %grey %331 + OpBranch %322 + %324 = OpLabel + %332 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %333 = OpLoad %float %332 + %334 = OpConvertFToS %int %333 + %336 = OpSLessThan %bool %334 %int_60 + OpSelectionMerge %337 None + OpBranchConditional %336 %338 %339 + %338 = OpLabel + %340 = OpAccessChain %_ptr_Private_int %data %int_1 + %341 = OpLoad %int %340 + %342 = OpConvertSToF %float %341 + %343 = OpFDiv %float %342 %float_10 + %344 = OpFAdd %float %float_0_5 %343 + OpStore %grey %344 + OpBranch %337 + %339 = OpLabel + %345 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %346 = OpLoad %float %345 + %347 = OpConvertFToS %int %346 + %349 = OpSLessThan %bool %347 %int_90 + OpSelectionMerge %350 None + OpBranchConditional %349 %351 %352 + %351 = OpLabel + %353 = OpAccessChain %_ptr_Private_int %data %int_2 + %354 = OpLoad %int %353 + %355 = OpConvertSToF %float %354 + %356 = OpFDiv %float %355 %float_10 + %357 = OpFAdd %float %float_0_5 %356 + OpStore %grey %357 + OpBranch %350 + %352 = OpLabel + %358 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %359 = OpLoad %float %358 + %360 = OpConvertFToS %int %359 + %362 = OpSLessThan %bool %360 %int_120 + OpSelectionMerge %363 None + OpBranchConditional %362 %364 %365 + %364 = OpLabel + %366 = OpAccessChain %_ptr_Private_int %data %int_3 + %367 = OpLoad %int %366 + %368 = OpConvertSToF %float %367 + %369 = OpFDiv %float %368 %float_10 + %370 = OpFAdd %float %float_0_5 %369 + OpStore %grey %370 + OpBranch %363 + %365 = OpLabel + %371 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %372 = OpLoad %float %371 + %373 = OpConvertFToS %int %372 + %375 = OpSLessThan %bool %373 %int_150 + OpSelectionMerge %376 None + OpBranchConditional %375 %377 %378 + %377 = OpLabel OpKill + %378 = OpLabel + %379 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %380 = OpLoad %float %379 + %381 = OpConvertFToS %int %380 + %383 = OpSLessThan %bool %381 %int_180 + OpSelectionMerge %384 None + OpBranchConditional %383 %385 %386 %385 = OpLabel - %386 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %387 = OpLoad %float %386 - %388 = OpConvertFToS %int %387 - %390 = OpSLessThan %bool %388 %int_180 - OpSelectionMerge %391 None - OpBranchConditional %390 %392 %393 - %392 = OpLabel - %395 = OpAccessChain %_ptr_Private_int %data %int_5 - %396 = OpLoad %int %395 - %397 = OpConvertSToF %float %396 - %398 = OpFDiv %float %397 %float_10 - %399 = OpFAdd %float %float_0_5 %398 - OpStore %grey %399 - OpBranch %391 - %393 = OpLabel - %400 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %401 = OpLoad %float %400 - %402 = OpConvertFToS %int %401 - %404 = OpSLessThan %bool %402 %int_210 - OpSelectionMerge %405 None - OpBranchConditional %404 %406 %407 - %406 = OpLabel - %409 = OpAccessChain %_ptr_Private_int %data %int_6 - %410 = OpLoad %int %409 - %411 = OpConvertSToF %float %410 - %412 = OpFDiv %float %411 %float_10 - %413 = OpFAdd %float %float_0_5 %412 - OpStore %grey %413 - OpBranch %405 - %407 = OpLabel - %414 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %415 = OpLoad %float %414 - %416 = OpConvertFToS %int %415 - %418 = OpSLessThan %bool %416 %int_240 - OpSelectionMerge %419 None - OpBranchConditional %418 %420 %421 - %420 = OpLabel - %423 = OpAccessChain %_ptr_Private_int %data %int_7 - %424 = OpLoad %int %423 - %425 = OpConvertSToF %float %424 - %426 = OpFDiv %float %425 %float_10 - %427 = OpFAdd %float %float_0_5 %426 - OpStore %grey %427 - OpBranch %419 - %421 = OpLabel - %428 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %429 = OpLoad %float %428 - %430 = OpConvertFToS %int %429 - %432 = OpSLessThan %bool %430 %int_270 - OpSelectionMerge %433 None - OpBranchConditional %432 %434 %435 - %434 = OpLabel - %437 = OpAccessChain %_ptr_Private_int %data %int_8 - %438 = OpLoad %int %437 - %439 = OpConvertSToF %float %438 - %440 = OpFDiv %float %439 %float_10 - %441 = OpFAdd %float %float_0_5 %440 - OpStore %grey %441 - OpBranch %433 - %435 = OpLabel + %388 = OpAccessChain %_ptr_Private_int %data %int_5 + %389 = OpLoad %int %388 + %390 = OpConvertSToF %float %389 + %391 = OpFDiv %float %390 %float_10 + %392 = OpFAdd %float %float_0_5 %391 + OpStore %grey %392 + OpBranch %384 + %386 = OpLabel + %393 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %394 = OpLoad %float %393 + %395 = OpConvertFToS %int %394 + %397 = OpSLessThan %bool %395 %int_210 + OpSelectionMerge %398 None + OpBranchConditional %397 %399 %400 + %399 = OpLabel + %402 = OpAccessChain %_ptr_Private_int %data %int_6 + %403 = OpLoad %int %402 + %404 = OpConvertSToF %float %403 + %405 = OpFDiv %float %404 %float_10 + %406 = OpFAdd %float %float_0_5 %405 + OpStore %grey %406 + OpBranch %398 + %400 = OpLabel + %407 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %408 = OpLoad %float %407 + %409 = OpConvertFToS %int %408 + %411 = OpSLessThan %bool %409 %int_240 + OpSelectionMerge %412 None + OpBranchConditional %411 %413 %414 + %413 = OpLabel + %416 = OpAccessChain %_ptr_Private_int %data %int_7 + %417 = OpLoad %int %416 + %418 = OpConvertSToF %float %417 + %419 = OpFDiv %float %418 %float_10 + %420 = OpFAdd %float %float_0_5 %419 + OpStore %grey %420 + OpBranch %412 + %414 = OpLabel + %421 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %422 = OpLoad %float %421 + %423 = OpConvertFToS %int %422 + %425 = OpSLessThan %bool %423 %int_270 + OpSelectionMerge %426 None + OpBranchConditional %425 %427 %428 + %427 = OpLabel + %430 = OpAccessChain %_ptr_Private_int %data %int_8 + %431 = OpLoad %int %430 + %432 = OpConvertSToF %float %431 + %433 = OpFDiv %float %432 %float_10 + %434 = OpFAdd %float %float_0_5 %433 + OpStore %grey %434 + OpBranch %426 + %428 = OpLabel OpKill - %433 = OpLabel - OpBranch %419 - %419 = OpLabel - OpBranch %405 - %405 = OpLabel - OpBranch %391 - %391 = OpLabel - OpBranch %383 - %383 = OpLabel - OpBranch %370 - %370 = OpLabel - OpBranch %357 - %357 = OpLabel - OpBranch %344 - %344 = OpLabel - OpBranch %329 - %329 = OpLabel - %442 = OpLoad %float %grey - %444 = OpCompositeConstruct %v3float %442 %442 %442 - %445 = OpCompositeExtract %float %444 0 - %446 = OpCompositeExtract %float %444 1 - %447 = OpCompositeExtract %float %444 2 - %449 = OpCompositeConstruct %v4float %445 %446 %447 %float_1 - OpStore %x_GLF_color %449 + %426 = OpLabel + OpBranch %412 + %412 = OpLabel + OpBranch %398 + %398 = OpLabel + OpBranch %384 + %384 = OpLabel + OpBranch %376 + %376 = OpLabel + OpBranch %363 + %363 = OpLabel + OpBranch %350 + %350 = OpLabel + OpBranch %337 + %337 = OpLabel + OpBranch %322 + %322 = OpLabel + %435 = OpLoad %float %grey + %437 = OpCompositeConstruct %v3float %435 %435 %435 + %438 = OpCompositeExtract %float %437 0 + %439 = OpCompositeExtract %float %437 1 + %440 = OpCompositeExtract %float %437 2 + %442 = OpCompositeConstruct %v4float %438 %439 %440 %float_1 + OpStore %x_GLF_color %442 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %450 +%tint_symbol_3 = OpFunction %void None %443 %tint_symbol_1 = OpFunctionParameter %main_out - %454 = OpLabel - %455 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %455 + %447 = OpLabel + %448 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %448 OpReturn OpFunctionEnd - %main = OpFunction %void None %180 - %457 = OpLabel - %458 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %458 - %459 = OpFunctionCall %void %main_1 - %461 = OpLoad %v4float %x_GLF_color - %462 = OpCompositeConstruct %main_out %461 - %460 = OpFunctionCall %void %tint_symbol_3 %462 + %main = OpFunction %void None %176 + %450 = OpLabel + %451 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %451 + %452 = OpFunctionCall %void %main_1 + %454 = OpLoad %v4float %x_GLF_color + %455 = OpCompositeConstruct %main_out %454 + %453 = OpFunctionCall %void %tint_symbol_3 %455 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 258[%258] is not post dominated by the back-edge block 303[%303] - %303 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.wgsl.expected.spvasm index 6248b33ed0..023eb518a5 100644 --- a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 463 +; Bound: 460 ; Schema: 0 OpCapability Shader %174 = OpExtInstImport "GLSL.std.450" @@ -132,7 +130,7 @@ SKIP: FAILED %v3float = OpTypeVector %float 3 %float_1 = OpConstant %float 1 %main_out = OpTypeStruct %v4float - %450 = OpTypeFunction %void %main_out + %447 = OpTypeFunction %void %main_out %merge_i1_i1_i1_ = OpFunction %void None %23 %from = OpFunctionParameter %_ptr_Function_int %mid = OpFunctionParameter %_ptr_Function_int @@ -500,217 +498,207 @@ SKIP: FAILED %258 = OpLabel %301 = OpLoad %int %i_3 %302 = OpSLessThan %bool %301 %int_10 - OpSelectionMerge %303 None - OpBranchConditional %302 %304 %305 - %304 = OpLabel - OpBranch %303 - %305 = OpLabel - OpBranch %257 - %303 = OpLabel - OpBranch %256 + OpBranchConditional %302 %256 %257 %257 = OpLabel OpStore %j_1 %int_0 + OpBranch %303 + %303 = OpLabel + OpLoopMerge %304 %305 None OpBranch %306 %306 = OpLabel - OpLoopMerge %307 %308 None + %307 = OpLoad %int %j_1 + %308 = OpSLessThan %bool %307 %int_10 + OpSelectionMerge %309 None + OpBranchConditional %308 %310 %311 + %310 = OpLabel OpBranch %309 + %311 = OpLabel + OpBranch %304 %309 = OpLabel - %310 = OpLoad %int %j_1 - %311 = OpSLessThan %bool %310 %int_10 - OpSelectionMerge %312 None - OpBranchConditional %311 %313 %314 - %313 = OpLabel - OpBranch %312 - %314 = OpLabel - OpBranch %307 - %312 = OpLabel - %315 = OpLoad %int %j_1 - %316 = OpLoad %int %j_1 - %317 = OpAccessChain %_ptr_Private_int %data %316 - %318 = OpLoad %int %317 - %319 = OpAccessChain %_ptr_Private_int %temp %315 - OpStore %319 %318 - OpBranch %308 - %308 = OpLabel - %320 = OpLoad %int %j_1 - %321 = OpIAdd %int %320 %int_1 - OpStore %j_1 %321 - OpBranch %306 - %307 = OpLabel - %322 = OpFunctionCall %void %mergeSort_ - %324 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %325 = OpLoad %float %324 - %326 = OpConvertFToS %int %325 - %328 = OpSLessThan %bool %326 %int_30 - OpSelectionMerge %329 None - OpBranchConditional %328 %330 %331 - %330 = OpLabel - %332 = OpAccessChain %_ptr_Private_int %data %int_0 - %333 = OpLoad %int %332 - %335 = OpConvertSToF %float %333 - %337 = OpFDiv %float %335 %float_10 - %338 = OpFAdd %float %float_0_5 %337 - OpStore %grey %338 - OpBranch %329 - %331 = OpLabel - %339 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %340 = OpLoad %float %339 - %341 = OpConvertFToS %int %340 - %343 = OpSLessThan %bool %341 %int_60 - OpSelectionMerge %344 None - OpBranchConditional %343 %345 %346 - %345 = OpLabel - %347 = OpAccessChain %_ptr_Private_int %data %int_1 - %348 = OpLoad %int %347 - %349 = OpConvertSToF %float %348 - %350 = OpFDiv %float %349 %float_10 - %351 = OpFAdd %float %float_0_5 %350 - OpStore %grey %351 - OpBranch %344 - %346 = OpLabel - %352 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %353 = OpLoad %float %352 - %354 = OpConvertFToS %int %353 - %356 = OpSLessThan %bool %354 %int_90 - OpSelectionMerge %357 None - OpBranchConditional %356 %358 %359 - %358 = OpLabel - %360 = OpAccessChain %_ptr_Private_int %data %int_2 - %361 = OpLoad %int %360 - %362 = OpConvertSToF %float %361 - %363 = OpFDiv %float %362 %float_10 - %364 = OpFAdd %float %float_0_5 %363 - OpStore %grey %364 - OpBranch %357 - %359 = OpLabel - %365 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %366 = OpLoad %float %365 - %367 = OpConvertFToS %int %366 - %369 = OpSLessThan %bool %367 %int_120 - OpSelectionMerge %370 None - OpBranchConditional %369 %371 %372 - %371 = OpLabel - %373 = OpAccessChain %_ptr_Private_int %data %int_3 - %374 = OpLoad %int %373 - %375 = OpConvertSToF %float %374 - %376 = OpFDiv %float %375 %float_10 - %377 = OpFAdd %float %float_0_5 %376 - OpStore %grey %377 - OpBranch %370 - %372 = OpLabel - %378 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %379 = OpLoad %float %378 - %380 = OpConvertFToS %int %379 - %382 = OpSLessThan %bool %380 %int_150 - OpSelectionMerge %383 None - OpBranchConditional %382 %384 %385 - %384 = OpLabel + %312 = OpLoad %int %j_1 + %313 = OpLoad %int %j_1 + %314 = OpAccessChain %_ptr_Private_int %data %313 + %315 = OpLoad %int %314 + %316 = OpAccessChain %_ptr_Private_int %temp %312 + OpStore %316 %315 + OpBranch %305 + %305 = OpLabel + %317 = OpLoad %int %j_1 + %318 = OpIAdd %int %317 %int_1 + OpStore %j_1 %318 + OpBranch %303 + %304 = OpLabel + %319 = OpFunctionCall %void %mergeSort_ + %321 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %322 = OpLoad %float %321 + %323 = OpConvertFToS %int %322 + %325 = OpSLessThan %bool %323 %int_30 + OpSelectionMerge %326 None + OpBranchConditional %325 %327 %328 + %327 = OpLabel + %329 = OpAccessChain %_ptr_Private_int %data %int_0 + %330 = OpLoad %int %329 + %332 = OpConvertSToF %float %330 + %334 = OpFDiv %float %332 %float_10 + %335 = OpFAdd %float %float_0_5 %334 + OpStore %grey %335 + OpBranch %326 + %328 = OpLabel + %336 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %337 = OpLoad %float %336 + %338 = OpConvertFToS %int %337 + %340 = OpSLessThan %bool %338 %int_60 + OpSelectionMerge %341 None + OpBranchConditional %340 %342 %343 + %342 = OpLabel + %344 = OpAccessChain %_ptr_Private_int %data %int_1 + %345 = OpLoad %int %344 + %346 = OpConvertSToF %float %345 + %347 = OpFDiv %float %346 %float_10 + %348 = OpFAdd %float %float_0_5 %347 + OpStore %grey %348 + OpBranch %341 + %343 = OpLabel + %349 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %350 = OpLoad %float %349 + %351 = OpConvertFToS %int %350 + %353 = OpSLessThan %bool %351 %int_90 + OpSelectionMerge %354 None + OpBranchConditional %353 %355 %356 + %355 = OpLabel + %357 = OpAccessChain %_ptr_Private_int %data %int_2 + %358 = OpLoad %int %357 + %359 = OpConvertSToF %float %358 + %360 = OpFDiv %float %359 %float_10 + %361 = OpFAdd %float %float_0_5 %360 + OpStore %grey %361 + OpBranch %354 + %356 = OpLabel + %362 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %363 = OpLoad %float %362 + %364 = OpConvertFToS %int %363 + %366 = OpSLessThan %bool %364 %int_120 + OpSelectionMerge %367 None + OpBranchConditional %366 %368 %369 + %368 = OpLabel + %370 = OpAccessChain %_ptr_Private_int %data %int_3 + %371 = OpLoad %int %370 + %372 = OpConvertSToF %float %371 + %373 = OpFDiv %float %372 %float_10 + %374 = OpFAdd %float %float_0_5 %373 + OpStore %grey %374 + OpBranch %367 + %369 = OpLabel + %375 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %376 = OpLoad %float %375 + %377 = OpConvertFToS %int %376 + %379 = OpSLessThan %bool %377 %int_150 + OpSelectionMerge %380 None + OpBranchConditional %379 %381 %382 + %381 = OpLabel OpKill - %385 = OpLabel - %386 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %387 = OpLoad %float %386 - %388 = OpConvertFToS %int %387 - %390 = OpSLessThan %bool %388 %int_180 - OpSelectionMerge %391 None - OpBranchConditional %390 %392 %393 - %392 = OpLabel - %395 = OpAccessChain %_ptr_Private_int %data %int_5 - %396 = OpLoad %int %395 - %397 = OpConvertSToF %float %396 - %398 = OpFDiv %float %397 %float_10 - %399 = OpFAdd %float %float_0_5 %398 - OpStore %grey %399 - OpBranch %391 - %393 = OpLabel - %400 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %401 = OpLoad %float %400 - %402 = OpConvertFToS %int %401 - %404 = OpSLessThan %bool %402 %int_210 - OpSelectionMerge %405 None - OpBranchConditional %404 %406 %407 - %406 = OpLabel - %409 = OpAccessChain %_ptr_Private_int %data %int_6 - %410 = OpLoad %int %409 - %411 = OpConvertSToF %float %410 - %412 = OpFDiv %float %411 %float_10 - %413 = OpFAdd %float %float_0_5 %412 - OpStore %grey %413 - OpBranch %405 - %407 = OpLabel - %414 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %415 = OpLoad %float %414 - %416 = OpConvertFToS %int %415 - %418 = OpSLessThan %bool %416 %int_240 - OpSelectionMerge %419 None - OpBranchConditional %418 %420 %421 - %420 = OpLabel - %423 = OpAccessChain %_ptr_Private_int %data %int_7 - %424 = OpLoad %int %423 - %425 = OpConvertSToF %float %424 - %426 = OpFDiv %float %425 %float_10 - %427 = OpFAdd %float %float_0_5 %426 - OpStore %grey %427 - OpBranch %419 - %421 = OpLabel - %428 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %429 = OpLoad %float %428 - %430 = OpConvertFToS %int %429 - %432 = OpSLessThan %bool %430 %int_270 - OpSelectionMerge %433 None - OpBranchConditional %432 %434 %435 - %434 = OpLabel - %437 = OpAccessChain %_ptr_Private_int %data %int_8 - %438 = OpLoad %int %437 - %439 = OpConvertSToF %float %438 - %440 = OpFDiv %float %439 %float_10 - %441 = OpFAdd %float %float_0_5 %440 - OpStore %grey %441 - OpBranch %433 - %435 = OpLabel + %382 = OpLabel + %383 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %384 = OpLoad %float %383 + %385 = OpConvertFToS %int %384 + %387 = OpSLessThan %bool %385 %int_180 + OpSelectionMerge %388 None + OpBranchConditional %387 %389 %390 + %389 = OpLabel + %392 = OpAccessChain %_ptr_Private_int %data %int_5 + %393 = OpLoad %int %392 + %394 = OpConvertSToF %float %393 + %395 = OpFDiv %float %394 %float_10 + %396 = OpFAdd %float %float_0_5 %395 + OpStore %grey %396 + OpBranch %388 + %390 = OpLabel + %397 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %398 = OpLoad %float %397 + %399 = OpConvertFToS %int %398 + %401 = OpSLessThan %bool %399 %int_210 + OpSelectionMerge %402 None + OpBranchConditional %401 %403 %404 + %403 = OpLabel + %406 = OpAccessChain %_ptr_Private_int %data %int_6 + %407 = OpLoad %int %406 + %408 = OpConvertSToF %float %407 + %409 = OpFDiv %float %408 %float_10 + %410 = OpFAdd %float %float_0_5 %409 + OpStore %grey %410 + OpBranch %402 + %404 = OpLabel + %411 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %412 = OpLoad %float %411 + %413 = OpConvertFToS %int %412 + %415 = OpSLessThan %bool %413 %int_240 + OpSelectionMerge %416 None + OpBranchConditional %415 %417 %418 + %417 = OpLabel + %420 = OpAccessChain %_ptr_Private_int %data %int_7 + %421 = OpLoad %int %420 + %422 = OpConvertSToF %float %421 + %423 = OpFDiv %float %422 %float_10 + %424 = OpFAdd %float %float_0_5 %423 + OpStore %grey %424 + OpBranch %416 + %418 = OpLabel + %425 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %426 = OpLoad %float %425 + %427 = OpConvertFToS %int %426 + %429 = OpSLessThan %bool %427 %int_270 + OpSelectionMerge %430 None + OpBranchConditional %429 %431 %432 + %431 = OpLabel + %434 = OpAccessChain %_ptr_Private_int %data %int_8 + %435 = OpLoad %int %434 + %436 = OpConvertSToF %float %435 + %437 = OpFDiv %float %436 %float_10 + %438 = OpFAdd %float %float_0_5 %437 + OpStore %grey %438 + OpBranch %430 + %432 = OpLabel OpKill - %433 = OpLabel - OpBranch %419 - %419 = OpLabel - OpBranch %405 - %405 = OpLabel - OpBranch %391 - %391 = OpLabel - OpBranch %383 - %383 = OpLabel - OpBranch %370 - %370 = OpLabel - OpBranch %357 - %357 = OpLabel - OpBranch %344 - %344 = OpLabel - OpBranch %329 - %329 = OpLabel - %442 = OpLoad %float %grey - %444 = OpCompositeConstruct %v3float %442 %442 %442 - %445 = OpCompositeExtract %float %444 0 - %446 = OpCompositeExtract %float %444 1 - %447 = OpCompositeExtract %float %444 2 - %449 = OpCompositeConstruct %v4float %445 %446 %447 %float_1 - OpStore %x_GLF_color %449 + %430 = OpLabel + OpBranch %416 + %416 = OpLabel + OpBranch %402 + %402 = OpLabel + OpBranch %388 + %388 = OpLabel + OpBranch %380 + %380 = OpLabel + OpBranch %367 + %367 = OpLabel + OpBranch %354 + %354 = OpLabel + OpBranch %341 + %341 = OpLabel + OpBranch %326 + %326 = OpLabel + %439 = OpLoad %float %grey + %441 = OpCompositeConstruct %v3float %439 %439 %439 + %442 = OpCompositeExtract %float %441 0 + %443 = OpCompositeExtract %float %441 1 + %444 = OpCompositeExtract %float %441 2 + %446 = OpCompositeConstruct %v4float %442 %443 %444 %float_1 + OpStore %x_GLF_color %446 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %450 +%tint_symbol_3 = OpFunction %void None %447 %tint_symbol_1 = OpFunctionParameter %main_out - %454 = OpLabel - %455 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %455 + %451 = OpLabel + %452 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %452 OpReturn OpFunctionEnd %main = OpFunction %void None %180 - %457 = OpLabel - %458 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %458 - %459 = OpFunctionCall %void %main_1 - %461 = OpLoad %v4float %x_GLF_color - %462 = OpCompositeConstruct %main_out %461 - %460 = OpFunctionCall %void %tint_symbol_3 %462 + %454 = OpLabel + %455 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %455 + %456 = OpFunctionCall %void %main_1 + %458 = OpLoad %v4float %x_GLF_color + %459 = OpCompositeConstruct %main_out %458 + %457 = OpFunctionCall %void %tint_symbol_3 %459 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 258[%258] is not post dominated by the back-edge block 303[%303] - %303 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.spvasm index 9831f2b713..7c1fb077c2 100644 --- a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.spvasm @@ -1,12 +1,10 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 435 +; Bound: 428 ; Schema: 0 OpCapability Shader - %135 = OpExtInstImport "GLSL.std.450" + %132 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2 OpExecutionMode %main OriginUpperLeft @@ -133,7 +131,7 @@ SKIP: FAILED %int_90 = OpConstant %int 90 %int_120 = OpConstant %int 120 %_ptr_Function_v2float = OpTypePointer Function %v2float - %300 = OpConstantNull %v2float + %293 = OpConstantNull %v2float %int_150 = OpConstant %int 150 %int_180 = OpConstant %int 180 %int_5 = OpConstant %int 5 @@ -144,12 +142,12 @@ SKIP: FAILED %int_270 = OpConstant %int 270 %int_8 = OpConstant %int 8 %float_1 = OpConstant %float 1 - %377 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %378 = OpConstantComposite %v2float %float_1 %float_1 + %370 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 + %371 = OpConstantComposite %v2float %float_1 %float_1 %int_32 = OpConstant %int 32 %float_0 = OpConstant %float 0 %main_out = OpTypeStruct %v4float - %422 = OpTypeFunction %void %main_out + %415 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %15 %18 = OpLabel %temp = OpVariable %_ptr_Function__arr_int_uint_10 Function %25 @@ -191,7 +189,7 @@ SKIP: FAILED %x_220 = OpVariable %_ptr_Function_float Function %29 %x_248 = OpVariable %_ptr_Function_float Function %29 %x_249_phi = OpVariable %_ptr_Function_float Function %29 - %x_256_phi = OpVariable %_ptr_Function_v2float Function %300 + %x_256_phi = OpVariable %_ptr_Function_v2float Function %293 %x_259_phi = OpVariable %_ptr_Function_int Function %33 %x_229 = OpVariable %_ptr_Function_float Function %29 %x_247 = OpVariable %_ptr_Function_float Function %29 @@ -199,10 +197,10 @@ SKIP: FAILED %x_238 = OpVariable %_ptr_Function_float Function %29 %x_246 = OpVariable %_ptr_Function_float Function %29 %x_247_phi = OpVariable %_ptr_Function_float Function %29 - %x_272 = OpVariable %_ptr_Function_v2float Function %300 + %x_272 = OpVariable %_ptr_Function_v2float Function %293 %x_260 = OpVariable %_ptr_Function_int Function %33 - %x_273_phi = OpVariable %_ptr_Function_v2float Function %300 - %x_257_1 = OpVariable %_ptr_Function_v2float Function %300 + %x_273_phi = OpVariable %_ptr_Function_v2float Function %293 + %x_257_1 = OpVariable %_ptr_Function_v2float Function %293 %39 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_0 %40 = OpLoad %float %39 %41 = OpConvertFToS %int %40 @@ -263,497 +261,477 @@ SKIP: FAILED %44 = OpLabel OpStore %x_65_phi %79 %81 = OpSLessThan %bool %79 %int_10 - OpSelectionMerge %83 None - OpBranchConditional %81 %84 %85 - %84 = OpLabel - OpBranch %83 - %85 = OpLabel - OpBranch %43 - %83 = OpLabel - OpBranch %42 + OpBranchConditional %81 %42 %43 %43 = OpLabel OpStore %x_93_phi %int_0 + OpBranch %83 + %83 = OpLabel + OpLoopMerge %84 %85 None OpBranch %86 %86 = OpLabel - OpLoopMerge %87 %88 None - OpBranch %89 - %89 = OpLabel - %91 = OpLoad %int %x_93_phi - %92 = OpSLessThan %bool %91 %int_10 - OpSelectionMerge %93 None - OpBranchConditional %92 %94 %95 - %94 = OpLabel - OpBranch %93 - %95 = OpLabel - OpBranch %87 - %93 = OpLabel - OpBranch %88 - %88 = OpLabel - %96 = OpAccessChain %_ptr_Function_int %data %91 - %97 = OpLoad %int %96 - %98 = OpAccessChain %_ptr_Function_int %temp %91 - OpStore %98 %97 - %99 = OpIAdd %int %91 %int_1 - OpStore %x_94 %99 - %100 = OpLoad %int %x_94 - OpStore %x_93_phi %100 - OpBranch %86 - %87 = OpLabel + %88 = OpLoad %int %x_93_phi + %89 = OpSLessThan %bool %88 %int_10 + OpSelectionMerge %90 None + OpBranchConditional %89 %91 %92 + %91 = OpLabel + OpBranch %90 + %92 = OpLabel + OpBranch %84 + %90 = OpLabel + OpBranch %85 + %85 = OpLabel + %93 = OpAccessChain %_ptr_Function_int %data %88 + %94 = OpLoad %int %93 + %95 = OpAccessChain %_ptr_Function_int %temp %88 + OpStore %95 %94 + %96 = OpIAdd %int %88 %int_1 + OpStore %x_94 %96 + %97 = OpLoad %int %x_94 + OpStore %x_93_phi %97 + OpBranch %83 + %84 = OpLabel OpStore %x_102_phi %int_1 + OpBranch %98 + %98 = OpLabel + OpLoopMerge %99 %100 None OpBranch %101 %101 = OpLabel - OpLoopMerge %102 %103 None - OpBranch %104 - %104 = OpLabel - %107 = OpLoad %int %x_102_phi - %109 = OpSLessThanEqual %bool %107 %int_9 - OpSelectionMerge %110 None - OpBranchConditional %109 %111 %112 - %111 = OpLabel - OpBranch %110 - %112 = OpLabel - OpBranch %102 - %110 = OpLabel + %104 = OpLoad %int %x_102_phi + %106 = OpSLessThanEqual %bool %104 %int_9 + OpSelectionMerge %107 None + OpBranchConditional %106 %108 %109 + %108 = OpLabel + OpBranch %107 + %109 = OpLabel + OpBranch %99 + %107 = OpLabel OpStore %x_109_phi %int_0 + OpBranch %110 + %110 = OpLabel + OpLoopMerge %111 %112 None OpBranch %113 %113 = OpLabel - OpLoopMerge %114 %115 None - OpBranch %116 - %116 = OpLabel - %125 = OpLoad %int %x_109_phi - %126 = OpSLessThan %bool %125 %int_9 - OpSelectionMerge %127 None - OpBranchConditional %126 %128 %129 - %128 = OpLabel - OpBranch %127 - %129 = OpLabel - OpBranch %114 - %127 = OpLabel - %130 = OpIAdd %int %125 %107 - %131 = OpISub %int %130 %int_1 - %132 = OpIMul %int %int_2 %107 - %133 = OpIAdd %int %125 %132 - %136 = OpISub %int %133 %int_1 - %134 = OpExtInst %int %135 SMin %136 %int_9 - OpStore %x_121_phi %125 - OpStore %x_124_phi %130 - OpStore %x_126_phi %125 + %122 = OpLoad %int %x_109_phi + %123 = OpSLessThan %bool %122 %int_9 + OpSelectionMerge %124 None + OpBranchConditional %123 %125 %126 + %125 = OpLabel + OpBranch %124 + %126 = OpLabel + OpBranch %111 + %124 = OpLabel + %127 = OpIAdd %int %122 %104 + %128 = OpISub %int %127 %int_1 + %129 = OpIMul %int %int_2 %104 + %130 = OpIAdd %int %122 %129 + %133 = OpISub %int %130 %int_1 + %131 = OpExtInst %int %132 SMin %133 %int_9 + OpStore %x_121_phi %122 + OpStore %x_124_phi %127 + OpStore %x_126_phi %122 + OpBranch %134 + %134 = OpLabel + OpLoopMerge %135 %136 None OpBranch %137 %137 = OpLabel - OpLoopMerge %138 %139 None - OpBranch %140 - %140 = OpLabel - %145 = OpLoad %int %x_121_phi - OpStore %x_121 %145 - %146 = OpLoad %int %x_124_phi - %147 = OpLoad %int %x_126_phi - OpStore %x_126 %147 - %148 = OpLoad %int %x_126 - %149 = OpSLessThanEqual %bool %148 %131 - OpSelectionMerge %150 None - OpBranchConditional %149 %151 %150 - %151 = OpLabel - %152 = OpSLessThanEqual %bool %146 %134 - OpBranch %150 + %142 = OpLoad %int %x_121_phi + OpStore %x_121 %142 + %143 = OpLoad %int %x_124_phi + %144 = OpLoad %int %x_126_phi + OpStore %x_126 %144 + %145 = OpLoad %int %x_126 + %146 = OpSLessThanEqual %bool %145 %128 + %147 = OpSLessThanEqual %bool %143 %131 + %148 = OpLogicalAnd %bool %146 %147 + OpSelectionMerge %149 None + OpBranchConditional %148 %150 %151 %150 = OpLabel - %153 = OpPhi %bool %149 %140 %152 %151 - OpSelectionMerge %154 None - OpBranchConditional %153 %155 %156 - %155 = OpLabel - OpBranch %154 - %156 = OpLabel - OpBranch %138 - %154 = OpLabel - %157 = OpLoad %int %x_126 - %158 = OpAccessChain %_ptr_Function_int %data %157 - %159 = OpLoad %int %158 - %160 = OpAccessChain %_ptr_Function_int %data %146 - %161 = OpLoad %int %160 - %163 = OpLoad %int %x_121 - %164 = OpCopyObject %int %int_1 - %165 = OpIAdd %int %163 %164 - %162 = OpCopyObject %int %165 - %166 = OpSLessThan %bool %159 %161 - OpSelectionMerge %167 None - OpBranchConditional %166 %168 %169 - %168 = OpLabel - %171 = OpLoad %int %x_126 - %172 = OpCopyObject %int %int_1 - %173 = OpIAdd %int %171 %172 - %170 = OpCopyObject %int %173 - OpStore %x_141 %170 - %174 = OpAccessChain %_ptr_Function_int %data %157 - %175 = OpLoad %int %174 - %176 = OpLoad %int %x_121 - %177 = OpAccessChain %_ptr_Function_int %temp %176 - OpStore %177 %175 - OpStore %x_125_phi %146 - %178 = OpLoad %int %x_141 - OpStore %x_127_phi %178 - OpBranch %167 - %169 = OpLabel - %179 = OpIAdd %int %146 %int_1 - OpStore %x_144 %179 - %180 = OpAccessChain %_ptr_Function_int %data %146 - %181 = OpLoad %int %180 - %182 = OpLoad %int %x_121 - %183 = OpAccessChain %_ptr_Function_int %temp %182 - OpStore %183 %181 - %184 = OpLoad %int %x_144 - OpStore %x_125_phi %184 - %185 = OpLoad %int %x_126 - OpStore %x_127_phi %185 - OpBranch %167 - %167 = OpLabel - %186 = OpLoad %int %x_125_phi - %187 = OpLoad %int %x_127_phi - OpBranch %139 - %139 = OpLabel - OpStore %x_121_phi %162 - OpStore %x_124_phi %186 - OpStore %x_126_phi %187 - OpBranch %137 - %138 = OpLabel - %188 = OpLoad %int %x_121 - OpStore %x_148_phi %188 - %189 = OpLoad %int %x_126 - OpStore %x_151_phi %189 - OpBranch %190 - %190 = OpLabel - OpLoopMerge %191 %192 None - OpBranch %193 - %193 = OpLabel - %196 = OpLoad %int %x_148_phi - %197 = OpLoad %int %x_151_phi - %198 = OpSLessThan %bool %197 %int_10 - OpSelectionMerge %199 None - OpBranchConditional %198 %200 %199 - %200 = OpLabel - %201 = OpSLessThanEqual %bool %197 %131 - OpBranch %199 - %199 = OpLabel - %202 = OpPhi %bool %198 %193 %201 %200 - OpSelectionMerge %203 None - OpBranchConditional %202 %204 %205 - %204 = OpLabel - OpBranch %203 - %205 = OpLabel - OpBranch %191 - %203 = OpLabel - OpBranch %192 - %192 = OpLabel - %206 = OpIAdd %int %196 %int_1 - OpStore %x_149 %206 - %207 = OpIAdd %int %197 %int_1 - OpStore %x_152 %207 - %208 = OpAccessChain %_ptr_Function_int %data %197 - %209 = OpLoad %int %208 - %210 = OpAccessChain %_ptr_Function_int %temp %196 - OpStore %210 %209 - %211 = OpLoad %int %x_149 - OpStore %x_148_phi %211 - %212 = OpLoad %int %x_152 - OpStore %x_151_phi %212 - OpBranch %190 - %191 = OpLabel - OpStore %x_161_phi %125 - OpBranch %213 - %213 = OpLabel - OpLoopMerge %214 %215 None - OpBranch %216 - %216 = OpLabel - %218 = OpLoad %int %x_161_phi - %219 = OpSLessThanEqual %bool %218 %134 - OpSelectionMerge %220 None - OpBranchConditional %219 %221 %222 - %221 = OpLabel - OpBranch %220 - %222 = OpLabel - OpBranch %214 - %220 = OpLabel - OpBranch %215 - %215 = OpLabel - %223 = OpAccessChain %_ptr_Function_int %temp %218 - %224 = OpLoad %int %223 - %225 = OpAccessChain %_ptr_Function_int %data %218 - OpStore %225 %224 - %226 = OpIAdd %int %218 %int_1 - OpStore %x_162 %226 - %227 = OpLoad %int %x_162 - OpStore %x_161_phi %227 - OpBranch %213 + OpBranch %149 + %151 = OpLabel + OpBranch %135 + %149 = OpLabel + %152 = OpLoad %int %x_126 + %153 = OpAccessChain %_ptr_Function_int %data %152 + %154 = OpLoad %int %153 + %155 = OpAccessChain %_ptr_Function_int %data %143 + %156 = OpLoad %int %155 + %158 = OpLoad %int %x_121 + %159 = OpCopyObject %int %int_1 + %160 = OpIAdd %int %158 %159 + %157 = OpCopyObject %int %160 + %161 = OpSLessThan %bool %154 %156 + OpSelectionMerge %162 None + OpBranchConditional %161 %163 %164 + %163 = OpLabel + %166 = OpLoad %int %x_126 + %167 = OpCopyObject %int %int_1 + %168 = OpIAdd %int %166 %167 + %165 = OpCopyObject %int %168 + OpStore %x_141 %165 + %169 = OpAccessChain %_ptr_Function_int %data %152 + %170 = OpLoad %int %169 + %171 = OpLoad %int %x_121 + %172 = OpAccessChain %_ptr_Function_int %temp %171 + OpStore %172 %170 + OpStore %x_125_phi %143 + %173 = OpLoad %int %x_141 + OpStore %x_127_phi %173 + OpBranch %162 + %164 = OpLabel + %174 = OpIAdd %int %143 %int_1 + OpStore %x_144 %174 + %175 = OpAccessChain %_ptr_Function_int %data %143 + %176 = OpLoad %int %175 + %177 = OpLoad %int %x_121 + %178 = OpAccessChain %_ptr_Function_int %temp %177 + OpStore %178 %176 + %179 = OpLoad %int %x_144 + OpStore %x_125_phi %179 + %180 = OpLoad %int %x_126 + OpStore %x_127_phi %180 + OpBranch %162 + %162 = OpLabel + %181 = OpLoad %int %x_125_phi + %182 = OpLoad %int %x_127_phi + OpBranch %136 + %136 = OpLabel + OpStore %x_121_phi %157 + OpStore %x_124_phi %181 + OpStore %x_126_phi %182 + OpBranch %134 + %135 = OpLabel + %183 = OpLoad %int %x_121 + OpStore %x_148_phi %183 + %184 = OpLoad %int %x_126 + OpStore %x_151_phi %184 + OpBranch %185 + %185 = OpLabel + OpLoopMerge %186 %187 None + OpBranch %188 + %188 = OpLabel + %191 = OpLoad %int %x_148_phi + %192 = OpLoad %int %x_151_phi + %193 = OpSLessThan %bool %192 %int_10 + %194 = OpSLessThanEqual %bool %192 %128 + %195 = OpLogicalAnd %bool %193 %194 + OpSelectionMerge %196 None + OpBranchConditional %195 %197 %198 + %197 = OpLabel + OpBranch %196 + %198 = OpLabel + OpBranch %186 + %196 = OpLabel + OpBranch %187 + %187 = OpLabel + %199 = OpIAdd %int %191 %int_1 + OpStore %x_149 %199 + %200 = OpIAdd %int %192 %int_1 + OpStore %x_152 %200 + %201 = OpAccessChain %_ptr_Function_int %data %192 + %202 = OpLoad %int %201 + %203 = OpAccessChain %_ptr_Function_int %temp %191 + OpStore %203 %202 + %204 = OpLoad %int %x_149 + OpStore %x_148_phi %204 + %205 = OpLoad %int %x_152 + OpStore %x_151_phi %205 + OpBranch %185 + %186 = OpLabel + OpStore %x_161_phi %122 + OpBranch %206 + %206 = OpLabel + OpLoopMerge %207 %208 None + OpBranch %209 + %209 = OpLabel + %211 = OpLoad %int %x_161_phi + %212 = OpSLessThanEqual %bool %211 %131 + OpSelectionMerge %213 None + OpBranchConditional %212 %214 %215 %214 = OpLabel - OpBranch %115 - %115 = OpLabel - OpStore %x_109_phi %133 - OpBranch %113 - %114 = OpLabel - OpBranch %103 - %103 = OpLabel - %228 = OpIMul %int %int_2 %107 - OpStore %x_103 %228 - %229 = OpLoad %int %x_103 - OpStore %x_102_phi %229 - OpBranch %101 - %102 = OpLabel - %236 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %237 = OpLoad %float %236 - %238 = OpConvertFToS %int %237 - OpStore %x_171 %238 - %239 = OpLoad %int %x_171 - %241 = OpSLessThan %bool %239 %int_30 - OpSelectionMerge %242 None - OpBranchConditional %241 %243 %244 - %243 = OpLabel - %245 = OpAccessChain %_ptr_Function_int %data %int_0 - %246 = OpLoad %int %245 - %248 = OpConvertSToF %float %246 - %250 = OpFMul %float %248 %float_0_100000001 - %251 = OpFAdd %float %float_0_5 %250 - OpStore %x_180 %251 - %252 = OpLoad %float %x_180 - OpStore %x_280_phi %252 - OpBranch %242 - %244 = OpLabel - %256 = OpLoad %int %x_171 - %258 = OpSLessThan %bool %256 %int_60 - OpSelectionMerge %259 None - OpBranchConditional %258 %260 %261 - %260 = OpLabel - %262 = OpAccessChain %_ptr_Function_int %data %int_1 - %263 = OpLoad %int %262 - %264 = OpConvertSToF %float %263 - %265 = OpFMul %float %264 %float_0_100000001 - %266 = OpFAdd %float %float_0_5 %265 - OpStore %x_189 %266 - %267 = OpLoad %float %x_189 - OpStore %x_279_phi %267 - OpBranch %259 - %261 = OpLabel - %271 = OpLoad %int %x_171 - %273 = OpSLessThan %bool %271 %int_90 - OpSelectionMerge %274 None - OpBranchConditional %273 %275 %276 - %275 = OpLabel - %277 = OpAccessChain %_ptr_Function_int %data %int_2 - %278 = OpLoad %int %277 - %279 = OpConvertSToF %float %278 - %280 = OpFMul %float %279 %float_0_100000001 - %281 = OpFAdd %float %float_0_5 %280 - OpStore %x_198 %281 - %282 = OpLoad %float %x_198 - OpStore %x_278_phi %282 - OpBranch %274 - %276 = OpLabel - %283 = OpLoad %int %x_171 - %285 = OpSLessThan %bool %283 %int_120 - OpSelectionMerge %286 None - OpBranchConditional %285 %287 %288 - %287 = OpLabel - %289 = OpAccessChain %_ptr_Function_int %data %int_3 - %290 = OpLoad %int %289 - %291 = OpConvertSToF %float %290 - %292 = OpFMul %float %291 %float_0_100000001 - %293 = OpFAdd %float %float_0_5 %292 - OpStore %x_207 %293 - %294 = OpLoad %float %x_207 - OpStore %x_277_phi %294 - OpBranch %286 - %288 = OpLabel - %302 = OpLoad %int %x_171 - %304 = OpSLessThan %bool %302 %int_150 - OpSelectionMerge %305 None - OpBranchConditional %304 %306 %307 - %306 = OpLabel + OpBranch %213 + %215 = OpLabel + OpBranch %207 + %213 = OpLabel + OpBranch %208 + %208 = OpLabel + %216 = OpAccessChain %_ptr_Function_int %temp %211 + %217 = OpLoad %int %216 + %218 = OpAccessChain %_ptr_Function_int %data %211 + OpStore %218 %217 + %219 = OpIAdd %int %211 %int_1 + OpStore %x_162 %219 + %220 = OpLoad %int %x_162 + OpStore %x_161_phi %220 + OpBranch %206 + %207 = OpLabel + OpBranch %112 + %112 = OpLabel + OpStore %x_109_phi %130 + OpBranch %110 + %111 = OpLabel + OpBranch %100 + %100 = OpLabel + %221 = OpIMul %int %int_2 %104 + OpStore %x_103 %221 + %222 = OpLoad %int %x_103 + OpStore %x_102_phi %222 + OpBranch %98 + %99 = OpLabel + %229 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %230 = OpLoad %float %229 + %231 = OpConvertFToS %int %230 + OpStore %x_171 %231 + %232 = OpLoad %int %x_171 + %234 = OpSLessThan %bool %232 %int_30 + OpSelectionMerge %235 None + OpBranchConditional %234 %236 %237 + %236 = OpLabel + %238 = OpAccessChain %_ptr_Function_int %data %int_0 + %239 = OpLoad %int %238 + %241 = OpConvertSToF %float %239 + %243 = OpFMul %float %241 %float_0_100000001 + %244 = OpFAdd %float %float_0_5 %243 + OpStore %x_180 %244 + %245 = OpLoad %float %x_180 + OpStore %x_280_phi %245 + OpBranch %235 + %237 = OpLabel + %249 = OpLoad %int %x_171 + %251 = OpSLessThan %bool %249 %int_60 + OpSelectionMerge %252 None + OpBranchConditional %251 %253 %254 + %253 = OpLabel + %255 = OpAccessChain %_ptr_Function_int %data %int_1 + %256 = OpLoad %int %255 + %257 = OpConvertSToF %float %256 + %258 = OpFMul %float %257 %float_0_100000001 + %259 = OpFAdd %float %float_0_5 %258 + OpStore %x_189 %259 + %260 = OpLoad %float %x_189 + OpStore %x_279_phi %260 + OpBranch %252 + %254 = OpLabel + %264 = OpLoad %int %x_171 + %266 = OpSLessThan %bool %264 %int_90 + OpSelectionMerge %267 None + OpBranchConditional %266 %268 %269 + %268 = OpLabel + %270 = OpAccessChain %_ptr_Function_int %data %int_2 + %271 = OpLoad %int %270 + %272 = OpConvertSToF %float %271 + %273 = OpFMul %float %272 %float_0_100000001 + %274 = OpFAdd %float %float_0_5 %273 + OpStore %x_198 %274 + %275 = OpLoad %float %x_198 + OpStore %x_278_phi %275 + OpBranch %267 + %269 = OpLabel + %276 = OpLoad %int %x_171 + %278 = OpSLessThan %bool %276 %int_120 + OpSelectionMerge %279 None + OpBranchConditional %278 %280 %281 + %280 = OpLabel + %282 = OpAccessChain %_ptr_Function_int %data %int_3 + %283 = OpLoad %int %282 + %284 = OpConvertSToF %float %283 + %285 = OpFMul %float %284 %float_0_100000001 + %286 = OpFAdd %float %float_0_5 %285 + OpStore %x_207 %286 + %287 = OpLoad %float %x_207 + OpStore %x_277_phi %287 + OpBranch %279 + %281 = OpLabel + %295 = OpLoad %int %x_171 + %297 = OpSLessThan %bool %295 %int_150 + OpSelectionMerge %298 None + OpBranchConditional %297 %299 %300 + %299 = OpLabel OpKill + %300 = OpLabel + %304 = OpLoad %int %x_171 + %306 = OpSLessThan %bool %304 %int_180 + OpSelectionMerge %307 None + OpBranchConditional %306 %308 %309 + %308 = OpLabel + %311 = OpAccessChain %_ptr_Function_int %data %int_5 + %312 = OpLoad %int %311 + %313 = OpConvertSToF %float %312 + %314 = OpFMul %float %313 %float_0_100000001 + %315 = OpFAdd %float %float_0_5 %314 + OpStore %x_220 %315 + %316 = OpLoad %float %x_220 + OpStore %x_249_phi %316 + OpBranch %307 + %309 = OpLabel + %320 = OpLoad %int %x_171 + %322 = OpSLessThan %bool %320 %int_210 + OpSelectionMerge %323 None + OpBranchConditional %322 %324 %325 + %324 = OpLabel + %327 = OpAccessChain %_ptr_Function_int %data %int_6 + %328 = OpLoad %int %327 + %329 = OpConvertSToF %float %328 + %330 = OpFMul %float %329 %float_0_100000001 + %331 = OpFAdd %float %float_0_5 %330 + OpStore %x_229 %331 + %332 = OpLoad %float %x_229 + OpStore %x_248_phi %332 + OpBranch %323 + %325 = OpLabel + %333 = OpLoad %int %x_171 + %335 = OpSLessThan %bool %333 %int_240 + OpSelectionMerge %336 None + OpBranchConditional %335 %337 %338 + %337 = OpLabel + %340 = OpAccessChain %_ptr_Function_int %data %int_7 + %341 = OpLoad %int %340 + %342 = OpConvertSToF %float %341 + %343 = OpFMul %float %342 %float_0_100000001 + %344 = OpFAdd %float %float_0_5 %343 + OpStore %x_238 %344 + %345 = OpLoad %float %x_238 + OpStore %x_247_phi %345 + OpBranch %336 + %338 = OpLabel + %346 = OpLoad %int %x_171 + %348 = OpSLessThan %bool %346 %int_270 + OpSelectionMerge %349 None + OpBranchConditional %348 %350 %351 + %350 = OpLabel + OpBranch %349 + %351 = OpLabel + OpKill + %349 = OpLabel + %353 = OpAccessChain %_ptr_Function_int %data %int_8 + %354 = OpLoad %int %353 + %355 = OpConvertSToF %float %354 + %356 = OpFMul %float %355 %float_0_100000001 + %357 = OpFAdd %float %float_0_5 %356 + OpStore %x_246 %357 + %358 = OpLoad %float %x_246 + OpStore %x_247_phi %358 + OpBranch %336 + %336 = OpLabel + %359 = OpLoad %float %x_247_phi + OpStore %x_247 %359 + %360 = OpLoad %float %x_247 + OpStore %x_248_phi %360 + OpBranch %323 + %323 = OpLabel + %361 = OpLoad %float %x_248_phi + OpStore %x_248 %361 + %362 = OpLoad %float %x_248 + OpStore %x_249_phi %362 + OpBranch %307 %307 = OpLabel - %311 = OpLoad %int %x_171 - %313 = OpSLessThan %bool %311 %int_180 - OpSelectionMerge %314 None - OpBranchConditional %313 %315 %316 - %315 = OpLabel - %318 = OpAccessChain %_ptr_Function_int %data %int_5 - %319 = OpLoad %int %318 - %320 = OpConvertSToF %float %319 - %321 = OpFMul %float %320 %float_0_100000001 - %322 = OpFAdd %float %float_0_5 %321 - OpStore %x_220 %322 - %323 = OpLoad %float %x_220 - OpStore %x_249_phi %323 - OpBranch %314 - %316 = OpLabel - %327 = OpLoad %int %x_171 - %329 = OpSLessThan %bool %327 %int_210 - OpSelectionMerge %330 None - OpBranchConditional %329 %331 %332 - %331 = OpLabel - %334 = OpAccessChain %_ptr_Function_int %data %int_6 - %335 = OpLoad %int %334 - %336 = OpConvertSToF %float %335 - %337 = OpFMul %float %336 %float_0_100000001 - %338 = OpFAdd %float %float_0_5 %337 - OpStore %x_229 %338 - %339 = OpLoad %float %x_229 - OpStore %x_248_phi %339 - OpBranch %330 - %332 = OpLabel - %340 = OpLoad %int %x_171 - %342 = OpSLessThan %bool %340 %int_240 - OpSelectionMerge %343 None - OpBranchConditional %342 %344 %345 - %344 = OpLabel - %347 = OpAccessChain %_ptr_Function_int %data %int_7 - %348 = OpLoad %int %347 - %349 = OpConvertSToF %float %348 - %350 = OpFMul %float %349 %float_0_100000001 - %351 = OpFAdd %float %float_0_5 %350 - OpStore %x_238 %351 - %352 = OpLoad %float %x_238 - OpStore %x_247_phi %352 - OpBranch %343 - %345 = OpLabel - %353 = OpLoad %int %x_171 - %355 = OpSLessThan %bool %353 %int_270 - OpSelectionMerge %356 None - OpBranchConditional %355 %357 %358 - %357 = OpLabel - OpBranch %356 - %358 = OpLabel - OpKill - %356 = OpLabel - %360 = OpAccessChain %_ptr_Function_int %data %int_8 - %361 = OpLoad %int %360 - %362 = OpConvertSToF %float %361 - %363 = OpFMul %float %362 %float_0_100000001 - %364 = OpFAdd %float %float_0_5 %363 - OpStore %x_246 %364 - %365 = OpLoad %float %x_246 - OpStore %x_247_phi %365 - OpBranch %343 - %343 = OpLabel - %366 = OpLoad %float %x_247_phi - OpStore %x_247 %366 - %367 = OpLoad %float %x_247 - OpStore %x_248_phi %367 - OpBranch %330 - %330 = OpLabel - %368 = OpLoad %float %x_248_phi - OpStore %x_248 %368 - %369 = OpLoad %float %x_248 - OpStore %x_249_phi %369 - OpBranch %314 - %314 = OpLabel - %370 = OpLoad %float %x_249_phi - OpStore %x_249 %370 - %371 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_1 - %372 = OpLoad %float %371 - %373 = OpFOrdGreaterThan %bool %40 %372 - OpSelectionMerge %374 None - OpBranchConditional %373 %375 %374 + %363 = OpLoad %float %x_249_phi + OpStore %x_249 %363 + %364 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_1 + %365 = OpLoad %float %364 + %366 = OpFOrdGreaterThan %bool %40 %365 + OpSelectionMerge %367 None + OpBranchConditional %366 %368 %367 + %368 = OpLabel + OpStore %x_GLF_color %370 + OpBranch %367 + %367 = OpLabel + OpStore %x_256_phi %371 + OpStore %x_259_phi %int_0 + OpBranch %372 + %372 = OpLabel + OpLoopMerge %373 %374 None + OpBranch %375 %375 = OpLabel - OpStore %x_GLF_color %377 + %379 = OpLoad %v2float %x_256_phi + %380 = OpLoad %int %x_259_phi + %382 = OpSLessThanEqual %bool %380 %int_32 + OpSelectionMerge %383 None + OpBranchConditional %382 %384 %385 + %384 = OpLabel + OpBranch %383 + %385 = OpLabel + OpBranch %373 + %383 = OpLabel + OpStore %x_273_phi %379 + %386 = OpCompositeExtract %float %379 0 + %388 = OpFOrdLessThan %bool %386 %float_0 + OpSelectionMerge %389 None + OpBranchConditional %388 %390 %389 + %390 = OpLabel + OpSelectionMerge %391 None + OpBranchConditional %366 %392 %391 + %392 = OpLabel + OpKill + %391 = OpLabel + OpStore %x_272 %379 + %393 = OpAccessChain %_ptr_Function_float %x_272 %uint_1 + %394 = OpCompositeExtract %float %379 1 + %395 = OpFAdd %float %394 %float_1 + OpStore %393 %395 + %396 = OpLoad %v2float %x_272 + OpStore %x_273_phi %396 + OpBranch %389 + %389 = OpLabel + %397 = OpLoad %v2float %x_273_phi + OpStore %x_257_1 %397 + %399 = OpAccessChain %_ptr_Function_float %x_257_1 %uint_0 + %400 = OpCompositeExtract %float %397 0 + %401 = OpCompositeExtract %float %397 1 + %402 = OpFAdd %float %400 %401 + OpStore %399 %402 + %403 = OpLoad %v2float %x_257_1 OpBranch %374 %374 = OpLabel - OpStore %x_256_phi %378 - OpStore %x_259_phi %int_0 - OpBranch %379 - %379 = OpLabel - OpLoopMerge %380 %381 None - OpBranch %382 - %382 = OpLabel - %386 = OpLoad %v2float %x_256_phi - %387 = OpLoad %int %x_259_phi - %389 = OpSLessThanEqual %bool %387 %int_32 - OpSelectionMerge %390 None - OpBranchConditional %389 %391 %392 - %391 = OpLabel - OpBranch %390 - %392 = OpLabel - OpBranch %380 - %390 = OpLabel - OpStore %x_273_phi %386 - %393 = OpCompositeExtract %float %386 0 - %395 = OpFOrdLessThan %bool %393 %float_0 - OpSelectionMerge %396 None - OpBranchConditional %395 %397 %396 - %397 = OpLabel - OpSelectionMerge %398 None - OpBranchConditional %373 %399 %398 - %399 = OpLabel - OpKill - %398 = OpLabel - OpStore %x_272 %386 - %400 = OpAccessChain %_ptr_Function_float %x_272 %uint_1 - %401 = OpCompositeExtract %float %386 1 - %402 = OpFAdd %float %401 %float_1 - OpStore %400 %402 - %403 = OpLoad %v2float %x_272 - OpStore %x_273_phi %403 - OpBranch %396 - %396 = OpLabel - %404 = OpLoad %v2float %x_273_phi - OpStore %x_257_1 %404 - %406 = OpAccessChain %_ptr_Function_float %x_257_1 %uint_0 - %407 = OpCompositeExtract %float %404 0 - %408 = OpCompositeExtract %float %404 1 - %409 = OpFAdd %float %407 %408 - OpStore %406 %409 - %410 = OpLoad %v2float %x_257_1 - OpBranch %381 - %381 = OpLabel - %411 = OpIAdd %int %387 %int_1 - OpStore %x_260 %411 - OpStore %x_256_phi %410 - %412 = OpLoad %int %x_260 - OpStore %x_259_phi %412 - OpBranch %379 - %380 = OpLabel - OpBranch %305 - %305 = OpLabel - %413 = OpLoad %float %x_249 - OpStore %x_277_phi %413 - OpBranch %286 - %286 = OpLabel - %414 = OpLoad %float %x_277_phi - OpStore %x_277 %414 - %415 = OpLoad %float %x_277 - OpStore %x_278_phi %415 - OpBranch %274 - %274 = OpLabel - %416 = OpLoad %float %x_278_phi - OpStore %x_278 %416 - %417 = OpLoad %float %x_278 - OpStore %x_279_phi %417 - OpBranch %259 - %259 = OpLabel - %418 = OpLoad %float %x_279_phi - OpStore %x_279 %418 - %419 = OpLoad %float %x_279 - OpStore %x_280_phi %419 - OpBranch %242 - %242 = OpLabel - %420 = OpLoad %float %x_280_phi - %421 = OpCompositeConstruct %v4float %420 %420 %420 %float_1 - OpStore %x_GLF_color %421 + %404 = OpIAdd %int %380 %int_1 + OpStore %x_260 %404 + OpStore %x_256_phi %403 + %405 = OpLoad %int %x_260 + OpStore %x_259_phi %405 + OpBranch %372 + %373 = OpLabel + OpBranch %298 + %298 = OpLabel + %406 = OpLoad %float %x_249 + OpStore %x_277_phi %406 + OpBranch %279 + %279 = OpLabel + %407 = OpLoad %float %x_277_phi + OpStore %x_277 %407 + %408 = OpLoad %float %x_277 + OpStore %x_278_phi %408 + OpBranch %267 + %267 = OpLabel + %409 = OpLoad %float %x_278_phi + OpStore %x_278 %409 + %410 = OpLoad %float %x_278 + OpStore %x_279_phi %410 + OpBranch %252 + %252 = OpLabel + %411 = OpLoad %float %x_279_phi + OpStore %x_279 %411 + %412 = OpLoad %float %x_279 + OpStore %x_280_phi %412 + OpBranch %235 + %235 = OpLabel + %413 = OpLoad %float %x_280_phi + %414 = OpCompositeConstruct %v4float %413 %413 %413 %float_1 + OpStore %x_GLF_color %414 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %422 +%tint_symbol_3 = OpFunction %void None %415 %tint_symbol_1 = OpFunctionParameter %main_out - %426 = OpLabel - %427 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %427 + %419 = OpLabel + %420 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %420 OpReturn OpFunctionEnd %main = OpFunction %void None %15 - %429 = OpLabel - %430 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %430 - %431 = OpFunctionCall %void %main_1 - %433 = OpLoad %v4float %x_GLF_color - %434 = OpCompositeConstruct %main_out %433 - %432 = OpFunctionCall %void %tint_symbol_3 %434 + %422 = OpLabel + %423 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %423 + %424 = OpFunctionCall %void %main_1 + %426 = OpLoad %v4float %x_GLF_color + %427 = OpCompositeConstruct %main_out %426 + %425 = OpFunctionCall %void %tint_symbol_3 %427 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 44[%44] is not post dominated by the back-edge block 83[%83] - %83 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.wgsl.expected.spvasm index 9831f2b713..4752288531 100644 --- a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.wgsl.expected.spvasm @@ -1,12 +1,10 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 435 +; Bound: 432 ; Schema: 0 OpCapability Shader - %135 = OpExtInstImport "GLSL.std.450" + %132 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2 OpExecutionMode %main OriginUpperLeft @@ -133,7 +131,7 @@ SKIP: FAILED %int_90 = OpConstant %int 90 %int_120 = OpConstant %int 120 %_ptr_Function_v2float = OpTypePointer Function %v2float - %300 = OpConstantNull %v2float + %297 = OpConstantNull %v2float %int_150 = OpConstant %int 150 %int_180 = OpConstant %int 180 %int_5 = OpConstant %int 5 @@ -144,12 +142,12 @@ SKIP: FAILED %int_270 = OpConstant %int 270 %int_8 = OpConstant %int 8 %float_1 = OpConstant %float 1 - %377 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %378 = OpConstantComposite %v2float %float_1 %float_1 + %374 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 + %375 = OpConstantComposite %v2float %float_1 %float_1 %int_32 = OpConstant %int 32 %float_0 = OpConstant %float 0 %main_out = OpTypeStruct %v4float - %422 = OpTypeFunction %void %main_out + %419 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %15 %18 = OpLabel %temp = OpVariable %_ptr_Function__arr_int_uint_10 Function %25 @@ -191,7 +189,7 @@ SKIP: FAILED %x_220 = OpVariable %_ptr_Function_float Function %29 %x_248 = OpVariable %_ptr_Function_float Function %29 %x_249_phi = OpVariable %_ptr_Function_float Function %29 - %x_256_phi = OpVariable %_ptr_Function_v2float Function %300 + %x_256_phi = OpVariable %_ptr_Function_v2float Function %297 %x_259_phi = OpVariable %_ptr_Function_int Function %33 %x_229 = OpVariable %_ptr_Function_float Function %29 %x_247 = OpVariable %_ptr_Function_float Function %29 @@ -199,10 +197,10 @@ SKIP: FAILED %x_238 = OpVariable %_ptr_Function_float Function %29 %x_246 = OpVariable %_ptr_Function_float Function %29 %x_247_phi = OpVariable %_ptr_Function_float Function %29 - %x_272 = OpVariable %_ptr_Function_v2float Function %300 + %x_272 = OpVariable %_ptr_Function_v2float Function %297 %x_260 = OpVariable %_ptr_Function_int Function %33 - %x_273_phi = OpVariable %_ptr_Function_v2float Function %300 - %x_257_1 = OpVariable %_ptr_Function_v2float Function %300 + %x_273_phi = OpVariable %_ptr_Function_v2float Function %297 + %x_257_1 = OpVariable %_ptr_Function_v2float Function %297 %39 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_0 %40 = OpLoad %float %39 %41 = OpConvertFToS %int %40 @@ -263,497 +261,487 @@ SKIP: FAILED %44 = OpLabel OpStore %x_65_phi %79 %81 = OpSLessThan %bool %79 %int_10 - OpSelectionMerge %83 None - OpBranchConditional %81 %84 %85 - %84 = OpLabel - OpBranch %83 - %85 = OpLabel - OpBranch %43 - %83 = OpLabel - OpBranch %42 + OpBranchConditional %81 %42 %43 %43 = OpLabel OpStore %x_93_phi %int_0 + OpBranch %83 + %83 = OpLabel + OpLoopMerge %84 %85 None OpBranch %86 %86 = OpLabel - OpLoopMerge %87 %88 None - OpBranch %89 - %89 = OpLabel - %91 = OpLoad %int %x_93_phi - %92 = OpSLessThan %bool %91 %int_10 - OpSelectionMerge %93 None - OpBranchConditional %92 %94 %95 - %94 = OpLabel - OpBranch %93 - %95 = OpLabel - OpBranch %87 - %93 = OpLabel - OpBranch %88 - %88 = OpLabel - %96 = OpAccessChain %_ptr_Function_int %data %91 - %97 = OpLoad %int %96 - %98 = OpAccessChain %_ptr_Function_int %temp %91 - OpStore %98 %97 - %99 = OpIAdd %int %91 %int_1 - OpStore %x_94 %99 - %100 = OpLoad %int %x_94 - OpStore %x_93_phi %100 - OpBranch %86 - %87 = OpLabel + %88 = OpLoad %int %x_93_phi + %89 = OpSLessThan %bool %88 %int_10 + OpSelectionMerge %90 None + OpBranchConditional %89 %91 %92 + %91 = OpLabel + OpBranch %90 + %92 = OpLabel + OpBranch %84 + %90 = OpLabel + OpBranch %85 + %85 = OpLabel + %93 = OpAccessChain %_ptr_Function_int %data %88 + %94 = OpLoad %int %93 + %95 = OpAccessChain %_ptr_Function_int %temp %88 + OpStore %95 %94 + %96 = OpIAdd %int %88 %int_1 + OpStore %x_94 %96 + %97 = OpLoad %int %x_94 + OpStore %x_93_phi %97 + OpBranch %83 + %84 = OpLabel OpStore %x_102_phi %int_1 + OpBranch %98 + %98 = OpLabel + OpLoopMerge %99 %100 None OpBranch %101 %101 = OpLabel - OpLoopMerge %102 %103 None - OpBranch %104 - %104 = OpLabel - %107 = OpLoad %int %x_102_phi - %109 = OpSLessThanEqual %bool %107 %int_9 - OpSelectionMerge %110 None - OpBranchConditional %109 %111 %112 - %111 = OpLabel - OpBranch %110 - %112 = OpLabel - OpBranch %102 - %110 = OpLabel + %104 = OpLoad %int %x_102_phi + %106 = OpSLessThanEqual %bool %104 %int_9 + OpSelectionMerge %107 None + OpBranchConditional %106 %108 %109 + %108 = OpLabel + OpBranch %107 + %109 = OpLabel + OpBranch %99 + %107 = OpLabel OpStore %x_109_phi %int_0 + OpBranch %110 + %110 = OpLabel + OpLoopMerge %111 %112 None OpBranch %113 %113 = OpLabel - OpLoopMerge %114 %115 None - OpBranch %116 - %116 = OpLabel - %125 = OpLoad %int %x_109_phi - %126 = OpSLessThan %bool %125 %int_9 - OpSelectionMerge %127 None - OpBranchConditional %126 %128 %129 - %128 = OpLabel - OpBranch %127 - %129 = OpLabel - OpBranch %114 - %127 = OpLabel - %130 = OpIAdd %int %125 %107 - %131 = OpISub %int %130 %int_1 - %132 = OpIMul %int %int_2 %107 - %133 = OpIAdd %int %125 %132 - %136 = OpISub %int %133 %int_1 - %134 = OpExtInst %int %135 SMin %136 %int_9 - OpStore %x_121_phi %125 - OpStore %x_124_phi %130 - OpStore %x_126_phi %125 + %122 = OpLoad %int %x_109_phi + %123 = OpSLessThan %bool %122 %int_9 + OpSelectionMerge %124 None + OpBranchConditional %123 %125 %126 + %125 = OpLabel + OpBranch %124 + %126 = OpLabel + OpBranch %111 + %124 = OpLabel + %127 = OpIAdd %int %122 %104 + %128 = OpISub %int %127 %int_1 + %129 = OpIMul %int %int_2 %104 + %130 = OpIAdd %int %122 %129 + %133 = OpISub %int %130 %int_1 + %131 = OpExtInst %int %132 SMin %133 %int_9 + OpStore %x_121_phi %122 + OpStore %x_124_phi %127 + OpStore %x_126_phi %122 + OpBranch %134 + %134 = OpLabel + OpLoopMerge %135 %136 None OpBranch %137 %137 = OpLabel - OpLoopMerge %138 %139 None - OpBranch %140 - %140 = OpLabel - %145 = OpLoad %int %x_121_phi - OpStore %x_121 %145 - %146 = OpLoad %int %x_124_phi - %147 = OpLoad %int %x_126_phi - OpStore %x_126 %147 - %148 = OpLoad %int %x_126 - %149 = OpSLessThanEqual %bool %148 %131 - OpSelectionMerge %150 None - OpBranchConditional %149 %151 %150 + %142 = OpLoad %int %x_121_phi + OpStore %x_121 %142 + %143 = OpLoad %int %x_124_phi + %144 = OpLoad %int %x_126_phi + OpStore %x_126 %144 + %145 = OpLoad %int %x_126 + %146 = OpSLessThanEqual %bool %145 %128 + OpSelectionMerge %147 None + OpBranchConditional %146 %148 %147 + %148 = OpLabel + %149 = OpSLessThanEqual %bool %143 %131 + OpBranch %147 + %147 = OpLabel + %150 = OpPhi %bool %146 %137 %149 %148 + OpSelectionMerge %151 None + OpBranchConditional %150 %152 %153 + %152 = OpLabel + OpBranch %151 + %153 = OpLabel + OpBranch %135 %151 = OpLabel - %152 = OpSLessThanEqual %bool %146 %134 - OpBranch %150 - %150 = OpLabel - %153 = OpPhi %bool %149 %140 %152 %151 - OpSelectionMerge %154 None - OpBranchConditional %153 %155 %156 - %155 = OpLabel - OpBranch %154 - %156 = OpLabel - OpBranch %138 - %154 = OpLabel - %157 = OpLoad %int %x_126 - %158 = OpAccessChain %_ptr_Function_int %data %157 - %159 = OpLoad %int %158 - %160 = OpAccessChain %_ptr_Function_int %data %146 - %161 = OpLoad %int %160 - %163 = OpLoad %int %x_121 - %164 = OpCopyObject %int %int_1 - %165 = OpIAdd %int %163 %164 - %162 = OpCopyObject %int %165 - %166 = OpSLessThan %bool %159 %161 - OpSelectionMerge %167 None - OpBranchConditional %166 %168 %169 - %168 = OpLabel - %171 = OpLoad %int %x_126 - %172 = OpCopyObject %int %int_1 - %173 = OpIAdd %int %171 %172 - %170 = OpCopyObject %int %173 - OpStore %x_141 %170 - %174 = OpAccessChain %_ptr_Function_int %data %157 - %175 = OpLoad %int %174 - %176 = OpLoad %int %x_121 - %177 = OpAccessChain %_ptr_Function_int %temp %176 - OpStore %177 %175 - OpStore %x_125_phi %146 - %178 = OpLoad %int %x_141 - OpStore %x_127_phi %178 - OpBranch %167 - %169 = OpLabel - %179 = OpIAdd %int %146 %int_1 - OpStore %x_144 %179 - %180 = OpAccessChain %_ptr_Function_int %data %146 - %181 = OpLoad %int %180 - %182 = OpLoad %int %x_121 - %183 = OpAccessChain %_ptr_Function_int %temp %182 - OpStore %183 %181 - %184 = OpLoad %int %x_144 - OpStore %x_125_phi %184 - %185 = OpLoad %int %x_126 - OpStore %x_127_phi %185 - OpBranch %167 - %167 = OpLabel - %186 = OpLoad %int %x_125_phi - %187 = OpLoad %int %x_127_phi - OpBranch %139 - %139 = OpLabel - OpStore %x_121_phi %162 - OpStore %x_124_phi %186 - OpStore %x_126_phi %187 - OpBranch %137 - %138 = OpLabel - %188 = OpLoad %int %x_121 - OpStore %x_148_phi %188 - %189 = OpLoad %int %x_126 - OpStore %x_151_phi %189 + %154 = OpLoad %int %x_126 + %155 = OpAccessChain %_ptr_Function_int %data %154 + %156 = OpLoad %int %155 + %157 = OpAccessChain %_ptr_Function_int %data %143 + %158 = OpLoad %int %157 + %160 = OpLoad %int %x_121 + %161 = OpCopyObject %int %int_1 + %162 = OpIAdd %int %160 %161 + %159 = OpCopyObject %int %162 + %163 = OpSLessThan %bool %156 %158 + OpSelectionMerge %164 None + OpBranchConditional %163 %165 %166 + %165 = OpLabel + %168 = OpLoad %int %x_126 + %169 = OpCopyObject %int %int_1 + %170 = OpIAdd %int %168 %169 + %167 = OpCopyObject %int %170 + OpStore %x_141 %167 + %171 = OpAccessChain %_ptr_Function_int %data %154 + %172 = OpLoad %int %171 + %173 = OpLoad %int %x_121 + %174 = OpAccessChain %_ptr_Function_int %temp %173 + OpStore %174 %172 + OpStore %x_125_phi %143 + %175 = OpLoad %int %x_141 + OpStore %x_127_phi %175 + OpBranch %164 + %166 = OpLabel + %176 = OpIAdd %int %143 %int_1 + OpStore %x_144 %176 + %177 = OpAccessChain %_ptr_Function_int %data %143 + %178 = OpLoad %int %177 + %179 = OpLoad %int %x_121 + %180 = OpAccessChain %_ptr_Function_int %temp %179 + OpStore %180 %178 + %181 = OpLoad %int %x_144 + OpStore %x_125_phi %181 + %182 = OpLoad %int %x_126 + OpStore %x_127_phi %182 + OpBranch %164 + %164 = OpLabel + %183 = OpLoad %int %x_125_phi + %184 = OpLoad %int %x_127_phi + OpBranch %136 + %136 = OpLabel + OpStore %x_121_phi %159 + OpStore %x_124_phi %183 + OpStore %x_126_phi %184 + OpBranch %134 + %135 = OpLabel + %185 = OpLoad %int %x_121 + OpStore %x_148_phi %185 + %186 = OpLoad %int %x_126 + OpStore %x_151_phi %186 + OpBranch %187 + %187 = OpLabel + OpLoopMerge %188 %189 None OpBranch %190 %190 = OpLabel - OpLoopMerge %191 %192 None - OpBranch %193 - %193 = OpLabel - %196 = OpLoad %int %x_148_phi - %197 = OpLoad %int %x_151_phi - %198 = OpSLessThan %bool %197 %int_10 - OpSelectionMerge %199 None - OpBranchConditional %198 %200 %199 + %193 = OpLoad %int %x_148_phi + %194 = OpLoad %int %x_151_phi + %195 = OpSLessThan %bool %194 %int_10 + OpSelectionMerge %196 None + OpBranchConditional %195 %197 %196 + %197 = OpLabel + %198 = OpSLessThanEqual %bool %194 %128 + OpBranch %196 + %196 = OpLabel + %199 = OpPhi %bool %195 %190 %198 %197 + OpSelectionMerge %200 None + OpBranchConditional %199 %201 %202 + %201 = OpLabel + OpBranch %200 + %202 = OpLabel + OpBranch %188 %200 = OpLabel - %201 = OpSLessThanEqual %bool %197 %131 - OpBranch %199 - %199 = OpLabel - %202 = OpPhi %bool %198 %193 %201 %200 - OpSelectionMerge %203 None - OpBranchConditional %202 %204 %205 - %204 = OpLabel - OpBranch %203 - %205 = OpLabel - OpBranch %191 - %203 = OpLabel - OpBranch %192 - %192 = OpLabel - %206 = OpIAdd %int %196 %int_1 - OpStore %x_149 %206 - %207 = OpIAdd %int %197 %int_1 - OpStore %x_152 %207 - %208 = OpAccessChain %_ptr_Function_int %data %197 - %209 = OpLoad %int %208 - %210 = OpAccessChain %_ptr_Function_int %temp %196 - OpStore %210 %209 - %211 = OpLoad %int %x_149 - OpStore %x_148_phi %211 - %212 = OpLoad %int %x_152 - OpStore %x_151_phi %212 - OpBranch %190 - %191 = OpLabel - OpStore %x_161_phi %125 + OpBranch %189 + %189 = OpLabel + %203 = OpIAdd %int %193 %int_1 + OpStore %x_149 %203 + %204 = OpIAdd %int %194 %int_1 + OpStore %x_152 %204 + %205 = OpAccessChain %_ptr_Function_int %data %194 + %206 = OpLoad %int %205 + %207 = OpAccessChain %_ptr_Function_int %temp %193 + OpStore %207 %206 + %208 = OpLoad %int %x_149 + OpStore %x_148_phi %208 + %209 = OpLoad %int %x_152 + OpStore %x_151_phi %209 + OpBranch %187 + %188 = OpLabel + OpStore %x_161_phi %122 + OpBranch %210 + %210 = OpLabel + OpLoopMerge %211 %212 None OpBranch %213 %213 = OpLabel - OpLoopMerge %214 %215 None - OpBranch %216 - %216 = OpLabel - %218 = OpLoad %int %x_161_phi - %219 = OpSLessThanEqual %bool %218 %134 - OpSelectionMerge %220 None - OpBranchConditional %219 %221 %222 - %221 = OpLabel - OpBranch %220 - %222 = OpLabel - OpBranch %214 - %220 = OpLabel - OpBranch %215 - %215 = OpLabel - %223 = OpAccessChain %_ptr_Function_int %temp %218 - %224 = OpLoad %int %223 - %225 = OpAccessChain %_ptr_Function_int %data %218 - OpStore %225 %224 - %226 = OpIAdd %int %218 %int_1 - OpStore %x_162 %226 - %227 = OpLoad %int %x_162 - OpStore %x_161_phi %227 - OpBranch %213 - %214 = OpLabel - OpBranch %115 - %115 = OpLabel - OpStore %x_109_phi %133 - OpBranch %113 - %114 = OpLabel - OpBranch %103 - %103 = OpLabel - %228 = OpIMul %int %int_2 %107 - OpStore %x_103 %228 - %229 = OpLoad %int %x_103 - OpStore %x_102_phi %229 - OpBranch %101 - %102 = OpLabel - %236 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %237 = OpLoad %float %236 - %238 = OpConvertFToS %int %237 - OpStore %x_171 %238 - %239 = OpLoad %int %x_171 - %241 = OpSLessThan %bool %239 %int_30 - OpSelectionMerge %242 None - OpBranchConditional %241 %243 %244 - %243 = OpLabel - %245 = OpAccessChain %_ptr_Function_int %data %int_0 - %246 = OpLoad %int %245 - %248 = OpConvertSToF %float %246 - %250 = OpFMul %float %248 %float_0_100000001 - %251 = OpFAdd %float %float_0_5 %250 - OpStore %x_180 %251 - %252 = OpLoad %float %x_180 - OpStore %x_280_phi %252 - OpBranch %242 - %244 = OpLabel - %256 = OpLoad %int %x_171 - %258 = OpSLessThan %bool %256 %int_60 - OpSelectionMerge %259 None - OpBranchConditional %258 %260 %261 - %260 = OpLabel - %262 = OpAccessChain %_ptr_Function_int %data %int_1 - %263 = OpLoad %int %262 - %264 = OpConvertSToF %float %263 - %265 = OpFMul %float %264 %float_0_100000001 - %266 = OpFAdd %float %float_0_5 %265 - OpStore %x_189 %266 - %267 = OpLoad %float %x_189 - OpStore %x_279_phi %267 - OpBranch %259 - %261 = OpLabel - %271 = OpLoad %int %x_171 - %273 = OpSLessThan %bool %271 %int_90 - OpSelectionMerge %274 None - OpBranchConditional %273 %275 %276 - %275 = OpLabel - %277 = OpAccessChain %_ptr_Function_int %data %int_2 - %278 = OpLoad %int %277 - %279 = OpConvertSToF %float %278 - %280 = OpFMul %float %279 %float_0_100000001 - %281 = OpFAdd %float %float_0_5 %280 - OpStore %x_198 %281 - %282 = OpLoad %float %x_198 - OpStore %x_278_phi %282 - OpBranch %274 - %276 = OpLabel - %283 = OpLoad %int %x_171 - %285 = OpSLessThan %bool %283 %int_120 - OpSelectionMerge %286 None - OpBranchConditional %285 %287 %288 - %287 = OpLabel - %289 = OpAccessChain %_ptr_Function_int %data %int_3 - %290 = OpLoad %int %289 - %291 = OpConvertSToF %float %290 - %292 = OpFMul %float %291 %float_0_100000001 - %293 = OpFAdd %float %float_0_5 %292 - OpStore %x_207 %293 - %294 = OpLoad %float %x_207 - OpStore %x_277_phi %294 - OpBranch %286 - %288 = OpLabel - %302 = OpLoad %int %x_171 - %304 = OpSLessThan %bool %302 %int_150 - OpSelectionMerge %305 None - OpBranchConditional %304 %306 %307 - %306 = OpLabel + %215 = OpLoad %int %x_161_phi + %216 = OpSLessThanEqual %bool %215 %131 + OpSelectionMerge %217 None + OpBranchConditional %216 %218 %219 + %218 = OpLabel + OpBranch %217 + %219 = OpLabel + OpBranch %211 + %217 = OpLabel + OpBranch %212 + %212 = OpLabel + %220 = OpAccessChain %_ptr_Function_int %temp %215 + %221 = OpLoad %int %220 + %222 = OpAccessChain %_ptr_Function_int %data %215 + OpStore %222 %221 + %223 = OpIAdd %int %215 %int_1 + OpStore %x_162 %223 + %224 = OpLoad %int %x_162 + OpStore %x_161_phi %224 + OpBranch %210 + %211 = OpLabel + OpBranch %112 + %112 = OpLabel + OpStore %x_109_phi %130 + OpBranch %110 + %111 = OpLabel + OpBranch %100 + %100 = OpLabel + %225 = OpIMul %int %int_2 %104 + OpStore %x_103 %225 + %226 = OpLoad %int %x_103 + OpStore %x_102_phi %226 + OpBranch %98 + %99 = OpLabel + %233 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %234 = OpLoad %float %233 + %235 = OpConvertFToS %int %234 + OpStore %x_171 %235 + %236 = OpLoad %int %x_171 + %238 = OpSLessThan %bool %236 %int_30 + OpSelectionMerge %239 None + OpBranchConditional %238 %240 %241 + %240 = OpLabel + %242 = OpAccessChain %_ptr_Function_int %data %int_0 + %243 = OpLoad %int %242 + %245 = OpConvertSToF %float %243 + %247 = OpFMul %float %245 %float_0_100000001 + %248 = OpFAdd %float %float_0_5 %247 + OpStore %x_180 %248 + %249 = OpLoad %float %x_180 + OpStore %x_280_phi %249 + OpBranch %239 + %241 = OpLabel + %253 = OpLoad %int %x_171 + %255 = OpSLessThan %bool %253 %int_60 + OpSelectionMerge %256 None + OpBranchConditional %255 %257 %258 + %257 = OpLabel + %259 = OpAccessChain %_ptr_Function_int %data %int_1 + %260 = OpLoad %int %259 + %261 = OpConvertSToF %float %260 + %262 = OpFMul %float %261 %float_0_100000001 + %263 = OpFAdd %float %float_0_5 %262 + OpStore %x_189 %263 + %264 = OpLoad %float %x_189 + OpStore %x_279_phi %264 + OpBranch %256 + %258 = OpLabel + %268 = OpLoad %int %x_171 + %270 = OpSLessThan %bool %268 %int_90 + OpSelectionMerge %271 None + OpBranchConditional %270 %272 %273 + %272 = OpLabel + %274 = OpAccessChain %_ptr_Function_int %data %int_2 + %275 = OpLoad %int %274 + %276 = OpConvertSToF %float %275 + %277 = OpFMul %float %276 %float_0_100000001 + %278 = OpFAdd %float %float_0_5 %277 + OpStore %x_198 %278 + %279 = OpLoad %float %x_198 + OpStore %x_278_phi %279 + OpBranch %271 + %273 = OpLabel + %280 = OpLoad %int %x_171 + %282 = OpSLessThan %bool %280 %int_120 + OpSelectionMerge %283 None + OpBranchConditional %282 %284 %285 + %284 = OpLabel + %286 = OpAccessChain %_ptr_Function_int %data %int_3 + %287 = OpLoad %int %286 + %288 = OpConvertSToF %float %287 + %289 = OpFMul %float %288 %float_0_100000001 + %290 = OpFAdd %float %float_0_5 %289 + OpStore %x_207 %290 + %291 = OpLoad %float %x_207 + OpStore %x_277_phi %291 + OpBranch %283 + %285 = OpLabel + %299 = OpLoad %int %x_171 + %301 = OpSLessThan %bool %299 %int_150 + OpSelectionMerge %302 None + OpBranchConditional %301 %303 %304 + %303 = OpLabel OpKill - %307 = OpLabel - %311 = OpLoad %int %x_171 - %313 = OpSLessThan %bool %311 %int_180 - OpSelectionMerge %314 None - OpBranchConditional %313 %315 %316 - %315 = OpLabel - %318 = OpAccessChain %_ptr_Function_int %data %int_5 - %319 = OpLoad %int %318 - %320 = OpConvertSToF %float %319 - %321 = OpFMul %float %320 %float_0_100000001 - %322 = OpFAdd %float %float_0_5 %321 - OpStore %x_220 %322 - %323 = OpLoad %float %x_220 - OpStore %x_249_phi %323 - OpBranch %314 - %316 = OpLabel - %327 = OpLoad %int %x_171 - %329 = OpSLessThan %bool %327 %int_210 - OpSelectionMerge %330 None - OpBranchConditional %329 %331 %332 - %331 = OpLabel - %334 = OpAccessChain %_ptr_Function_int %data %int_6 - %335 = OpLoad %int %334 - %336 = OpConvertSToF %float %335 - %337 = OpFMul %float %336 %float_0_100000001 - %338 = OpFAdd %float %float_0_5 %337 - OpStore %x_229 %338 - %339 = OpLoad %float %x_229 - OpStore %x_248_phi %339 - OpBranch %330 - %332 = OpLabel - %340 = OpLoad %int %x_171 - %342 = OpSLessThan %bool %340 %int_240 - OpSelectionMerge %343 None - OpBranchConditional %342 %344 %345 - %344 = OpLabel - %347 = OpAccessChain %_ptr_Function_int %data %int_7 - %348 = OpLoad %int %347 - %349 = OpConvertSToF %float %348 - %350 = OpFMul %float %349 %float_0_100000001 - %351 = OpFAdd %float %float_0_5 %350 - OpStore %x_238 %351 - %352 = OpLoad %float %x_238 - OpStore %x_247_phi %352 - OpBranch %343 - %345 = OpLabel - %353 = OpLoad %int %x_171 - %355 = OpSLessThan %bool %353 %int_270 - OpSelectionMerge %356 None - OpBranchConditional %355 %357 %358 - %357 = OpLabel - OpBranch %356 - %358 = OpLabel + %304 = OpLabel + %308 = OpLoad %int %x_171 + %310 = OpSLessThan %bool %308 %int_180 + OpSelectionMerge %311 None + OpBranchConditional %310 %312 %313 + %312 = OpLabel + %315 = OpAccessChain %_ptr_Function_int %data %int_5 + %316 = OpLoad %int %315 + %317 = OpConvertSToF %float %316 + %318 = OpFMul %float %317 %float_0_100000001 + %319 = OpFAdd %float %float_0_5 %318 + OpStore %x_220 %319 + %320 = OpLoad %float %x_220 + OpStore %x_249_phi %320 + OpBranch %311 + %313 = OpLabel + %324 = OpLoad %int %x_171 + %326 = OpSLessThan %bool %324 %int_210 + OpSelectionMerge %327 None + OpBranchConditional %326 %328 %329 + %328 = OpLabel + %331 = OpAccessChain %_ptr_Function_int %data %int_6 + %332 = OpLoad %int %331 + %333 = OpConvertSToF %float %332 + %334 = OpFMul %float %333 %float_0_100000001 + %335 = OpFAdd %float %float_0_5 %334 + OpStore %x_229 %335 + %336 = OpLoad %float %x_229 + OpStore %x_248_phi %336 + OpBranch %327 + %329 = OpLabel + %337 = OpLoad %int %x_171 + %339 = OpSLessThan %bool %337 %int_240 + OpSelectionMerge %340 None + OpBranchConditional %339 %341 %342 + %341 = OpLabel + %344 = OpAccessChain %_ptr_Function_int %data %int_7 + %345 = OpLoad %int %344 + %346 = OpConvertSToF %float %345 + %347 = OpFMul %float %346 %float_0_100000001 + %348 = OpFAdd %float %float_0_5 %347 + OpStore %x_238 %348 + %349 = OpLoad %float %x_238 + OpStore %x_247_phi %349 + OpBranch %340 + %342 = OpLabel + %350 = OpLoad %int %x_171 + %352 = OpSLessThan %bool %350 %int_270 + OpSelectionMerge %353 None + OpBranchConditional %352 %354 %355 + %354 = OpLabel + OpBranch %353 + %355 = OpLabel OpKill - %356 = OpLabel - %360 = OpAccessChain %_ptr_Function_int %data %int_8 - %361 = OpLoad %int %360 - %362 = OpConvertSToF %float %361 - %363 = OpFMul %float %362 %float_0_100000001 - %364 = OpFAdd %float %float_0_5 %363 - OpStore %x_246 %364 - %365 = OpLoad %float %x_246 - OpStore %x_247_phi %365 - OpBranch %343 - %343 = OpLabel - %366 = OpLoad %float %x_247_phi - OpStore %x_247 %366 - %367 = OpLoad %float %x_247 - OpStore %x_248_phi %367 - OpBranch %330 - %330 = OpLabel - %368 = OpLoad %float %x_248_phi - OpStore %x_248 %368 - %369 = OpLoad %float %x_248 - OpStore %x_249_phi %369 - OpBranch %314 - %314 = OpLabel - %370 = OpLoad %float %x_249_phi - OpStore %x_249 %370 - %371 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_1 - %372 = OpLoad %float %371 - %373 = OpFOrdGreaterThan %bool %40 %372 - OpSelectionMerge %374 None - OpBranchConditional %373 %375 %374 - %375 = OpLabel - OpStore %x_GLF_color %377 - OpBranch %374 - %374 = OpLabel - OpStore %x_256_phi %378 + %353 = OpLabel + %357 = OpAccessChain %_ptr_Function_int %data %int_8 + %358 = OpLoad %int %357 + %359 = OpConvertSToF %float %358 + %360 = OpFMul %float %359 %float_0_100000001 + %361 = OpFAdd %float %float_0_5 %360 + OpStore %x_246 %361 + %362 = OpLoad %float %x_246 + OpStore %x_247_phi %362 + OpBranch %340 + %340 = OpLabel + %363 = OpLoad %float %x_247_phi + OpStore %x_247 %363 + %364 = OpLoad %float %x_247 + OpStore %x_248_phi %364 + OpBranch %327 + %327 = OpLabel + %365 = OpLoad %float %x_248_phi + OpStore %x_248 %365 + %366 = OpLoad %float %x_248 + OpStore %x_249_phi %366 + OpBranch %311 + %311 = OpLabel + %367 = OpLoad %float %x_249_phi + OpStore %x_249 %367 + %368 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_1 + %369 = OpLoad %float %368 + %370 = OpFOrdGreaterThan %bool %40 %369 + OpSelectionMerge %371 None + OpBranchConditional %370 %372 %371 + %372 = OpLabel + OpStore %x_GLF_color %374 + OpBranch %371 + %371 = OpLabel + OpStore %x_256_phi %375 OpStore %x_259_phi %int_0 + OpBranch %376 + %376 = OpLabel + OpLoopMerge %377 %378 None OpBranch %379 %379 = OpLabel - OpLoopMerge %380 %381 None - OpBranch %382 - %382 = OpLabel - %386 = OpLoad %v2float %x_256_phi - %387 = OpLoad %int %x_259_phi - %389 = OpSLessThanEqual %bool %387 %int_32 - OpSelectionMerge %390 None - OpBranchConditional %389 %391 %392 - %391 = OpLabel - OpBranch %390 - %392 = OpLabel - OpBranch %380 - %390 = OpLabel - OpStore %x_273_phi %386 - %393 = OpCompositeExtract %float %386 0 - %395 = OpFOrdLessThan %bool %393 %float_0 - OpSelectionMerge %396 None - OpBranchConditional %395 %397 %396 - %397 = OpLabel - OpSelectionMerge %398 None - OpBranchConditional %373 %399 %398 - %399 = OpLabel - OpKill - %398 = OpLabel - OpStore %x_272 %386 - %400 = OpAccessChain %_ptr_Function_float %x_272 %uint_1 - %401 = OpCompositeExtract %float %386 1 - %402 = OpFAdd %float %401 %float_1 - OpStore %400 %402 - %403 = OpLoad %v2float %x_272 - OpStore %x_273_phi %403 - OpBranch %396 + %383 = OpLoad %v2float %x_256_phi + %384 = OpLoad %int %x_259_phi + %386 = OpSLessThanEqual %bool %384 %int_32 + OpSelectionMerge %387 None + OpBranchConditional %386 %388 %389 + %388 = OpLabel + OpBranch %387 + %389 = OpLabel + OpBranch %377 + %387 = OpLabel + OpStore %x_273_phi %383 + %390 = OpCompositeExtract %float %383 0 + %392 = OpFOrdLessThan %bool %390 %float_0 + OpSelectionMerge %393 None + OpBranchConditional %392 %394 %393 + %394 = OpLabel + OpSelectionMerge %395 None + OpBranchConditional %370 %396 %395 %396 = OpLabel - %404 = OpLoad %v2float %x_273_phi - OpStore %x_257_1 %404 - %406 = OpAccessChain %_ptr_Function_float %x_257_1 %uint_0 - %407 = OpCompositeExtract %float %404 0 - %408 = OpCompositeExtract %float %404 1 - %409 = OpFAdd %float %407 %408 - OpStore %406 %409 - %410 = OpLoad %v2float %x_257_1 - OpBranch %381 - %381 = OpLabel - %411 = OpIAdd %int %387 %int_1 - OpStore %x_260 %411 - OpStore %x_256_phi %410 - %412 = OpLoad %int %x_260 - OpStore %x_259_phi %412 - OpBranch %379 - %380 = OpLabel - OpBranch %305 - %305 = OpLabel - %413 = OpLoad %float %x_249 - OpStore %x_277_phi %413 - OpBranch %286 - %286 = OpLabel - %414 = OpLoad %float %x_277_phi - OpStore %x_277 %414 - %415 = OpLoad %float %x_277 - OpStore %x_278_phi %415 - OpBranch %274 - %274 = OpLabel - %416 = OpLoad %float %x_278_phi - OpStore %x_278 %416 - %417 = OpLoad %float %x_278 - OpStore %x_279_phi %417 - OpBranch %259 - %259 = OpLabel - %418 = OpLoad %float %x_279_phi - OpStore %x_279 %418 - %419 = OpLoad %float %x_279 - OpStore %x_280_phi %419 - OpBranch %242 - %242 = OpLabel - %420 = OpLoad %float %x_280_phi - %421 = OpCompositeConstruct %v4float %420 %420 %420 %float_1 - OpStore %x_GLF_color %421 + OpKill + %395 = OpLabel + OpStore %x_272 %383 + %397 = OpAccessChain %_ptr_Function_float %x_272 %uint_1 + %398 = OpCompositeExtract %float %383 1 + %399 = OpFAdd %float %398 %float_1 + OpStore %397 %399 + %400 = OpLoad %v2float %x_272 + OpStore %x_273_phi %400 + OpBranch %393 + %393 = OpLabel + %401 = OpLoad %v2float %x_273_phi + OpStore %x_257_1 %401 + %403 = OpAccessChain %_ptr_Function_float %x_257_1 %uint_0 + %404 = OpCompositeExtract %float %401 0 + %405 = OpCompositeExtract %float %401 1 + %406 = OpFAdd %float %404 %405 + OpStore %403 %406 + %407 = OpLoad %v2float %x_257_1 + OpBranch %378 + %378 = OpLabel + %408 = OpIAdd %int %384 %int_1 + OpStore %x_260 %408 + OpStore %x_256_phi %407 + %409 = OpLoad %int %x_260 + OpStore %x_259_phi %409 + OpBranch %376 + %377 = OpLabel + OpBranch %302 + %302 = OpLabel + %410 = OpLoad %float %x_249 + OpStore %x_277_phi %410 + OpBranch %283 + %283 = OpLabel + %411 = OpLoad %float %x_277_phi + OpStore %x_277 %411 + %412 = OpLoad %float %x_277 + OpStore %x_278_phi %412 + OpBranch %271 + %271 = OpLabel + %413 = OpLoad %float %x_278_phi + OpStore %x_278 %413 + %414 = OpLoad %float %x_278 + OpStore %x_279_phi %414 + OpBranch %256 + %256 = OpLabel + %415 = OpLoad %float %x_279_phi + OpStore %x_279 %415 + %416 = OpLoad %float %x_279 + OpStore %x_280_phi %416 + OpBranch %239 + %239 = OpLabel + %417 = OpLoad %float %x_280_phi + %418 = OpCompositeConstruct %v4float %417 %417 %417 %float_1 + OpStore %x_GLF_color %418 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %422 +%tint_symbol_3 = OpFunction %void None %419 %tint_symbol_1 = OpFunctionParameter %main_out - %426 = OpLabel - %427 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %427 + %423 = OpLabel + %424 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %424 OpReturn OpFunctionEnd %main = OpFunction %void None %15 - %429 = OpLabel - %430 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %430 - %431 = OpFunctionCall %void %main_1 - %433 = OpLoad %v4float %x_GLF_color - %434 = OpCompositeConstruct %main_out %433 - %432 = OpFunctionCall %void %tint_symbol_3 %434 + %426 = OpLabel + %427 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %427 + %428 = OpFunctionCall %void %main_1 + %430 = OpLoad %v4float %x_GLF_color + %431 = OpCompositeConstruct %main_out %430 + %429 = OpFunctionCall %void %tint_symbol_3 %431 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 44[%44] is not post dominated by the back-edge block 83[%83] - %83 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.spvasm index 6b57991b3c..32f00d9229 100644 --- a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.spvasm @@ -1,12 +1,10 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 429 +; Bound: 422 ; Schema: 0 OpCapability Shader - %177 = OpExtInstImport "GLSL.std.450" + %173 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2 OpExecutionMode %main OriginUpperLeft @@ -87,12 +85,12 @@ SKIP: FAILED %bool = OpTypeBool %_ptr_Private_int = OpTypePointer Private %int %int_10 = OpConstant %int 10 - %132 = OpTypeFunction %void + %128 = OpTypeFunction %void %int_0 = OpConstant %int 0 %int_9 = OpConstant %int 9 %int_2 = OpConstant %int 2 %_ptr_Function_float = OpTypePointer Function %float - %201 = OpConstantNull %float + %197 = OpConstantNull %float %uint_0 = OpConstant %uint 0 %_ptr_Uniform_float = OpTypePointer Uniform %float %int_n5 = OpConstant %int -5 @@ -122,7 +120,7 @@ SKIP: FAILED %v3float = OpTypeVector %float 3 %float_1 = OpConstant %float 1 %main_out = OpTypeStruct %v4float - %416 = OpTypeFunction %void %main_out + %409 = OpTypeFunction %void %main_out %merge_i1_i1_i1_ = OpFunction %void None %23 %from = OpFunctionParameter %_ptr_Function_int %mid = OpFunctionParameter %_ptr_Function_int @@ -149,129 +147,119 @@ SKIP: FAILED %51 = OpLoad %int %j %53 = OpLoad %int %to %54 = OpSLessThanEqual %bool %48 %50 - OpSelectionMerge %56 None - OpBranchConditional %54 %57 %56 - %57 = OpLabel - %58 = OpSLessThanEqual %bool %51 %53 - OpBranch %56 - %56 = OpLabel - %59 = OpPhi %bool %54 %47 %58 %57 - OpSelectionMerge %60 None - OpBranchConditional %59 %61 %62 - %61 = OpLabel - OpBranch %60 - %62 = OpLabel - OpBranch %45 + %56 = OpSLessThanEqual %bool %51 %53 + %57 = OpLogicalAnd %bool %54 %56 + OpSelectionMerge %58 None + OpBranchConditional %57 %59 %60 + %59 = OpLabel + OpBranch %58 %60 = OpLabel - %63 = OpLoad %int %i - %65 = OpAccessChain %_ptr_Private_int %data %63 - %66 = OpLoad %int %65 - %67 = OpLoad %int %j - %68 = OpAccessChain %_ptr_Private_int %data %67 - %69 = OpLoad %int %68 - %70 = OpSLessThan %bool %66 %69 - OpSelectionMerge %71 None - OpBranchConditional %70 %72 %73 - %72 = OpLabel - %74 = OpLoad %int %k + OpBranch %45 + %58 = OpLabel + %61 = OpLoad %int %i + %63 = OpAccessChain %_ptr_Private_int %data %61 + %64 = OpLoad %int %63 + %65 = OpLoad %int %j + %66 = OpAccessChain %_ptr_Private_int %data %65 + %67 = OpLoad %int %66 + %68 = OpSLessThan %bool %64 %67 + OpSelectionMerge %69 None + OpBranchConditional %68 %70 %71 + %70 = OpLabel + %72 = OpLoad %int %k + %73 = OpIAdd %int %72 %int_1 + OpStore %k %73 + %74 = OpLoad %int %i %75 = OpIAdd %int %74 %int_1 - OpStore %k %75 - %76 = OpLoad %int %i - %77 = OpIAdd %int %76 %int_1 - OpStore %i %77 - %78 = OpAccessChain %_ptr_Private_int %data %76 - %79 = OpLoad %int %78 - %80 = OpAccessChain %_ptr_Private_int %temp %74 - OpStore %80 %79 - OpBranch %71 - %73 = OpLabel - %81 = OpLoad %int %k - %82 = OpIAdd %int %81 %int_1 - OpStore %k %82 - %83 = OpLoad %int %j - %84 = OpIAdd %int %83 %int_1 - OpStore %j %84 - %85 = OpAccessChain %_ptr_Private_int %data %83 - %86 = OpLoad %int %85 - %87 = OpAccessChain %_ptr_Private_int %temp %81 - OpStore %87 %86 - OpBranch %71 + OpStore %i %75 + %76 = OpAccessChain %_ptr_Private_int %data %74 + %77 = OpLoad %int %76 + %78 = OpAccessChain %_ptr_Private_int %temp %72 + OpStore %78 %77 + OpBranch %69 %71 = OpLabel + %79 = OpLoad %int %k + %80 = OpIAdd %int %79 %int_1 + OpStore %k %80 + %81 = OpLoad %int %j + %82 = OpIAdd %int %81 %int_1 + OpStore %j %82 + %83 = OpAccessChain %_ptr_Private_int %data %81 + %84 = OpLoad %int %83 + %85 = OpAccessChain %_ptr_Private_int %temp %79 + OpStore %85 %84 + OpBranch %69 + %69 = OpLabel OpBranch %46 %46 = OpLabel OpBranch %44 %45 = OpLabel + OpBranch %86 + %86 = OpLabel + OpLoopMerge %87 %88 None + OpBranch %89 + %89 = OpLabel + %90 = OpLoad %int %i + %91 = OpLoad %int %i + %93 = OpLoad %int %mid + %95 = OpSLessThan %bool %90 %int_10 + %96 = OpSLessThanEqual %bool %91 %93 + %97 = OpLogicalAnd %bool %95 %96 + OpSelectionMerge %98 None + OpBranchConditional %97 %99 %100 + %99 = OpLabel + OpBranch %98 + %100 = OpLabel + OpBranch %87 + %98 = OpLabel + %101 = OpLoad %int %k + %102 = OpIAdd %int %101 %int_1 + OpStore %k %102 + %103 = OpLoad %int %i + %104 = OpIAdd %int %103 %int_1 + OpStore %i %104 + %105 = OpAccessChain %_ptr_Private_int %data %103 + %106 = OpLoad %int %105 + %107 = OpAccessChain %_ptr_Private_int %temp %101 + OpStore %107 %106 OpBranch %88 %88 = OpLabel - OpLoopMerge %89 %90 None - OpBranch %91 - %91 = OpLabel - %92 = OpLoad %int %i - %93 = OpLoad %int %i - %95 = OpLoad %int %mid - %97 = OpSLessThan %bool %92 %int_10 - OpSelectionMerge %98 None - OpBranchConditional %97 %99 %98 - %99 = OpLabel - %100 = OpSLessThanEqual %bool %93 %95 - OpBranch %98 - %98 = OpLabel - %101 = OpPhi %bool %97 %91 %100 %99 - OpSelectionMerge %102 None - OpBranchConditional %101 %103 %104 - %103 = OpLabel - OpBranch %102 - %104 = OpLabel - OpBranch %89 - %102 = OpLabel - %105 = OpLoad %int %k - %106 = OpIAdd %int %105 %int_1 - OpStore %k %106 - %107 = OpLoad %int %i - %108 = OpIAdd %int %107 %int_1 - OpStore %i %108 - %109 = OpAccessChain %_ptr_Private_int %data %107 - %110 = OpLoad %int %109 - %111 = OpAccessChain %_ptr_Private_int %temp %105 - OpStore %111 %110 - OpBranch %90 - %90 = OpLabel - OpBranch %88 - %89 = OpLabel - %113 = OpLoad %int %from - OpStore %i_1 %113 - OpBranch %114 - %114 = OpLabel - OpLoopMerge %115 %116 None - OpBranch %117 - %117 = OpLabel - %118 = OpLoad %int %i_1 - %120 = OpLoad %int %to - %121 = OpSLessThanEqual %bool %118 %120 - OpSelectionMerge %122 None - OpBranchConditional %121 %123 %124 - %123 = OpLabel - OpBranch %122 - %124 = OpLabel - OpBranch %115 - %122 = OpLabel - %125 = OpLoad %int %i_1 + OpBranch %86 + %87 = OpLabel + %109 = OpLoad %int %from + OpStore %i_1 %109 + OpBranch %110 + %110 = OpLabel + OpLoopMerge %111 %112 None + OpBranch %113 + %113 = OpLabel + %114 = OpLoad %int %i_1 + %116 = OpLoad %int %to + %117 = OpSLessThanEqual %bool %114 %116 + OpSelectionMerge %118 None + OpBranchConditional %117 %119 %120 + %119 = OpLabel + OpBranch %118 + %120 = OpLabel + OpBranch %111 + %118 = OpLabel + %121 = OpLoad %int %i_1 + %122 = OpLoad %int %i_1 + %123 = OpAccessChain %_ptr_Private_int %temp %122 + %124 = OpLoad %int %123 + %125 = OpAccessChain %_ptr_Private_int %data %121 + OpStore %125 %124 + OpBranch %112 + %112 = OpLabel %126 = OpLoad %int %i_1 - %127 = OpAccessChain %_ptr_Private_int %temp %126 - %128 = OpLoad %int %127 - %129 = OpAccessChain %_ptr_Private_int %data %125 - OpStore %129 %128 - OpBranch %116 - %116 = OpLabel - %130 = OpLoad %int %i_1 - %131 = OpIAdd %int %130 %int_1 - OpStore %i_1 %131 - OpBranch %114 - %115 = OpLabel + %127 = OpIAdd %int %126 %int_1 + OpStore %i_1 %127 + OpBranch %110 + %111 = OpLabel OpReturn OpFunctionEnd - %mergeSort_ = OpFunction %void None %132 - %134 = OpLabel + %mergeSort_ = OpFunction %void None %128 + %130 = OpLabel %low = OpVariable %_ptr_Function_int Function %32 %high = OpVariable %_ptr_Function_int Function %32 %m = OpVariable %_ptr_Function_int Function %32 @@ -285,389 +273,379 @@ SKIP: FAILED OpStore %low %int_0 OpStore %high %int_9 OpStore %m %int_1 - OpBranch %147 - %147 = OpLabel - OpLoopMerge %148 %149 None + OpBranch %143 + %143 = OpLabel + OpLoopMerge %144 %145 None + OpBranch %146 + %146 = OpLabel + %147 = OpLoad %int %m + %148 = OpLoad %int %high + %149 = OpSLessThanEqual %bool %147 %148 + OpSelectionMerge %150 None + OpBranchConditional %149 %151 %152 + %151 = OpLabel OpBranch %150 + %152 = OpLabel + OpBranch %144 %150 = OpLabel - %151 = OpLoad %int %m - %152 = OpLoad %int %high - %153 = OpSLessThanEqual %bool %151 %152 - OpSelectionMerge %154 None - OpBranchConditional %153 %155 %156 - %155 = OpLabel + %153 = OpLoad %int %low + OpStore %i_2 %153 OpBranch %154 - %156 = OpLabel - OpBranch %148 %154 = OpLabel - %157 = OpLoad %int %low - OpStore %i_2 %157 - OpBranch %158 - %158 = OpLabel - OpLoopMerge %159 %160 None + OpLoopMerge %155 %156 None + OpBranch %157 + %157 = OpLabel + %158 = OpLoad %int %i_2 + %159 = OpLoad %int %high + %160 = OpSLessThan %bool %158 %159 + OpSelectionMerge %161 None + OpBranchConditional %160 %162 %163 + %162 = OpLabel OpBranch %161 + %163 = OpLabel + OpBranch %155 %161 = OpLabel - %162 = OpLoad %int %i_2 - %163 = OpLoad %int %high - %164 = OpSLessThan %bool %162 %163 - OpSelectionMerge %165 None - OpBranchConditional %164 %166 %167 - %166 = OpLabel - OpBranch %165 - %167 = OpLabel - OpBranch %159 - %165 = OpLabel - %168 = OpLoad %int %i_2 - OpStore %from_1 %168 + %164 = OpLoad %int %i_2 + OpStore %from_1 %164 + %165 = OpLoad %int %i_2 + %166 = OpLoad %int %m + %167 = OpIAdd %int %165 %166 + %168 = OpISub %int %167 %int_1 + OpStore %mid_1 %168 %169 = OpLoad %int %i_2 %170 = OpLoad %int %m - %171 = OpIAdd %int %169 %170 - %172 = OpISub %int %171 %int_1 - OpStore %mid_1 %172 - %173 = OpLoad %int %i_2 - %174 = OpLoad %int %m - %175 = OpLoad %int %high - %179 = OpIMul %int %int_2 %174 - %180 = OpIAdd %int %173 %179 - %181 = OpISub %int %180 %int_1 - %176 = OpExtInst %int %177 SMin %181 %175 - OpStore %to_1 %176 - %182 = OpLoad %int %from_1 - OpStore %param %182 - %183 = OpLoad %int %mid_1 - OpStore %param_1 %183 - %184 = OpLoad %int %to_1 - OpStore %param_2 %184 - %185 = OpFunctionCall %void %merge_i1_i1_i1_ %param %param_1 %param_2 - OpBranch %160 - %160 = OpLabel + %171 = OpLoad %int %high + %175 = OpIMul %int %int_2 %170 + %176 = OpIAdd %int %169 %175 + %177 = OpISub %int %176 %int_1 + %172 = OpExtInst %int %173 SMin %177 %171 + OpStore %to_1 %172 + %178 = OpLoad %int %from_1 + OpStore %param %178 + %179 = OpLoad %int %mid_1 + OpStore %param_1 %179 + %180 = OpLoad %int %to_1 + OpStore %param_2 %180 + %181 = OpFunctionCall %void %merge_i1_i1_i1_ %param %param_1 %param_2 + OpBranch %156 + %156 = OpLabel + %185 = OpLoad %int %m + %186 = OpLoad %int %i_2 + %187 = OpIMul %int %int_2 %185 + %188 = OpIAdd %int %186 %187 + OpStore %i_2 %188 + OpBranch %154 + %155 = OpLabel + OpBranch %145 + %145 = OpLabel %189 = OpLoad %int %m - %190 = OpLoad %int %i_2 - %191 = OpIMul %int %int_2 %189 - %192 = OpIAdd %int %190 %191 - OpStore %i_2 %192 - OpBranch %158 - %159 = OpLabel - OpBranch %149 - %149 = OpLabel - %193 = OpLoad %int %m - %194 = OpIMul %int %int_2 %193 - OpStore %m %194 - OpBranch %147 - %148 = OpLabel + %190 = OpIMul %int %int_2 %189 + OpStore %m %190 + OpBranch %143 + %144 = OpLabel OpReturn OpFunctionEnd - %main_1 = OpFunction %void None %132 - %196 = OpLabel + %main_1 = OpFunction %void None %128 + %192 = OpLabel %i_3 = OpVariable %_ptr_Function_int Function %32 %j_1 = OpVariable %_ptr_Function_int Function %32 - %grey = OpVariable %_ptr_Function_float Function %201 + %grey = OpVariable %_ptr_Function_float Function %197 %int_i = OpVariable %_ptr_Function_int Function %32 - %205 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 - %206 = OpLoad %float %205 - %207 = OpConvertFToS %int %206 - OpStore %i_3 %207 - OpBranch %208 - %208 = OpLabel - OpLoopMerge %209 %210 None - OpBranch %211 + %201 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 + %202 = OpLoad %float %201 + %203 = OpConvertFToS %int %202 + OpStore %i_3 %203 + OpBranch %204 + %204 = OpLabel + OpLoopMerge %205 %206 None + OpBranch %207 + %207 = OpLabel + %208 = OpLoad %int %i_3 + OpSelectionMerge %209 None + OpSwitch %208 %210 9 %211 8 %212 7 %213 6 %214 5 %215 4 %216 3 %217 2 %218 1 %219 0 %220 %211 = OpLabel - %212 = OpLoad %int %i_3 - OpSelectionMerge %213 None - OpSwitch %212 %214 9 %215 8 %216 7 %217 6 %218 5 %219 4 %220 3 %221 2 %222 1 %223 0 %224 + %221 = OpLoad %int %i_3 + %222 = OpAccessChain %_ptr_Private_int %data %221 + OpStore %222 %int_n5 + OpBranch %209 + %212 = OpLabel + %224 = OpLoad %int %i_3 + %225 = OpAccessChain %_ptr_Private_int %data %224 + OpStore %225 %int_n4 + OpBranch %209 + %213 = OpLabel + %227 = OpLoad %int %i_3 + %228 = OpAccessChain %_ptr_Private_int %data %227 + OpStore %228 %int_n3 + OpBranch %209 + %214 = OpLabel + %230 = OpLoad %int %i_3 + %231 = OpAccessChain %_ptr_Private_int %data %230 + OpStore %231 %int_n2 + OpBranch %209 %215 = OpLabel - %225 = OpLoad %int %i_3 - %226 = OpAccessChain %_ptr_Private_int %data %225 - OpStore %226 %int_n5 - OpBranch %213 + %233 = OpLoad %int %i_3 + %234 = OpAccessChain %_ptr_Private_int %data %233 + OpStore %234 %int_n1 + OpBranch %209 %216 = OpLabel - %228 = OpLoad %int %i_3 - %229 = OpAccessChain %_ptr_Private_int %data %228 - OpStore %229 %int_n4 - OpBranch %213 + %236 = OpLoad %int %i_3 + %237 = OpAccessChain %_ptr_Private_int %data %236 + OpStore %237 %int_0 + OpBranch %209 %217 = OpLabel - %231 = OpLoad %int %i_3 - %232 = OpAccessChain %_ptr_Private_int %data %231 - OpStore %232 %int_n3 - OpBranch %213 + %238 = OpLoad %int %i_3 + %239 = OpAccessChain %_ptr_Private_int %data %238 + OpStore %239 %int_1 + OpBranch %209 %218 = OpLabel - %234 = OpLoad %int %i_3 - %235 = OpAccessChain %_ptr_Private_int %data %234 - OpStore %235 %int_n2 - OpBranch %213 - %219 = OpLabel - %237 = OpLoad %int %i_3 - %238 = OpAccessChain %_ptr_Private_int %data %237 - OpStore %238 %int_n1 - OpBranch %213 - %220 = OpLabel %240 = OpLoad %int %i_3 %241 = OpAccessChain %_ptr_Private_int %data %240 - OpStore %241 %int_0 - OpBranch %213 - %221 = OpLabel + OpStore %241 %int_2 + OpBranch %209 + %219 = OpLabel %242 = OpLoad %int %i_3 %243 = OpAccessChain %_ptr_Private_int %data %242 - OpStore %243 %int_1 - OpBranch %213 - %222 = OpLabel - %244 = OpLoad %int %i_3 - %245 = OpAccessChain %_ptr_Private_int %data %244 - OpStore %245 %int_2 - OpBranch %213 - %223 = OpLabel - %246 = OpLoad %int %i_3 - %247 = OpAccessChain %_ptr_Private_int %data %246 - OpStore %247 %int_3 - OpBranch %213 - %224 = OpLabel - %249 = OpLoad %int %i_3 - %250 = OpAccessChain %_ptr_Private_int %data %249 - OpStore %250 %int_4 - OpBranch %213 - %214 = OpLabel - OpBranch %213 - %213 = OpLabel - %252 = OpLoad %int %i_3 - %253 = OpIAdd %int %252 %int_1 - OpStore %i_3 %253 - OpBranch %210 - %210 = OpLabel - %254 = OpLoad %int %i_3 - %255 = OpSLessThan %bool %254 %int_10 - OpSelectionMerge %256 None - OpBranchConditional %255 %257 %258 - %257 = OpLabel - OpBranch %256 - %258 = OpLabel + OpStore %243 %int_3 + OpBranch %209 + %220 = OpLabel + %245 = OpLoad %int %i_3 + %246 = OpAccessChain %_ptr_Private_int %data %245 + OpStore %246 %int_4 + OpBranch %209 + %210 = OpLabel OpBranch %209 - %256 = OpLabel - OpBranch %208 %209 = OpLabel + %248 = OpLoad %int %i_3 + %249 = OpIAdd %int %248 %int_1 + OpStore %i_3 %249 + OpBranch %206 + %206 = OpLabel + %250 = OpLoad %int %i_3 + %251 = OpSLessThan %bool %250 %int_10 + OpBranchConditional %251 %204 %205 + %205 = OpLabel OpStore %j_1 %int_0 - OpBranch %259 + OpBranch %252 + %252 = OpLabel + OpLoopMerge %253 %254 None + OpBranch %255 + %255 = OpLabel + %256 = OpLoad %int %j_1 + %257 = OpSLessThan %bool %256 %int_10 + OpSelectionMerge %258 None + OpBranchConditional %257 %259 %260 %259 = OpLabel - OpLoopMerge %260 %261 None - OpBranch %262 - %262 = OpLabel - %263 = OpLoad %int %j_1 - %264 = OpSLessThan %bool %263 %int_10 - OpSelectionMerge %265 None - OpBranchConditional %264 %266 %267 - %266 = OpLabel - OpBranch %265 - %267 = OpLabel - OpBranch %260 - %265 = OpLabel - %268 = OpLoad %int %j_1 - %269 = OpLoad %int %j_1 - %270 = OpAccessChain %_ptr_Private_int %data %269 - %271 = OpLoad %int %270 - %272 = OpAccessChain %_ptr_Private_int %temp %268 - OpStore %272 %271 - OpBranch %261 - %261 = OpLabel - %273 = OpLoad %int %j_1 - %274 = OpIAdd %int %273 %int_1 - OpStore %j_1 %274 - OpBranch %259 + OpBranch %258 %260 = OpLabel - %275 = OpFunctionCall %void %mergeSort_ - %278 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %279 = OpLoad %float %278 - %280 = OpConvertFToS %int %279 - %282 = OpSLessThan %bool %280 %int_30 - OpSelectionMerge %283 None - OpBranchConditional %282 %284 %285 - %284 = OpLabel - %286 = OpAccessChain %_ptr_Private_int %data %int_0 - %287 = OpLoad %int %286 - %289 = OpConvertSToF %float %287 - %291 = OpFDiv %float %289 %float_10 - %292 = OpFAdd %float %float_0_5 %291 - OpStore %grey %292 - OpBranch %283 - %285 = OpLabel - %293 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %294 = OpLoad %float %293 - %295 = OpConvertFToS %int %294 - %297 = OpSLessThan %bool %295 %int_60 - OpSelectionMerge %298 None - OpBranchConditional %297 %299 %300 - %299 = OpLabel - %301 = OpAccessChain %_ptr_Private_int %data %int_1 - %302 = OpLoad %int %301 - %303 = OpConvertSToF %float %302 - %304 = OpFDiv %float %303 %float_10 - %305 = OpFAdd %float %float_0_5 %304 - OpStore %grey %305 - OpBranch %298 - %300 = OpLabel - %306 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %307 = OpLoad %float %306 - %308 = OpConvertFToS %int %307 - %310 = OpSLessThan %bool %308 %int_90 - OpSelectionMerge %311 None - OpBranchConditional %310 %312 %313 - %312 = OpLabel - %314 = OpAccessChain %_ptr_Private_int %data %int_2 - %315 = OpLoad %int %314 - %316 = OpConvertSToF %float %315 - %317 = OpFDiv %float %316 %float_10 - %318 = OpFAdd %float %float_0_5 %317 - OpStore %grey %318 - OpBranch %311 - %313 = OpLabel - %319 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %320 = OpLoad %float %319 - %321 = OpConvertFToS %int %320 - %323 = OpSLessThan %bool %321 %int_120 - OpSelectionMerge %324 None - OpBranchConditional %323 %325 %326 - %325 = OpLabel - %327 = OpAccessChain %_ptr_Private_int %data %int_3 - %328 = OpLoad %int %327 - %329 = OpConvertSToF %float %328 - %330 = OpFDiv %float %329 %float_10 - %331 = OpFAdd %float %float_0_5 %330 - OpStore %grey %331 - OpBranch %324 - %326 = OpLabel - %332 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %333 = OpLoad %float %332 - %334 = OpConvertFToS %int %333 - %336 = OpSLessThan %bool %334 %int_150 - OpSelectionMerge %337 None - OpBranchConditional %336 %338 %339 - %338 = OpLabel + OpBranch %253 + %258 = OpLabel + %261 = OpLoad %int %j_1 + %262 = OpLoad %int %j_1 + %263 = OpAccessChain %_ptr_Private_int %data %262 + %264 = OpLoad %int %263 + %265 = OpAccessChain %_ptr_Private_int %temp %261 + OpStore %265 %264 + OpBranch %254 + %254 = OpLabel + %266 = OpLoad %int %j_1 + %267 = OpIAdd %int %266 %int_1 + OpStore %j_1 %267 + OpBranch %252 + %253 = OpLabel + %268 = OpFunctionCall %void %mergeSort_ + %271 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %272 = OpLoad %float %271 + %273 = OpConvertFToS %int %272 + %275 = OpSLessThan %bool %273 %int_30 + OpSelectionMerge %276 None + OpBranchConditional %275 %277 %278 + %277 = OpLabel + %279 = OpAccessChain %_ptr_Private_int %data %int_0 + %280 = OpLoad %int %279 + %282 = OpConvertSToF %float %280 + %284 = OpFDiv %float %282 %float_10 + %285 = OpFAdd %float %float_0_5 %284 + OpStore %grey %285 + OpBranch %276 + %278 = OpLabel + %286 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %287 = OpLoad %float %286 + %288 = OpConvertFToS %int %287 + %290 = OpSLessThan %bool %288 %int_60 + OpSelectionMerge %291 None + OpBranchConditional %290 %292 %293 + %292 = OpLabel + %294 = OpAccessChain %_ptr_Private_int %data %int_1 + %295 = OpLoad %int %294 + %296 = OpConvertSToF %float %295 + %297 = OpFDiv %float %296 %float_10 + %298 = OpFAdd %float %float_0_5 %297 + OpStore %grey %298 + OpBranch %291 + %293 = OpLabel + %299 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %300 = OpLoad %float %299 + %301 = OpConvertFToS %int %300 + %303 = OpSLessThan %bool %301 %int_90 + OpSelectionMerge %304 None + OpBranchConditional %303 %305 %306 + %305 = OpLabel + %307 = OpAccessChain %_ptr_Private_int %data %int_2 + %308 = OpLoad %int %307 + %309 = OpConvertSToF %float %308 + %310 = OpFDiv %float %309 %float_10 + %311 = OpFAdd %float %float_0_5 %310 + OpStore %grey %311 + OpBranch %304 + %306 = OpLabel + %312 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %313 = OpLoad %float %312 + %314 = OpConvertFToS %int %313 + %316 = OpSLessThan %bool %314 %int_120 + OpSelectionMerge %317 None + OpBranchConditional %316 %318 %319 + %318 = OpLabel + %320 = OpAccessChain %_ptr_Private_int %data %int_3 + %321 = OpLoad %int %320 + %322 = OpConvertSToF %float %321 + %323 = OpFDiv %float %322 %float_10 + %324 = OpFAdd %float %float_0_5 %323 + OpStore %grey %324 + OpBranch %317 + %319 = OpLabel + %325 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %326 = OpLoad %float %325 + %327 = OpConvertFToS %int %326 + %329 = OpSLessThan %bool %327 %int_150 + OpSelectionMerge %330 None + OpBranchConditional %329 %331 %332 + %331 = OpLabel OpStore %int_i %int_1 - OpBranch %340 - %340 = OpLabel - OpLoopMerge %341 %342 None - OpBranch %343 + OpBranch %333 + %333 = OpLabel + OpLoopMerge %334 %335 None + OpBranch %336 + %336 = OpLabel + %337 = OpLoad %int %int_i + %338 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 + %339 = OpLoad %float %338 + %340 = OpConvertFToS %int %339 + %341 = OpSGreaterThan %bool %337 %340 + OpSelectionMerge %342 None + OpBranchConditional %341 %343 %344 %343 = OpLabel - %344 = OpLoad %int %int_i - %345 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 + OpBranch %342 + %344 = OpLabel + OpBranch %334 + %342 = OpLabel + OpKill + %335 = OpLabel + OpBranch %333 + %334 = OpLabel + OpBranch %330 + %332 = OpLabel + %345 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 %346 = OpLoad %float %345 %347 = OpConvertFToS %int %346 - %348 = OpSGreaterThan %bool %344 %347 - OpSelectionMerge %349 None - OpBranchConditional %348 %350 %351 - %350 = OpLabel - OpBranch %349 + %349 = OpSLessThan %bool %347 %int_180 + OpSelectionMerge %350 None + OpBranchConditional %349 %351 %352 %351 = OpLabel - OpBranch %341 - %349 = OpLabel + %354 = OpAccessChain %_ptr_Private_int %data %int_5 + %355 = OpLoad %int %354 + %356 = OpConvertSToF %float %355 + %357 = OpFDiv %float %356 %float_10 + %358 = OpFAdd %float %float_0_5 %357 + OpStore %grey %358 + OpBranch %350 + %352 = OpLabel + %359 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %360 = OpLoad %float %359 + %361 = OpConvertFToS %int %360 + %363 = OpSLessThan %bool %361 %int_210 + OpSelectionMerge %364 None + OpBranchConditional %363 %365 %366 + %365 = OpLabel + %368 = OpAccessChain %_ptr_Private_int %data %int_6 + %369 = OpLoad %int %368 + %370 = OpConvertSToF %float %369 + %371 = OpFDiv %float %370 %float_10 + %372 = OpFAdd %float %float_0_5 %371 + OpStore %grey %372 + OpBranch %364 + %366 = OpLabel + %373 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %374 = OpLoad %float %373 + %375 = OpConvertFToS %int %374 + %377 = OpSLessThan %bool %375 %int_240 + OpSelectionMerge %378 None + OpBranchConditional %377 %379 %380 + %379 = OpLabel + %382 = OpAccessChain %_ptr_Private_int %data %int_7 + %383 = OpLoad %int %382 + %384 = OpConvertSToF %float %383 + %385 = OpFDiv %float %384 %float_10 + %386 = OpFAdd %float %float_0_5 %385 + OpStore %grey %386 + OpBranch %378 + %380 = OpLabel + %387 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %388 = OpLoad %float %387 + %389 = OpConvertFToS %int %388 + %391 = OpSLessThan %bool %389 %int_270 + OpSelectionMerge %392 None + OpBranchConditional %391 %393 %394 + %393 = OpLabel + %396 = OpAccessChain %_ptr_Private_int %data %int_8 + %397 = OpLoad %int %396 + %398 = OpConvertSToF %float %397 + %399 = OpFDiv %float %398 %float_10 + %400 = OpFAdd %float %float_0_5 %399 + OpStore %grey %400 + OpBranch %392 + %394 = OpLabel OpKill - %342 = OpLabel - OpBranch %340 - %341 = OpLabel - OpBranch %337 - %339 = OpLabel - %352 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %353 = OpLoad %float %352 - %354 = OpConvertFToS %int %353 - %356 = OpSLessThan %bool %354 %int_180 - OpSelectionMerge %357 None - OpBranchConditional %356 %358 %359 - %358 = OpLabel - %361 = OpAccessChain %_ptr_Private_int %data %int_5 - %362 = OpLoad %int %361 - %363 = OpConvertSToF %float %362 - %364 = OpFDiv %float %363 %float_10 - %365 = OpFAdd %float %float_0_5 %364 - OpStore %grey %365 - OpBranch %357 - %359 = OpLabel - %366 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %367 = OpLoad %float %366 - %368 = OpConvertFToS %int %367 - %370 = OpSLessThan %bool %368 %int_210 - OpSelectionMerge %371 None - OpBranchConditional %370 %372 %373 - %372 = OpLabel - %375 = OpAccessChain %_ptr_Private_int %data %int_6 - %376 = OpLoad %int %375 - %377 = OpConvertSToF %float %376 - %378 = OpFDiv %float %377 %float_10 - %379 = OpFAdd %float %float_0_5 %378 - OpStore %grey %379 - OpBranch %371 - %373 = OpLabel - %380 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %381 = OpLoad %float %380 - %382 = OpConvertFToS %int %381 - %384 = OpSLessThan %bool %382 %int_240 - OpSelectionMerge %385 None - OpBranchConditional %384 %386 %387 - %386 = OpLabel - %389 = OpAccessChain %_ptr_Private_int %data %int_7 - %390 = OpLoad %int %389 - %391 = OpConvertSToF %float %390 - %392 = OpFDiv %float %391 %float_10 - %393 = OpFAdd %float %float_0_5 %392 - OpStore %grey %393 - OpBranch %385 - %387 = OpLabel - %394 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %395 = OpLoad %float %394 - %396 = OpConvertFToS %int %395 - %398 = OpSLessThan %bool %396 %int_270 - OpSelectionMerge %399 None - OpBranchConditional %398 %400 %401 - %400 = OpLabel - %403 = OpAccessChain %_ptr_Private_int %data %int_8 - %404 = OpLoad %int %403 - %405 = OpConvertSToF %float %404 - %406 = OpFDiv %float %405 %float_10 - %407 = OpFAdd %float %float_0_5 %406 - OpStore %grey %407 - OpBranch %399 - %401 = OpLabel - OpKill - %399 = OpLabel - OpBranch %385 - %385 = OpLabel - OpBranch %371 - %371 = OpLabel - OpBranch %357 - %357 = OpLabel - OpBranch %337 - %337 = OpLabel - OpBranch %324 - %324 = OpLabel - OpBranch %311 - %311 = OpLabel - OpBranch %298 - %298 = OpLabel - OpBranch %283 - %283 = OpLabel - %408 = OpLoad %float %grey - %410 = OpCompositeConstruct %v3float %408 %408 %408 - %411 = OpCompositeExtract %float %410 0 - %412 = OpCompositeExtract %float %410 1 - %413 = OpCompositeExtract %float %410 2 - %415 = OpCompositeConstruct %v4float %411 %412 %413 %float_1 - OpStore %x_GLF_color %415 + %392 = OpLabel + OpBranch %378 + %378 = OpLabel + OpBranch %364 + %364 = OpLabel + OpBranch %350 + %350 = OpLabel + OpBranch %330 + %330 = OpLabel + OpBranch %317 + %317 = OpLabel + OpBranch %304 + %304 = OpLabel + OpBranch %291 + %291 = OpLabel + OpBranch %276 + %276 = OpLabel + %401 = OpLoad %float %grey + %403 = OpCompositeConstruct %v3float %401 %401 %401 + %404 = OpCompositeExtract %float %403 0 + %405 = OpCompositeExtract %float %403 1 + %406 = OpCompositeExtract %float %403 2 + %408 = OpCompositeConstruct %v4float %404 %405 %406 %float_1 + OpStore %x_GLF_color %408 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %416 +%tint_symbol_3 = OpFunction %void None %409 %tint_symbol_1 = OpFunctionParameter %main_out - %420 = OpLabel - %421 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %421 + %413 = OpLabel + %414 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %414 OpReturn OpFunctionEnd - %main = OpFunction %void None %132 - %423 = OpLabel - %424 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %424 - %425 = OpFunctionCall %void %main_1 - %427 = OpLoad %v4float %x_GLF_color - %428 = OpCompositeConstruct %main_out %427 - %426 = OpFunctionCall %void %tint_symbol_3 %428 + %main = OpFunction %void None %128 + %416 = OpLabel + %417 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %417 + %418 = OpFunctionCall %void %main_1 + %420 = OpLoad %v4float %x_GLF_color + %421 = OpCompositeConstruct %main_out %420 + %419 = OpFunctionCall %void %tint_symbol_3 %421 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 210[%210] is not post dominated by the back-edge block 256[%256] - %256 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.wgsl.expected.spvasm index 6b57991b3c..3bf7abfb77 100644 --- a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 429 +; Bound: 426 ; Schema: 0 OpCapability Shader %177 = OpExtInstImport "GLSL.std.450" @@ -122,7 +120,7 @@ SKIP: FAILED %v3float = OpTypeVector %float 3 %float_1 = OpConstant %float 1 %main_out = OpTypeStruct %v4float - %416 = OpTypeFunction %void %main_out + %413 = OpTypeFunction %void %main_out %merge_i1_i1_i1_ = OpFunction %void None %23 %from = OpFunctionParameter %_ptr_Function_int %mid = OpFunctionParameter %_ptr_Function_int @@ -435,239 +433,229 @@ SKIP: FAILED %210 = OpLabel %254 = OpLoad %int %i_3 %255 = OpSLessThan %bool %254 %int_10 - OpSelectionMerge %256 None - OpBranchConditional %255 %257 %258 - %257 = OpLabel - OpBranch %256 - %258 = OpLabel - OpBranch %209 - %256 = OpLabel - OpBranch %208 + OpBranchConditional %255 %208 %209 %209 = OpLabel OpStore %j_1 %int_0 + OpBranch %256 + %256 = OpLabel + OpLoopMerge %257 %258 None OpBranch %259 %259 = OpLabel - OpLoopMerge %260 %261 None + %260 = OpLoad %int %j_1 + %261 = OpSLessThan %bool %260 %int_10 + OpSelectionMerge %262 None + OpBranchConditional %261 %263 %264 + %263 = OpLabel OpBranch %262 + %264 = OpLabel + OpBranch %257 %262 = OpLabel - %263 = OpLoad %int %j_1 - %264 = OpSLessThan %bool %263 %int_10 - OpSelectionMerge %265 None - OpBranchConditional %264 %266 %267 - %266 = OpLabel - OpBranch %265 - %267 = OpLabel - OpBranch %260 - %265 = OpLabel - %268 = OpLoad %int %j_1 - %269 = OpLoad %int %j_1 - %270 = OpAccessChain %_ptr_Private_int %data %269 - %271 = OpLoad %int %270 - %272 = OpAccessChain %_ptr_Private_int %temp %268 - OpStore %272 %271 - OpBranch %261 - %261 = OpLabel - %273 = OpLoad %int %j_1 - %274 = OpIAdd %int %273 %int_1 - OpStore %j_1 %274 - OpBranch %259 - %260 = OpLabel - %275 = OpFunctionCall %void %mergeSort_ - %278 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %279 = OpLoad %float %278 - %280 = OpConvertFToS %int %279 - %282 = OpSLessThan %bool %280 %int_30 - OpSelectionMerge %283 None - OpBranchConditional %282 %284 %285 - %284 = OpLabel - %286 = OpAccessChain %_ptr_Private_int %data %int_0 - %287 = OpLoad %int %286 - %289 = OpConvertSToF %float %287 - %291 = OpFDiv %float %289 %float_10 - %292 = OpFAdd %float %float_0_5 %291 - OpStore %grey %292 - OpBranch %283 - %285 = OpLabel - %293 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %294 = OpLoad %float %293 - %295 = OpConvertFToS %int %294 - %297 = OpSLessThan %bool %295 %int_60 - OpSelectionMerge %298 None - OpBranchConditional %297 %299 %300 - %299 = OpLabel - %301 = OpAccessChain %_ptr_Private_int %data %int_1 - %302 = OpLoad %int %301 - %303 = OpConvertSToF %float %302 - %304 = OpFDiv %float %303 %float_10 - %305 = OpFAdd %float %float_0_5 %304 - OpStore %grey %305 - OpBranch %298 - %300 = OpLabel - %306 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %307 = OpLoad %float %306 - %308 = OpConvertFToS %int %307 - %310 = OpSLessThan %bool %308 %int_90 - OpSelectionMerge %311 None - OpBranchConditional %310 %312 %313 - %312 = OpLabel - %314 = OpAccessChain %_ptr_Private_int %data %int_2 - %315 = OpLoad %int %314 - %316 = OpConvertSToF %float %315 - %317 = OpFDiv %float %316 %float_10 - %318 = OpFAdd %float %float_0_5 %317 - OpStore %grey %318 - OpBranch %311 - %313 = OpLabel - %319 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %320 = OpLoad %float %319 - %321 = OpConvertFToS %int %320 - %323 = OpSLessThan %bool %321 %int_120 - OpSelectionMerge %324 None - OpBranchConditional %323 %325 %326 - %325 = OpLabel - %327 = OpAccessChain %_ptr_Private_int %data %int_3 - %328 = OpLoad %int %327 - %329 = OpConvertSToF %float %328 - %330 = OpFDiv %float %329 %float_10 - %331 = OpFAdd %float %float_0_5 %330 - OpStore %grey %331 - OpBranch %324 - %326 = OpLabel - %332 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %333 = OpLoad %float %332 - %334 = OpConvertFToS %int %333 - %336 = OpSLessThan %bool %334 %int_150 - OpSelectionMerge %337 None - OpBranchConditional %336 %338 %339 - %338 = OpLabel + %265 = OpLoad %int %j_1 + %266 = OpLoad %int %j_1 + %267 = OpAccessChain %_ptr_Private_int %data %266 + %268 = OpLoad %int %267 + %269 = OpAccessChain %_ptr_Private_int %temp %265 + OpStore %269 %268 + OpBranch %258 + %258 = OpLabel + %270 = OpLoad %int %j_1 + %271 = OpIAdd %int %270 %int_1 + OpStore %j_1 %271 + OpBranch %256 + %257 = OpLabel + %272 = OpFunctionCall %void %mergeSort_ + %275 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %276 = OpLoad %float %275 + %277 = OpConvertFToS %int %276 + %279 = OpSLessThan %bool %277 %int_30 + OpSelectionMerge %280 None + OpBranchConditional %279 %281 %282 + %281 = OpLabel + %283 = OpAccessChain %_ptr_Private_int %data %int_0 + %284 = OpLoad %int %283 + %286 = OpConvertSToF %float %284 + %288 = OpFDiv %float %286 %float_10 + %289 = OpFAdd %float %float_0_5 %288 + OpStore %grey %289 + OpBranch %280 + %282 = OpLabel + %290 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %291 = OpLoad %float %290 + %292 = OpConvertFToS %int %291 + %294 = OpSLessThan %bool %292 %int_60 + OpSelectionMerge %295 None + OpBranchConditional %294 %296 %297 + %296 = OpLabel + %298 = OpAccessChain %_ptr_Private_int %data %int_1 + %299 = OpLoad %int %298 + %300 = OpConvertSToF %float %299 + %301 = OpFDiv %float %300 %float_10 + %302 = OpFAdd %float %float_0_5 %301 + OpStore %grey %302 + OpBranch %295 + %297 = OpLabel + %303 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %304 = OpLoad %float %303 + %305 = OpConvertFToS %int %304 + %307 = OpSLessThan %bool %305 %int_90 + OpSelectionMerge %308 None + OpBranchConditional %307 %309 %310 + %309 = OpLabel + %311 = OpAccessChain %_ptr_Private_int %data %int_2 + %312 = OpLoad %int %311 + %313 = OpConvertSToF %float %312 + %314 = OpFDiv %float %313 %float_10 + %315 = OpFAdd %float %float_0_5 %314 + OpStore %grey %315 + OpBranch %308 + %310 = OpLabel + %316 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %317 = OpLoad %float %316 + %318 = OpConvertFToS %int %317 + %320 = OpSLessThan %bool %318 %int_120 + OpSelectionMerge %321 None + OpBranchConditional %320 %322 %323 + %322 = OpLabel + %324 = OpAccessChain %_ptr_Private_int %data %int_3 + %325 = OpLoad %int %324 + %326 = OpConvertSToF %float %325 + %327 = OpFDiv %float %326 %float_10 + %328 = OpFAdd %float %float_0_5 %327 + OpStore %grey %328 + OpBranch %321 + %323 = OpLabel + %329 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %330 = OpLoad %float %329 + %331 = OpConvertFToS %int %330 + %333 = OpSLessThan %bool %331 %int_150 + OpSelectionMerge %334 None + OpBranchConditional %333 %335 %336 + %335 = OpLabel OpStore %int_i %int_1 - OpBranch %340 - %340 = OpLabel - OpLoopMerge %341 %342 None - OpBranch %343 - %343 = OpLabel - %344 = OpLoad %int %int_i - %345 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 - %346 = OpLoad %float %345 - %347 = OpConvertFToS %int %346 - %348 = OpSGreaterThan %bool %344 %347 - OpSelectionMerge %349 None - OpBranchConditional %348 %350 %351 - %350 = OpLabel - OpBranch %349 - %351 = OpLabel - OpBranch %341 - %349 = OpLabel - OpKill - %342 = OpLabel - OpBranch %340 - %341 = OpLabel - OpBranch %337 - %339 = OpLabel - %352 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %353 = OpLoad %float %352 - %354 = OpConvertFToS %int %353 - %356 = OpSLessThan %bool %354 %int_180 - OpSelectionMerge %357 None - OpBranchConditional %356 %358 %359 - %358 = OpLabel - %361 = OpAccessChain %_ptr_Private_int %data %int_5 - %362 = OpLoad %int %361 - %363 = OpConvertSToF %float %362 - %364 = OpFDiv %float %363 %float_10 - %365 = OpFAdd %float %float_0_5 %364 - OpStore %grey %365 - OpBranch %357 - %359 = OpLabel - %366 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %367 = OpLoad %float %366 - %368 = OpConvertFToS %int %367 - %370 = OpSLessThan %bool %368 %int_210 - OpSelectionMerge %371 None - OpBranchConditional %370 %372 %373 - %372 = OpLabel - %375 = OpAccessChain %_ptr_Private_int %data %int_6 - %376 = OpLoad %int %375 - %377 = OpConvertSToF %float %376 - %378 = OpFDiv %float %377 %float_10 - %379 = OpFAdd %float %float_0_5 %378 - OpStore %grey %379 - OpBranch %371 - %373 = OpLabel - %380 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %381 = OpLoad %float %380 - %382 = OpConvertFToS %int %381 - %384 = OpSLessThan %bool %382 %int_240 - OpSelectionMerge %385 None - OpBranchConditional %384 %386 %387 - %386 = OpLabel - %389 = OpAccessChain %_ptr_Private_int %data %int_7 - %390 = OpLoad %int %389 - %391 = OpConvertSToF %float %390 - %392 = OpFDiv %float %391 %float_10 - %393 = OpFAdd %float %float_0_5 %392 - OpStore %grey %393 - OpBranch %385 - %387 = OpLabel - %394 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 - %395 = OpLoad %float %394 - %396 = OpConvertFToS %int %395 - %398 = OpSLessThan %bool %396 %int_270 - OpSelectionMerge %399 None - OpBranchConditional %398 %400 %401 - %400 = OpLabel - %403 = OpAccessChain %_ptr_Private_int %data %int_8 - %404 = OpLoad %int %403 - %405 = OpConvertSToF %float %404 - %406 = OpFDiv %float %405 %float_10 - %407 = OpFAdd %float %float_0_5 %406 - OpStore %grey %407 - OpBranch %399 - %401 = OpLabel - OpKill - %399 = OpLabel - OpBranch %385 - %385 = OpLabel - OpBranch %371 - %371 = OpLabel - OpBranch %357 - %357 = OpLabel OpBranch %337 %337 = OpLabel - OpBranch %324 - %324 = OpLabel - OpBranch %311 - %311 = OpLabel - OpBranch %298 - %298 = OpLabel - OpBranch %283 - %283 = OpLabel - %408 = OpLoad %float %grey - %410 = OpCompositeConstruct %v3float %408 %408 %408 - %411 = OpCompositeExtract %float %410 0 - %412 = OpCompositeExtract %float %410 1 - %413 = OpCompositeExtract %float %410 2 - %415 = OpCompositeConstruct %v4float %411 %412 %413 %float_1 - OpStore %x_GLF_color %415 + OpLoopMerge %338 %339 None + OpBranch %340 + %340 = OpLabel + %341 = OpLoad %int %int_i + %342 = OpAccessChain %_ptr_Uniform_float %x_28 %uint_0 %uint_0 + %343 = OpLoad %float %342 + %344 = OpConvertFToS %int %343 + %345 = OpSGreaterThan %bool %341 %344 + OpSelectionMerge %346 None + OpBranchConditional %345 %347 %348 + %347 = OpLabel + OpBranch %346 + %348 = OpLabel + OpBranch %338 + %346 = OpLabel + OpKill + %339 = OpLabel + OpBranch %337 + %338 = OpLabel + OpBranch %334 + %336 = OpLabel + %349 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %350 = OpLoad %float %349 + %351 = OpConvertFToS %int %350 + %353 = OpSLessThan %bool %351 %int_180 + OpSelectionMerge %354 None + OpBranchConditional %353 %355 %356 + %355 = OpLabel + %358 = OpAccessChain %_ptr_Private_int %data %int_5 + %359 = OpLoad %int %358 + %360 = OpConvertSToF %float %359 + %361 = OpFDiv %float %360 %float_10 + %362 = OpFAdd %float %float_0_5 %361 + OpStore %grey %362 + OpBranch %354 + %356 = OpLabel + %363 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %364 = OpLoad %float %363 + %365 = OpConvertFToS %int %364 + %367 = OpSLessThan %bool %365 %int_210 + OpSelectionMerge %368 None + OpBranchConditional %367 %369 %370 + %369 = OpLabel + %372 = OpAccessChain %_ptr_Private_int %data %int_6 + %373 = OpLoad %int %372 + %374 = OpConvertSToF %float %373 + %375 = OpFDiv %float %374 %float_10 + %376 = OpFAdd %float %float_0_5 %375 + OpStore %grey %376 + OpBranch %368 + %370 = OpLabel + %377 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %378 = OpLoad %float %377 + %379 = OpConvertFToS %int %378 + %381 = OpSLessThan %bool %379 %int_240 + OpSelectionMerge %382 None + OpBranchConditional %381 %383 %384 + %383 = OpLabel + %386 = OpAccessChain %_ptr_Private_int %data %int_7 + %387 = OpLoad %int %386 + %388 = OpConvertSToF %float %387 + %389 = OpFDiv %float %388 %float_10 + %390 = OpFAdd %float %float_0_5 %389 + OpStore %grey %390 + OpBranch %382 + %384 = OpLabel + %391 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 + %392 = OpLoad %float %391 + %393 = OpConvertFToS %int %392 + %395 = OpSLessThan %bool %393 %int_270 + OpSelectionMerge %396 None + OpBranchConditional %395 %397 %398 + %397 = OpLabel + %400 = OpAccessChain %_ptr_Private_int %data %int_8 + %401 = OpLoad %int %400 + %402 = OpConvertSToF %float %401 + %403 = OpFDiv %float %402 %float_10 + %404 = OpFAdd %float %float_0_5 %403 + OpStore %grey %404 + OpBranch %396 + %398 = OpLabel + OpKill + %396 = OpLabel + OpBranch %382 + %382 = OpLabel + OpBranch %368 + %368 = OpLabel + OpBranch %354 + %354 = OpLabel + OpBranch %334 + %334 = OpLabel + OpBranch %321 + %321 = OpLabel + OpBranch %308 + %308 = OpLabel + OpBranch %295 + %295 = OpLabel + OpBranch %280 + %280 = OpLabel + %405 = OpLoad %float %grey + %407 = OpCompositeConstruct %v3float %405 %405 %405 + %408 = OpCompositeExtract %float %407 0 + %409 = OpCompositeExtract %float %407 1 + %410 = OpCompositeExtract %float %407 2 + %412 = OpCompositeConstruct %v4float %408 %409 %410 %float_1 + OpStore %x_GLF_color %412 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %416 +%tint_symbol_3 = OpFunction %void None %413 %tint_symbol_1 = OpFunctionParameter %main_out - %420 = OpLabel - %421 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %421 + %417 = OpLabel + %418 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %418 OpReturn OpFunctionEnd %main = OpFunction %void None %132 - %423 = OpLabel - %424 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %424 - %425 = OpFunctionCall %void %main_1 - %427 = OpLoad %v4float %x_GLF_color - %428 = OpCompositeConstruct %main_out %427 - %426 = OpFunctionCall %void %tint_symbol_3 %428 + %420 = OpLabel + %421 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %421 + %422 = OpFunctionCall %void %main_1 + %424 = OpLoad %v4float %x_GLF_color + %425 = OpCompositeConstruct %main_out %424 + %423 = OpFunctionCall %void %tint_symbol_3 %425 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 210[%210] is not post dominated by the back-edge block 256[%256] - %256 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.spvasm.expected.spvasm index a32e26e561..a8617fb5eb 100644 --- a/test/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 65 +; Bound: 62 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -55,7 +53,7 @@ SKIP: FAILED %34 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 %false = OpConstantFalse %bool %main_out = OpTypeStruct %v4float - %53 = OpTypeFunction %void %main_out + %50 = OpTypeFunction %void %main_out %merge_ = OpFunction %int None %11 %14 = OpLabel %18 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 @@ -89,38 +87,28 @@ SKIP: FAILED %41 = OpLabel OpBranch %37 %37 = OpLabel - OpSelectionMerge %46 None - OpBranchConditional %false %47 %48 - %47 = OpLabel - OpBranch %46 - %48 = OpLabel - OpBranch %36 - %46 = OpLabel - OpBranch %35 + OpBranchConditional %false %35 %36 %36 = OpLabel - %49 = OpFunctionCall %int %merge_ - OpStore %res %49 - %50 = OpLoad %int %res - %51 = OpConvertSToF %float %50 - %52 = OpCompositeConstruct %v4float %51 %51 %51 %51 - OpStore %x_GLF_color %52 + %46 = OpFunctionCall %int %merge_ + OpStore %res %46 + %47 = OpLoad %int %res + %48 = OpConvertSToF %float %47 + %49 = OpCompositeConstruct %v4float %48 %48 %48 %48 + OpStore %x_GLF_color %49 OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %53 +%tint_symbol_2 = OpFunction %void None %50 %tint_symbol = OpFunctionParameter %main_out - %57 = OpLabel - %58 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %58 + %54 = OpLabel + %55 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %55 OpReturn OpFunctionEnd %main = OpFunction %void None %26 - %60 = OpLabel - %61 = OpFunctionCall %void %main_1 - %63 = OpLoad %v4float %x_GLF_color - %64 = OpCompositeConstruct %main_out %63 - %62 = OpFunctionCall %void %tint_symbol_2 %64 + %57 = OpLabel + %58 = OpFunctionCall %void %main_1 + %60 = OpLoad %v4float %x_GLF_color + %61 = OpCompositeConstruct %main_out %60 + %59 = OpFunctionCall %void %tint_symbol_2 %61 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 37[%37] is not post dominated by the back-edge block 46[%46] - %46 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.wgsl.expected.spvasm index a32e26e561..a8617fb5eb 100644 --- a/test/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 65 +; Bound: 62 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -55,7 +53,7 @@ SKIP: FAILED %34 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 %false = OpConstantFalse %bool %main_out = OpTypeStruct %v4float - %53 = OpTypeFunction %void %main_out + %50 = OpTypeFunction %void %main_out %merge_ = OpFunction %int None %11 %14 = OpLabel %18 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 @@ -89,38 +87,28 @@ SKIP: FAILED %41 = OpLabel OpBranch %37 %37 = OpLabel - OpSelectionMerge %46 None - OpBranchConditional %false %47 %48 - %47 = OpLabel - OpBranch %46 - %48 = OpLabel - OpBranch %36 - %46 = OpLabel - OpBranch %35 + OpBranchConditional %false %35 %36 %36 = OpLabel - %49 = OpFunctionCall %int %merge_ - OpStore %res %49 - %50 = OpLoad %int %res - %51 = OpConvertSToF %float %50 - %52 = OpCompositeConstruct %v4float %51 %51 %51 %51 - OpStore %x_GLF_color %52 + %46 = OpFunctionCall %int %merge_ + OpStore %res %46 + %47 = OpLoad %int %res + %48 = OpConvertSToF %float %47 + %49 = OpCompositeConstruct %v4float %48 %48 %48 %48 + OpStore %x_GLF_color %49 OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %53 +%tint_symbol_2 = OpFunction %void None %50 %tint_symbol = OpFunctionParameter %main_out - %57 = OpLabel - %58 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %58 + %54 = OpLabel + %55 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %55 OpReturn OpFunctionEnd %main = OpFunction %void None %26 - %60 = OpLabel - %61 = OpFunctionCall %void %main_1 - %63 = OpLoad %v4float %x_GLF_color - %64 = OpCompositeConstruct %main_out %63 - %62 = OpFunctionCall %void %tint_symbol_2 %64 + %57 = OpLabel + %58 = OpFunctionCall %void %main_1 + %60 = OpLoad %v4float %x_GLF_color + %61 = OpCompositeConstruct %main_out %60 + %59 = OpFunctionCall %void %tint_symbol_2 %61 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 37[%37] is not post dominated by the back-edge block 46[%46] - %46 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/switch-loop-switch-if/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/switch-loop-switch-if/0-opt.spvasm.expected.spvasm index 8c6337d0d0..c5dc9aa9de 100644 --- a/test/vk-gl-cts/graphicsfuzz/switch-loop-switch-if/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/switch-loop-switch-if/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 88 +; Bound: 85 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -58,10 +56,10 @@ SKIP: FAILED %int_n2 = OpConstant %int -2 %float_1 = OpConstant %float 1 %float_0 = OpConstant %float 0 - %74 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 - %75 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 + %71 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %72 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 %main_out = OpTypeStruct %v4float - %76 = OpTypeFunction %void %main_out + %73 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %12 %15 = OpLabel %i = OpVariable %_ptr_Function_int Function %19 @@ -101,60 +99,50 @@ SKIP: FAILED %32 = OpLabel %48 = OpLoad %int %i %50 = OpSGreaterThan %bool %48 %int_200 - OpSelectionMerge %52 None - OpBranchConditional %50 %53 %54 - %53 = OpLabel - OpBranch %52 - %54 = OpLabel - OpBranch %31 - %52 = OpLabel - OpBranch %30 + OpBranchConditional %50 %30 %31 %31 = OpLabel - %55 = OpLoad %int %i - %57 = OpSGreaterThan %bool %55 %int_100 - OpSelectionMerge %58 None - OpBranchConditional %57 %59 %58 - %59 = OpLabel - %60 = OpLoad %int %i - %62 = OpISub %int %60 %int_2 - OpStore %i %62 + %52 = OpLoad %int %i + %54 = OpSGreaterThan %bool %52 %int_100 + OpSelectionMerge %55 None + OpBranchConditional %54 %56 %55 + %56 = OpLabel + %57 = OpLoad %int %i + %59 = OpISub %int %57 %int_2 + OpStore %i %59 OpBranch %27 - %58 = OpLabel + %55 = OpLabel OpBranch %28 %28 = OpLabel - %63 = OpLoad %int %i - %65 = OpISub %int %63 %int_3 - OpStore %i %65 + %60 = OpLoad %int %i + %62 = OpISub %int %60 %int_3 + OpStore %i %62 OpBranch %27 %27 = OpLabel - %66 = OpLoad %int %i - %68 = OpIEqual %bool %66 %int_n2 - OpSelectionMerge %69 None - OpBranchConditional %68 %70 %71 - %70 = OpLabel - OpStore %x_GLF_color %74 - OpBranch %69 - %71 = OpLabel - OpStore %x_GLF_color %75 - OpBranch %69 - %69 = OpLabel + %63 = OpLoad %int %i + %65 = OpIEqual %bool %63 %int_n2 + OpSelectionMerge %66 None + OpBranchConditional %65 %67 %68 + %67 = OpLabel + OpStore %x_GLF_color %71 + OpBranch %66 + %68 = OpLabel + OpStore %x_GLF_color %72 + OpBranch %66 + %66 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %76 +%tint_symbol_2 = OpFunction %void None %73 %tint_symbol = OpFunctionParameter %main_out - %80 = OpLabel - %81 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %81 + %77 = OpLabel + %78 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %78 OpReturn OpFunctionEnd %main = OpFunction %void None %12 - %83 = OpLabel - %84 = OpFunctionCall %void %main_1 - %86 = OpLoad %v4float %x_GLF_color - %87 = OpCompositeConstruct %main_out %86 - %85 = OpFunctionCall %void %tint_symbol_2 %87 + %80 = OpLabel + %81 = OpFunctionCall %void %main_1 + %83 = OpLoad %v4float %x_GLF_color + %84 = OpCompositeConstruct %main_out %83 + %82 = OpFunctionCall %void %tint_symbol_2 %84 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 32[%32] is not post dominated by the back-edge block 52[%52] - %52 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/switch-loop-switch-if/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/switch-loop-switch-if/0-opt.wgsl.expected.spvasm index 8c6337d0d0..c5dc9aa9de 100644 --- a/test/vk-gl-cts/graphicsfuzz/switch-loop-switch-if/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/switch-loop-switch-if/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 88 +; Bound: 85 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -58,10 +56,10 @@ SKIP: FAILED %int_n2 = OpConstant %int -2 %float_1 = OpConstant %float 1 %float_0 = OpConstant %float 0 - %74 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 - %75 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 + %71 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 + %72 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 %main_out = OpTypeStruct %v4float - %76 = OpTypeFunction %void %main_out + %73 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %12 %15 = OpLabel %i = OpVariable %_ptr_Function_int Function %19 @@ -101,60 +99,50 @@ SKIP: FAILED %32 = OpLabel %48 = OpLoad %int %i %50 = OpSGreaterThan %bool %48 %int_200 - OpSelectionMerge %52 None - OpBranchConditional %50 %53 %54 - %53 = OpLabel - OpBranch %52 - %54 = OpLabel - OpBranch %31 - %52 = OpLabel - OpBranch %30 + OpBranchConditional %50 %30 %31 %31 = OpLabel - %55 = OpLoad %int %i - %57 = OpSGreaterThan %bool %55 %int_100 - OpSelectionMerge %58 None - OpBranchConditional %57 %59 %58 - %59 = OpLabel - %60 = OpLoad %int %i - %62 = OpISub %int %60 %int_2 - OpStore %i %62 + %52 = OpLoad %int %i + %54 = OpSGreaterThan %bool %52 %int_100 + OpSelectionMerge %55 None + OpBranchConditional %54 %56 %55 + %56 = OpLabel + %57 = OpLoad %int %i + %59 = OpISub %int %57 %int_2 + OpStore %i %59 OpBranch %27 - %58 = OpLabel + %55 = OpLabel OpBranch %28 %28 = OpLabel - %63 = OpLoad %int %i - %65 = OpISub %int %63 %int_3 - OpStore %i %65 + %60 = OpLoad %int %i + %62 = OpISub %int %60 %int_3 + OpStore %i %62 OpBranch %27 %27 = OpLabel - %66 = OpLoad %int %i - %68 = OpIEqual %bool %66 %int_n2 - OpSelectionMerge %69 None - OpBranchConditional %68 %70 %71 - %70 = OpLabel - OpStore %x_GLF_color %74 - OpBranch %69 - %71 = OpLabel - OpStore %x_GLF_color %75 - OpBranch %69 - %69 = OpLabel + %63 = OpLoad %int %i + %65 = OpIEqual %bool %63 %int_n2 + OpSelectionMerge %66 None + OpBranchConditional %65 %67 %68 + %67 = OpLabel + OpStore %x_GLF_color %71 + OpBranch %66 + %68 = OpLabel + OpStore %x_GLF_color %72 + OpBranch %66 + %66 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %76 +%tint_symbol_2 = OpFunction %void None %73 %tint_symbol = OpFunctionParameter %main_out - %80 = OpLabel - %81 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %81 + %77 = OpLabel + %78 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %78 OpReturn OpFunctionEnd %main = OpFunction %void None %12 - %83 = OpLabel - %84 = OpFunctionCall %void %main_1 - %86 = OpLoad %v4float %x_GLF_color - %87 = OpCompositeConstruct %main_out %86 - %85 = OpFunctionCall %void %tint_symbol_2 %87 + %80 = OpLabel + %81 = OpFunctionCall %void %main_1 + %83 = OpLoad %v4float %x_GLF_color + %84 = OpCompositeConstruct %main_out %83 + %82 = OpFunctionCall %void %tint_symbol_2 %84 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 32[%32] is not post dominated by the back-edge block 52[%52] - %52 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.spvasm.expected.spvasm index 3fe30e2923..41506cda28 100644 --- a/test/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 111 +; Bound: 105 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -70,7 +68,7 @@ SKIP: FAILED %int_1 = OpConstant %int 1 %false = OpConstantFalse %bool %main_out = OpTypeStruct %v4float - %98 = OpTypeFunction %void %main_out + %92 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %15 %18 = OpLabel %i = OpVariable %_ptr_Function_int Function %22 @@ -166,25 +164,11 @@ SKIP: FAILED %66 = OpLabel OpBranch %63 %63 = OpLabel - OpSelectionMerge %92 None - OpBranchConditional %false %93 %94 - %93 = OpLabel - OpBranch %92 - %94 = OpLabel - OpBranch %62 - %92 = OpLabel - OpBranch %61 + OpBranchConditional %false %61 %62 %62 = OpLabel OpBranch %54 %54 = OpLabel - OpSelectionMerge %95 None - OpBranchConditional %false %96 %97 - %96 = OpLabel - OpBranch %95 - %97 = OpLabel - OpBranch %53 - %95 = OpLabel - OpBranch %52 + OpBranchConditional %false %52 %53 %53 = OpLabel OpBranch %49 %49 = OpLabel @@ -192,23 +176,20 @@ SKIP: FAILED %37 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %98 +%tint_symbol_3 = OpFunction %void None %92 %tint_symbol_1 = OpFunctionParameter %main_out - %102 = OpLabel - %103 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %103 + %96 = OpLabel + %97 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %97 OpReturn OpFunctionEnd %main = OpFunction %void None %15 - %105 = OpLabel - %106 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %106 - %107 = OpFunctionCall %void %main_1 - %109 = OpLoad %v4float %x_GLF_color - %110 = OpCompositeConstruct %main_out %109 - %108 = OpFunctionCall %void %tint_symbol_3 %110 + %99 = OpLabel + %100 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %100 + %101 = OpFunctionCall %void %main_1 + %103 = OpLoad %v4float %x_GLF_color + %104 = OpCompositeConstruct %main_out %103 + %102 = OpFunctionCall %void %tint_symbol_3 %104 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 54[%54] is not post dominated by the back-edge block 95[%95] - %95 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.wgsl.expected.spvasm index 3fe30e2923..41506cda28 100644 --- a/test/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 111 +; Bound: 105 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -70,7 +68,7 @@ SKIP: FAILED %int_1 = OpConstant %int 1 %false = OpConstantFalse %bool %main_out = OpTypeStruct %v4float - %98 = OpTypeFunction %void %main_out + %92 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %15 %18 = OpLabel %i = OpVariable %_ptr_Function_int Function %22 @@ -166,25 +164,11 @@ SKIP: FAILED %66 = OpLabel OpBranch %63 %63 = OpLabel - OpSelectionMerge %92 None - OpBranchConditional %false %93 %94 - %93 = OpLabel - OpBranch %92 - %94 = OpLabel - OpBranch %62 - %92 = OpLabel - OpBranch %61 + OpBranchConditional %false %61 %62 %62 = OpLabel OpBranch %54 %54 = OpLabel - OpSelectionMerge %95 None - OpBranchConditional %false %96 %97 - %96 = OpLabel - OpBranch %95 - %97 = OpLabel - OpBranch %53 - %95 = OpLabel - OpBranch %52 + OpBranchConditional %false %52 %53 %53 = OpLabel OpBranch %49 %49 = OpLabel @@ -192,23 +176,20 @@ SKIP: FAILED %37 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %98 +%tint_symbol_3 = OpFunction %void None %92 %tint_symbol_1 = OpFunctionParameter %main_out - %102 = OpLabel - %103 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %103 + %96 = OpLabel + %97 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %97 OpReturn OpFunctionEnd %main = OpFunction %void None %15 - %105 = OpLabel - %106 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %106 - %107 = OpFunctionCall %void %main_1 - %109 = OpLoad %v4float %x_GLF_color - %110 = OpCompositeConstruct %main_out %109 - %108 = OpFunctionCall %void %tint_symbol_3 %110 + %99 = OpLabel + %100 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %100 + %101 = OpFunctionCall %void %main_1 + %103 = OpLoad %v4float %x_GLF_color + %104 = OpCompositeConstruct %main_out %103 + %102 = OpFunctionCall %void %tint_symbol_3 %104 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 54[%54] is not post dominated by the back-edge block 95[%95] - %95 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.spvasm.expected.spvasm index b8befb6369..e3fd9f30b2 100644 --- a/test/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 87 +; Bound: 84 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -63,9 +61,9 @@ SKIP: FAILED %int_1 = OpConstant %int 1 %false = OpConstantFalse %bool %void = OpTypeVoid - %70 = OpTypeFunction %void + %67 = OpTypeFunction %void %main_out = OpTypeStruct %v4float - %75 = OpTypeFunction %void %main_out + %72 = OpTypeFunction %void %main_out %performPartition_ = OpFunction %int None %12 %15 = OpLabel %GLF_live0i = OpVariable %_ptr_Function_int Function %18 @@ -135,38 +133,28 @@ SKIP: FAILED OpStore %x_11 %63 %64 = OpLoad %int %x_11 OpStore %x_10_phi %64 - OpSelectionMerge %66 None - OpBranchConditional %false %67 %68 - %67 = OpLabel - OpBranch %66 - %68 = OpLabel - OpBranch %27 - %66 = OpLabel - OpBranch %26 + OpBranchConditional %false %26 %27 %27 = OpLabel - %69 = OpLoad %int %x_11 - OpReturnValue %69 + %66 = OpLoad %int %x_11 + OpReturnValue %66 OpFunctionEnd - %main_1 = OpFunction %void None %70 - %73 = OpLabel - %74 = OpFunctionCall %int %performPartition_ + %main_1 = OpFunction %void None %67 + %70 = OpLabel + %71 = OpFunctionCall %int %performPartition_ OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %75 +%tint_symbol_2 = OpFunction %void None %72 %tint_symbol = OpFunctionParameter %main_out + %76 = OpLabel + %77 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %77 + OpReturn + OpFunctionEnd + %main = OpFunction %void None %67 %79 = OpLabel - %80 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %80 + %80 = OpFunctionCall %void %main_1 + %82 = OpLoad %v4float %x_GLF_color + %83 = OpCompositeConstruct %main_out %82 + %81 = OpFunctionCall %void %tint_symbol_2 %83 OpReturn OpFunctionEnd - %main = OpFunction %void None %70 - %82 = OpLabel - %83 = OpFunctionCall %void %main_1 - %85 = OpLoad %v4float %x_GLF_color - %86 = OpCompositeConstruct %main_out %85 - %84 = OpFunctionCall %void %tint_symbol_2 %86 - OpReturn - OpFunctionEnd -1:1: The continue construct with the continue target 28[%28] is not post dominated by the back-edge block 66[%66] - %66 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.wgsl.expected.spvasm index b8befb6369..e3fd9f30b2 100644 --- a/test/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 87 +; Bound: 84 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -63,9 +61,9 @@ SKIP: FAILED %int_1 = OpConstant %int 1 %false = OpConstantFalse %bool %void = OpTypeVoid - %70 = OpTypeFunction %void + %67 = OpTypeFunction %void %main_out = OpTypeStruct %v4float - %75 = OpTypeFunction %void %main_out + %72 = OpTypeFunction %void %main_out %performPartition_ = OpFunction %int None %12 %15 = OpLabel %GLF_live0i = OpVariable %_ptr_Function_int Function %18 @@ -135,38 +133,28 @@ SKIP: FAILED OpStore %x_11 %63 %64 = OpLoad %int %x_11 OpStore %x_10_phi %64 - OpSelectionMerge %66 None - OpBranchConditional %false %67 %68 - %67 = OpLabel - OpBranch %66 - %68 = OpLabel - OpBranch %27 - %66 = OpLabel - OpBranch %26 + OpBranchConditional %false %26 %27 %27 = OpLabel - %69 = OpLoad %int %x_11 - OpReturnValue %69 + %66 = OpLoad %int %x_11 + OpReturnValue %66 OpFunctionEnd - %main_1 = OpFunction %void None %70 - %73 = OpLabel - %74 = OpFunctionCall %int %performPartition_ + %main_1 = OpFunction %void None %67 + %70 = OpLabel + %71 = OpFunctionCall %int %performPartition_ OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %75 +%tint_symbol_2 = OpFunction %void None %72 %tint_symbol = OpFunctionParameter %main_out + %76 = OpLabel + %77 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %77 + OpReturn + OpFunctionEnd + %main = OpFunction %void None %67 %79 = OpLabel - %80 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %80 + %80 = OpFunctionCall %void %main_1 + %82 = OpLoad %v4float %x_GLF_color + %83 = OpCompositeConstruct %main_out %82 + %81 = OpFunctionCall %void %tint_symbol_2 %83 OpReturn OpFunctionEnd - %main = OpFunction %void None %70 - %82 = OpLabel - %83 = OpFunctionCall %void %main_1 - %85 = OpLoad %v4float %x_GLF_color - %86 = OpCompositeConstruct %main_out %85 - %84 = OpFunctionCall %void %tint_symbol_2 %86 - OpReturn - OpFunctionEnd -1:1: The continue construct with the continue target 28[%28] is not post dominated by the back-edge block 66[%66] - %66 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.spvasm.expected.spvasm index 553aab9234..ee7bed9c52 100644 --- a/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 187 +; Bound: 184 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -279,44 +277,34 @@ SKIP: FAILED %78 = OpLabel OpBranch %70 %70 = OpLabel - OpSelectionMerge %160 None - OpBranchConditional %false %161 %162 - %161 = OpLabel - OpBranch %160 - %162 = OpLabel - OpBranch %69 - %160 = OpLabel - OpBranch %68 + OpBranchConditional %false %68 %69 %69 = OpLabel - %163 = OpAccessChain %_ptr_Function_float %value %uint_0 - %164 = OpLoad %float %163 - %166 = OpAccessChain %_ptr_StorageBuffer_int %x_15 %uint_0 %int_0 - %167 = OpConvertFToS %int %164 - OpStore %166 %167 - %168 = OpAccessChain %_ptr_Function_float %value %uint_1 - %169 = OpLoad %float %168 - %170 = OpAccessChain %_ptr_StorageBuffer_int %x_15 %uint_0 %int_1 - %171 = OpConvertFToS %int %169 - OpStore %170 %171 - %172 = OpAccessChain %_ptr_Function_float %value %uint_2 - %173 = OpLoad %float %172 - %175 = OpAccessChain %_ptr_StorageBuffer_int %x_15 %uint_0 %int_2 - %176 = OpConvertFToS %int %173 - OpStore %175 %176 - %178 = OpAccessChain %_ptr_Function_float %value %uint_3 - %179 = OpLoad %float %178 - %181 = OpAccessChain %_ptr_StorageBuffer_int %x_15 %uint_0 %int_3 - %182 = OpConvertFToS %int %179 - OpStore %181 %182 + %160 = OpAccessChain %_ptr_Function_float %value %uint_0 + %161 = OpLoad %float %160 + %163 = OpAccessChain %_ptr_StorageBuffer_int %x_15 %uint_0 %int_0 + %164 = OpConvertFToS %int %161 + OpStore %163 %164 + %165 = OpAccessChain %_ptr_Function_float %value %uint_1 + %166 = OpLoad %float %165 + %167 = OpAccessChain %_ptr_StorageBuffer_int %x_15 %uint_0 %int_1 + %168 = OpConvertFToS %int %166 + OpStore %167 %168 + %169 = OpAccessChain %_ptr_Function_float %value %uint_2 + %170 = OpLoad %float %169 + %172 = OpAccessChain %_ptr_StorageBuffer_int %x_15 %uint_0 %int_2 + %173 = OpConvertFToS %int %170 + OpStore %172 %173 + %175 = OpAccessChain %_ptr_Function_float %value %uint_3 + %176 = OpLoad %float %175 + %178 = OpAccessChain %_ptr_StorageBuffer_int %x_15 %uint_0 %int_3 + %179 = OpConvertFToS %int %176 + OpStore %178 %179 OpReturn OpFunctionEnd %main = OpFunction %void None %21 - %184 = OpLabel - %185 = OpLoad %v3uint %tint_symbol - OpStore %gl_GlobalInvocationID %185 - %186 = OpFunctionCall %void %main_1 + %181 = OpLabel + %182 = OpLoad %v3uint %tint_symbol + OpStore %gl_GlobalInvocationID %182 + %183 = OpFunctionCall %void %main_1 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 70[%70] is not post dominated by the back-edge block 160[%160] - %160 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.wgsl.expected.spvasm index 553aab9234..ee7bed9c52 100644 --- a/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 187 +; Bound: 184 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -279,44 +277,34 @@ SKIP: FAILED %78 = OpLabel OpBranch %70 %70 = OpLabel - OpSelectionMerge %160 None - OpBranchConditional %false %161 %162 - %161 = OpLabel - OpBranch %160 - %162 = OpLabel - OpBranch %69 - %160 = OpLabel - OpBranch %68 + OpBranchConditional %false %68 %69 %69 = OpLabel - %163 = OpAccessChain %_ptr_Function_float %value %uint_0 - %164 = OpLoad %float %163 - %166 = OpAccessChain %_ptr_StorageBuffer_int %x_15 %uint_0 %int_0 - %167 = OpConvertFToS %int %164 - OpStore %166 %167 - %168 = OpAccessChain %_ptr_Function_float %value %uint_1 - %169 = OpLoad %float %168 - %170 = OpAccessChain %_ptr_StorageBuffer_int %x_15 %uint_0 %int_1 - %171 = OpConvertFToS %int %169 - OpStore %170 %171 - %172 = OpAccessChain %_ptr_Function_float %value %uint_2 - %173 = OpLoad %float %172 - %175 = OpAccessChain %_ptr_StorageBuffer_int %x_15 %uint_0 %int_2 - %176 = OpConvertFToS %int %173 - OpStore %175 %176 - %178 = OpAccessChain %_ptr_Function_float %value %uint_3 - %179 = OpLoad %float %178 - %181 = OpAccessChain %_ptr_StorageBuffer_int %x_15 %uint_0 %int_3 - %182 = OpConvertFToS %int %179 - OpStore %181 %182 + %160 = OpAccessChain %_ptr_Function_float %value %uint_0 + %161 = OpLoad %float %160 + %163 = OpAccessChain %_ptr_StorageBuffer_int %x_15 %uint_0 %int_0 + %164 = OpConvertFToS %int %161 + OpStore %163 %164 + %165 = OpAccessChain %_ptr_Function_float %value %uint_1 + %166 = OpLoad %float %165 + %167 = OpAccessChain %_ptr_StorageBuffer_int %x_15 %uint_0 %int_1 + %168 = OpConvertFToS %int %166 + OpStore %167 %168 + %169 = OpAccessChain %_ptr_Function_float %value %uint_2 + %170 = OpLoad %float %169 + %172 = OpAccessChain %_ptr_StorageBuffer_int %x_15 %uint_0 %int_2 + %173 = OpConvertFToS %int %170 + OpStore %172 %173 + %175 = OpAccessChain %_ptr_Function_float %value %uint_3 + %176 = OpLoad %float %175 + %178 = OpAccessChain %_ptr_StorageBuffer_int %x_15 %uint_0 %int_3 + %179 = OpConvertFToS %int %176 + OpStore %178 %179 OpReturn OpFunctionEnd %main = OpFunction %void None %21 - %184 = OpLabel - %185 = OpLoad %v3uint %tint_symbol - OpStore %gl_GlobalInvocationID %185 - %186 = OpFunctionCall %void %main_1 + %181 = OpLabel + %182 = OpLoad %v3uint %tint_symbol + OpStore %gl_GlobalInvocationID %182 + %183 = OpFunctionCall %void %main_1 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 70[%70] is not post dominated by the back-edge block 160[%160] - %160 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.spvasm index 65afab8bbc..39460434f4 100644 --- a/test/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 64 +; Bound: 61 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -56,7 +54,7 @@ SKIP: FAILED %int_1 = OpConstant %int 1 %true = OpConstantTrue %bool %main_out = OpTypeStruct %v4float - %52 = OpTypeFunction %void %main_out + %49 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %12 %15 = OpLabel %m = OpVariable %_ptr_Function_int Function %19 @@ -76,52 +74,42 @@ SKIP: FAILED %38 = OpLabel OpBranch %37 %37 = OpLabel - OpSelectionMerge %40 None - OpBranchConditional %false %41 %42 - %41 = OpLabel - OpBranch %40 - %42 = OpLabel - OpBranch %36 - %40 = OpLabel - OpBranch %35 + OpBranchConditional %false %35 %36 %36 = OpLabel OpStore %m %int_1 + OpBranch %41 + %41 = OpLabel + OpLoopMerge %42 %43 None OpBranch %44 %44 = OpLabel - OpLoopMerge %45 %46 None - OpBranch %47 + OpSelectionMerge %46 None + OpBranchConditional %true %47 %48 %47 = OpLabel - OpSelectionMerge %49 None - OpBranchConditional %true %50 %51 - %50 = OpLabel - OpBranch %49 - %51 = OpLabel - OpBranch %45 - %49 = OpLabel - OpStore %x_GLF_color %22 OpBranch %46 + %48 = OpLabel + OpBranch %42 %46 = OpLabel - OpBranch %44 - %45 = OpLabel + OpStore %x_GLF_color %22 + OpBranch %43 + %43 = OpLabel + OpBranch %41 + %42 = OpLabel OpBranch %33 %33 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %52 +%tint_symbol_2 = OpFunction %void None %49 %tint_symbol = OpFunctionParameter %main_out - %56 = OpLabel - %57 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %57 + %53 = OpLabel + %54 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %54 OpReturn OpFunctionEnd %main = OpFunction %void None %12 - %59 = OpLabel - %60 = OpFunctionCall %void %main_1 - %62 = OpLoad %v4float %x_GLF_color - %63 = OpCompositeConstruct %main_out %62 - %61 = OpFunctionCall %void %tint_symbol_2 %63 + %56 = OpLabel + %57 = OpFunctionCall %void %main_1 + %59 = OpLoad %v4float %x_GLF_color + %60 = OpCompositeConstruct %main_out %59 + %58 = OpFunctionCall %void %tint_symbol_2 %60 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 37[%37] is not post dominated by the back-edge block 40[%40] - %40 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.spvasm index 65afab8bbc..39460434f4 100644 --- a/test/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 64 +; Bound: 61 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -56,7 +54,7 @@ SKIP: FAILED %int_1 = OpConstant %int 1 %true = OpConstantTrue %bool %main_out = OpTypeStruct %v4float - %52 = OpTypeFunction %void %main_out + %49 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %12 %15 = OpLabel %m = OpVariable %_ptr_Function_int Function %19 @@ -76,52 +74,42 @@ SKIP: FAILED %38 = OpLabel OpBranch %37 %37 = OpLabel - OpSelectionMerge %40 None - OpBranchConditional %false %41 %42 - %41 = OpLabel - OpBranch %40 - %42 = OpLabel - OpBranch %36 - %40 = OpLabel - OpBranch %35 + OpBranchConditional %false %35 %36 %36 = OpLabel OpStore %m %int_1 + OpBranch %41 + %41 = OpLabel + OpLoopMerge %42 %43 None OpBranch %44 %44 = OpLabel - OpLoopMerge %45 %46 None - OpBranch %47 + OpSelectionMerge %46 None + OpBranchConditional %true %47 %48 %47 = OpLabel - OpSelectionMerge %49 None - OpBranchConditional %true %50 %51 - %50 = OpLabel - OpBranch %49 - %51 = OpLabel - OpBranch %45 - %49 = OpLabel - OpStore %x_GLF_color %22 OpBranch %46 + %48 = OpLabel + OpBranch %42 %46 = OpLabel - OpBranch %44 - %45 = OpLabel + OpStore %x_GLF_color %22 + OpBranch %43 + %43 = OpLabel + OpBranch %41 + %42 = OpLabel OpBranch %33 %33 = OpLabel OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %52 +%tint_symbol_2 = OpFunction %void None %49 %tint_symbol = OpFunctionParameter %main_out - %56 = OpLabel - %57 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %57 + %53 = OpLabel + %54 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %54 OpReturn OpFunctionEnd %main = OpFunction %void None %12 - %59 = OpLabel - %60 = OpFunctionCall %void %main_1 - %62 = OpLoad %v4float %x_GLF_color - %63 = OpCompositeConstruct %main_out %62 - %61 = OpFunctionCall %void %tint_symbol_2 %63 + %56 = OpLabel + %57 = OpFunctionCall %void %main_1 + %59 = OpLoad %v4float %x_GLF_color + %60 = OpCompositeConstruct %main_out %59 + %58 = OpFunctionCall %void %tint_symbol_2 %60 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 37[%37] is not post dominated by the back-edge block 40[%40] - %40 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.spvasm.expected.spvasm index 1f04f3b8be..6aedc1ecb9 100644 --- a/test/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 69 +; Bound: 66 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -57,7 +55,7 @@ SKIP: FAILED %bool = OpTypeBool %uint_1 = OpConstant %uint 1 %main_out = OpTypeStruct %v4float - %57 = OpTypeFunction %void %main_out + %54 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %12 %15 = OpLabel %j = OpVariable %_ptr_Function_int Function %19 @@ -97,34 +95,24 @@ SKIP: FAILED OpStore %x_41 %49 %50 = OpLoad %float %x_41 %51 = OpFOrdGreaterThan %bool %float_0 %50 - OpSelectionMerge %52 None - OpBranchConditional %51 %53 %54 - %53 = OpLabel - OpBranch %52 - %54 = OpLabel - OpBranch %27 - %52 = OpLabel - OpBranch %26 + OpBranchConditional %51 %26 %27 %27 = OpLabel - %56 = OpLoad %float %x_41 - %55 = OpConvertFToS %int %56 + %53 = OpLoad %float %x_41 + %52 = OpConvertFToS %int %53 OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %57 +%tint_symbol_2 = OpFunction %void None %54 %tint_symbol = OpFunctionParameter %main_out - %61 = OpLabel - %62 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %62 + %58 = OpLabel + %59 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %59 OpReturn OpFunctionEnd %main = OpFunction %void None %12 - %64 = OpLabel - %65 = OpFunctionCall %void %main_1 - %67 = OpLoad %v4float %x_GLF_color - %68 = OpCompositeConstruct %main_out %67 - %66 = OpFunctionCall %void %tint_symbol_2 %68 + %61 = OpLabel + %62 = OpFunctionCall %void %main_1 + %64 = OpLoad %v4float %x_GLF_color + %65 = OpCompositeConstruct %main_out %64 + %63 = OpFunctionCall %void %tint_symbol_2 %65 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 28[%28] is not post dominated by the back-edge block 52[%52] - %52 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.wgsl.expected.spvasm index 1f04f3b8be..6aedc1ecb9 100644 --- a/test/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 69 +; Bound: 66 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -57,7 +55,7 @@ SKIP: FAILED %bool = OpTypeBool %uint_1 = OpConstant %uint 1 %main_out = OpTypeStruct %v4float - %57 = OpTypeFunction %void %main_out + %54 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %12 %15 = OpLabel %j = OpVariable %_ptr_Function_int Function %19 @@ -97,34 +95,24 @@ SKIP: FAILED OpStore %x_41 %49 %50 = OpLoad %float %x_41 %51 = OpFOrdGreaterThan %bool %float_0 %50 - OpSelectionMerge %52 None - OpBranchConditional %51 %53 %54 - %53 = OpLabel - OpBranch %52 - %54 = OpLabel - OpBranch %27 - %52 = OpLabel - OpBranch %26 + OpBranchConditional %51 %26 %27 %27 = OpLabel - %56 = OpLoad %float %x_41 - %55 = OpConvertFToS %int %56 + %53 = OpLoad %float %x_41 + %52 = OpConvertFToS %int %53 OpReturn OpFunctionEnd -%tint_symbol_2 = OpFunction %void None %57 +%tint_symbol_2 = OpFunction %void None %54 %tint_symbol = OpFunctionParameter %main_out - %61 = OpLabel - %62 = OpCompositeExtract %v4float %tint_symbol 0 - OpStore %tint_symbol_1 %62 + %58 = OpLabel + %59 = OpCompositeExtract %v4float %tint_symbol 0 + OpStore %tint_symbol_1 %59 OpReturn OpFunctionEnd %main = OpFunction %void None %12 - %64 = OpLabel - %65 = OpFunctionCall %void %main_1 - %67 = OpLoad %v4float %x_GLF_color - %68 = OpCompositeConstruct %main_out %67 - %66 = OpFunctionCall %void %tint_symbol_2 %68 + %61 = OpLabel + %62 = OpFunctionCall %void %main_1 + %64 = OpLoad %v4float %x_GLF_color + %65 = OpCompositeConstruct %main_out %64 + %63 = OpFunctionCall %void %tint_symbol_2 %65 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 28[%28] is not post dominated by the back-edge block 52[%52] - %52 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.spvasm index ff486986c8..57b75fea05 100644 --- a/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 536 +; Bound: 527 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -157,8 +155,8 @@ SKIP: FAILED %int_50 = OpConstant %int 50 %_ptr_Function_float = OpTypePointer Function %float %_ptr_Uniform_float = OpTypePointer Uniform %float - %166 = OpTypeFunction %int %_ptr_Function_int - %207 = OpTypeFunction %float %_ptr_Function_float + %161 = OpTypeFunction %int %_ptr_Function_int + %202 = OpTypeFunction %float %_ptr_Function_float %float_6_5 = OpConstant %float 6.5 %float_1_5 = OpConstant %float 1.5 %int_100 = OpConstant %int 100 @@ -169,23 +167,23 @@ SKIP: FAILED %int_30 = OpConstant %int 30 %float_10 = OpConstant %float 10 %v3float = OpTypeVector %float 3 - %252 = OpTypeFunction %v3float %_ptr_Function_float - %258 = OpConstantNull %float + %247 = OpTypeFunction %v3float %_ptr_Function_float + %253 = OpConstantNull %float %int_15 = OpConstant %int 15 %float_30 = OpConstant %float 30 - %268 = OpConstantComposite %v3float %float_30 %float_30 %float_30 + %263 = OpConstantComposite %v3float %float_30 %float_30 %float_30 %float_5 = OpConstant %float 5 %float_50 = OpConstant %float 50 - %274 = OpConstantComposite %v3float %float_50 %float_50 %float_50 - %276 = OpTypeFunction %void + %269 = OpConstantComposite %v3float %float_50 %float_50 %float_50 + %271 = OpTypeFunction %void %_arr_float_uint_10 = OpTypeArray %float %uint_10 %Obj = OpTypeStruct %_arr_float_uint_10 %_arr_float_uint_10 %_ptr_Function_Obj = OpTypePointer Function %Obj - %305 = OpConstantNull %Obj + %300 = OpConstantNull %Obj %_ptr_Function_v2float = OpTypePointer Function %v2float - %312 = OpConstantNull %v2float + %307 = OpConstantNull %v2float %_ptr_Function_v3float = OpTypePointer Function %v3float - %324 = OpConstantNull %v3float + %319 = OpConstantNull %v3float %int_9 = OpConstant %int 9 %int_5 = OpConstant %int 5 %true = OpConstantTrue %bool @@ -198,12 +196,12 @@ SKIP: FAILED %int_17 = OpConstant %int 17 %int_13 = OpConstant %int 13 %float_256 = OpConstant %float 256 - %462 = OpConstantComposite %v2float %float_256 %float_256 + %453 = OpConstantComposite %v2float %float_256 %float_256 %int_n100 = OpConstant %int -100 %int_20 = OpConstant %int 20 - %514 = OpConstantComposite %v3float %float_1 %float_0 %float_0 + %505 = OpConstantComposite %v3float %float_1 %float_0 %float_0 %main_out = OpTypeStruct %v4float - %523 = OpTypeFunction %void %main_out + %514 = OpTypeFunction %void %main_out %makeTreeNode_struct_BST_i1_i1_i11_i1_ = OpFunction %void None %23 %tree = OpFunctionParameter %_ptr_Function_BST %data = OpFunctionParameter %_ptr_Function_int @@ -311,46 +309,34 @@ SKIP: FAILED %134 = OpLoad %int %GLF_live8i %135 = OpLoad %int %GLF_live8i %137 = OpSGreaterThanEqual %bool %133 %int_0 - OpSelectionMerge %138 None - OpBranchConditional %137 %139 %138 - %139 = OpLabel - %141 = OpSLessThan %bool %134 %int_50 - OpBranch %138 - %138 = OpLabel - %142 = OpPhi %bool %137 %116 %141 %139 - %136 = OpSelect %int %142 %135 %int_0 - %144 = OpAccessChain %_ptr_Function_float %GLF_live8A %int_0 + %139 = OpSLessThan %bool %134 %int_50 + %140 = OpLogicalAnd %bool %137 %139 + %136 = OpSelect %int %140 %135 %int_0 + %142 = OpAccessChain %_ptr_Function_float %GLF_live8A %int_0 + %143 = OpLoad %float %142 + %144 = OpAccessChain %_ptr_Function_float %GLF_live8A %136 %145 = OpLoad %float %144 %146 = OpAccessChain %_ptr_Function_float %GLF_live8A %136 - %147 = OpLoad %float %146 - %148 = OpAccessChain %_ptr_Function_float %GLF_live8A %136 - %149 = OpFAdd %float %147 %145 - OpStore %148 %149 + %147 = OpFAdd %float %145 %143 + OpStore %146 %147 + OpBranch %148 + %148 = OpLabel + OpLoopMerge %149 %150 None + OpBranch %151 + %151 = OpLabel + %152 = OpLoad %int %baseIndex + %153 = OpAccessChain %_ptr_Private_int %tree_1 %152 %uint_2 + %154 = OpLoad %int %153 + OpStore %baseIndex %154 OpBranch %150 %150 = OpLabel - OpLoopMerge %151 %152 None - OpBranch %153 - %153 = OpLabel - %154 = OpLoad %int %baseIndex - %155 = OpAccessChain %_ptr_Private_int %tree_1 %154 %uint_2 - %156 = OpLoad %int %155 - OpStore %baseIndex %156 - OpBranch %152 - %152 = OpLabel - %158 = OpAccessChain %_ptr_Uniform_float %x_27 %uint_0 %uint_0 + %156 = OpAccessChain %_ptr_Uniform_float %x_27 %uint_0 %uint_0 + %157 = OpLoad %float %156 + %158 = OpAccessChain %_ptr_Uniform_float %x_27 %uint_0 %uint_1 %159 = OpLoad %float %158 - %160 = OpAccessChain %_ptr_Uniform_float %x_27 %uint_0 %uint_1 - %161 = OpLoad %float %160 - %162 = OpFOrdGreaterThan %bool %159 %161 - OpSelectionMerge %163 None - OpBranchConditional %162 %164 %165 - %164 = OpLabel - OpBranch %163 - %165 = OpLabel - OpBranch %151 - %163 = OpLabel - OpBranch %150 - %151 = OpLabel + %160 = OpFOrdGreaterThan %bool %157 %159 + OpBranchConditional %160 %148 %149 + %149 = OpLabel OpBranch %64 %114 = OpLabel OpBranch %81 @@ -361,127 +347,127 @@ SKIP: FAILED %63 = OpLabel OpReturn OpFunctionEnd - %search_i1_ = OpFunction %int None %166 + %search_i1_ = OpFunction %int None %161 %target = OpFunctionParameter %_ptr_Function_int - %169 = OpLabel + %164 = OpLabel %index = OpVariable %_ptr_Function_int Function %49 %currentNode = OpVariable %_ptr_Function_BST Function %51 %x_387 = OpVariable %_ptr_Function_int Function %49 OpStore %index %int_0 - OpBranch %173 - %173 = OpLabel - OpLoopMerge %174 %175 None - OpBranch %176 - %176 = OpLabel - %177 = OpLoad %int %index - %178 = OpINotEqual %bool %177 %int_n1 - OpSelectionMerge %179 None - OpBranchConditional %178 %180 %181 - %180 = OpLabel - OpBranch %179 - %181 = OpLabel - OpBranch %174 - %179 = OpLabel - %182 = OpLoad %int %index - %183 = OpAccessChain %_ptr_Private_BST %tree_1 %182 - %184 = OpLoad %BST %183 - OpStore %currentNode %184 - %185 = OpAccessChain %_ptr_Function_int %currentNode %uint_0 - %186 = OpLoad %int %185 - %188 = OpLoad %int %target - %189 = OpIEqual %bool %186 %188 - OpSelectionMerge %190 None - OpBranchConditional %189 %191 %190 - %191 = OpLabel - %193 = OpLoad %int %target - OpReturnValue %193 - %190 = OpLabel - %195 = OpLoad %int %target - %196 = OpAccessChain %_ptr_Function_int %currentNode %uint_0 - %197 = OpLoad %int %196 - %198 = OpSGreaterThan %bool %195 %197 - OpSelectionMerge %199 None - OpBranchConditional %198 %200 %201 - %200 = OpLabel - %202 = OpAccessChain %_ptr_Function_int %currentNode %uint_2 - %203 = OpLoad %int %202 - OpStore %x_387 %203 - OpBranch %199 - %201 = OpLabel - %204 = OpAccessChain %_ptr_Function_int %currentNode %uint_1 - %205 = OpLoad %int %204 - OpStore %x_387 %205 - OpBranch %199 - %199 = OpLabel - %206 = OpLoad %int %x_387 - OpStore %index %206 - OpBranch %175 + OpBranch %168 + %168 = OpLabel + OpLoopMerge %169 %170 None + OpBranch %171 + %171 = OpLabel + %172 = OpLoad %int %index + %173 = OpINotEqual %bool %172 %int_n1 + OpSelectionMerge %174 None + OpBranchConditional %173 %175 %176 %175 = OpLabel - OpBranch %173 + OpBranch %174 + %176 = OpLabel + OpBranch %169 %174 = OpLabel + %177 = OpLoad %int %index + %178 = OpAccessChain %_ptr_Private_BST %tree_1 %177 + %179 = OpLoad %BST %178 + OpStore %currentNode %179 + %180 = OpAccessChain %_ptr_Function_int %currentNode %uint_0 + %181 = OpLoad %int %180 + %183 = OpLoad %int %target + %184 = OpIEqual %bool %181 %183 + OpSelectionMerge %185 None + OpBranchConditional %184 %186 %185 + %186 = OpLabel + %188 = OpLoad %int %target + OpReturnValue %188 + %185 = OpLabel + %190 = OpLoad %int %target + %191 = OpAccessChain %_ptr_Function_int %currentNode %uint_0 + %192 = OpLoad %int %191 + %193 = OpSGreaterThan %bool %190 %192 + OpSelectionMerge %194 None + OpBranchConditional %193 %195 %196 + %195 = OpLabel + %197 = OpAccessChain %_ptr_Function_int %currentNode %uint_2 + %198 = OpLoad %int %197 + OpStore %x_387 %198 + OpBranch %194 + %196 = OpLabel + %199 = OpAccessChain %_ptr_Function_int %currentNode %uint_1 + %200 = OpLoad %int %199 + OpStore %x_387 %200 + OpBranch %194 + %194 = OpLabel + %201 = OpLoad %int %x_387 + OpStore %index %201 + OpBranch %170 + %170 = OpLabel + OpBranch %168 + %169 = OpLabel OpReturnValue %int_n1 OpFunctionEnd -%makeFrame_f1_ = OpFunction %float None %207 +%makeFrame_f1_ = OpFunction %float None %202 %v = OpFunctionParameter %_ptr_Function_float - %210 = OpLabel + %205 = OpLabel %param_5 = OpVariable %_ptr_Function_int Function %49 %param_6 = OpVariable %_ptr_Function_int Function %49 %param_7 = OpVariable %_ptr_Function_int Function %49 + %210 = OpLoad %float %v + %213 = OpFMul %float %210 %float_6_5 + OpStore %v %213 %215 = OpLoad %float %v - %218 = OpFMul %float %215 %float_6_5 - OpStore %v %218 - %220 = OpLoad %float %v - %222 = OpFOrdLessThan %bool %220 %float_1_5 - OpSelectionMerge %223 None - OpBranchConditional %222 %224 %223 - %224 = OpLabel + %217 = OpFOrdLessThan %bool %215 %float_1_5 + OpSelectionMerge %218 None + OpBranchConditional %217 %219 %218 + %219 = OpLabel OpStore %param_5 %int_100 - %226 = OpFunctionCall %int %search_i1_ %param_5 - %228 = OpConvertSToF %float %226 - OpReturnValue %228 - %223 = OpLabel - %230 = OpLoad %float %v - %232 = OpFOrdLessThan %bool %230 %float_4 - OpSelectionMerge %233 None - OpBranchConditional %232 %234 %233 - %234 = OpLabel + %221 = OpFunctionCall %int %search_i1_ %param_5 + %223 = OpConvertSToF %float %221 + OpReturnValue %223 + %218 = OpLabel + %225 = OpLoad %float %v + %227 = OpFOrdLessThan %bool %225 %float_4 + OpSelectionMerge %228 None + OpBranchConditional %227 %229 %228 + %229 = OpLabel OpReturnValue %float_0 - %233 = OpLabel - %237 = OpLoad %float %v + %228 = OpLabel + %232 = OpLoad %float %v OpStore %param_6 %int_6 - %239 = OpFunctionCall %int %search_i1_ %param_6 - %241 = OpConvertSToF %float %239 - %242 = OpFOrdLessThan %bool %237 %241 - OpSelectionMerge %243 None - OpBranchConditional %242 %244 %243 - %244 = OpLabel + %234 = OpFunctionCall %int %search_i1_ %param_6 + %236 = OpConvertSToF %float %234 + %237 = OpFOrdLessThan %bool %232 %236 + OpSelectionMerge %238 None + OpBranchConditional %237 %239 %238 + %239 = OpLabel OpReturnValue %float_1 - %243 = OpLabel + %238 = OpLabel OpStore %param_7 %int_30 - %247 = OpFunctionCall %int %search_i1_ %param_7 - %250 = OpConvertSToF %float %247 - %251 = OpFAdd %float %float_10 %250 - OpReturnValue %251 + %242 = OpFunctionCall %int %search_i1_ %param_7 + %245 = OpConvertSToF %float %242 + %246 = OpFAdd %float %float_10 %245 + OpReturnValue %246 OpFunctionEnd -%hueColor_f1_ = OpFunction %v3float None %252 +%hueColor_f1_ = OpFunction %v3float None %247 %angle = OpFunctionParameter %_ptr_Function_float - %256 = OpLabel - %nodeData = OpVariable %_ptr_Function_float Function %258 + %251 = OpLabel + %nodeData = OpVariable %_ptr_Function_float Function %253 %param_4 = OpVariable %_ptr_Function_int Function %49 OpStore %param_4 %int_15 - %261 = OpFunctionCall %int %search_i1_ %param_4 - %263 = OpConvertSToF %float %261 - OpStore %nodeData %263 - %265 = OpLoad %float %angle - %266 = OpLoad %float %nodeData - %270 = OpCompositeConstruct %v3float %float_1 %float_5 %266 - %271 = OpVectorTimesScalar %v3float %270 %265 - %272 = OpFAdd %v3float %268 %271 - %275 = OpFDiv %v3float %272 %274 - OpReturnValue %275 + %256 = OpFunctionCall %int %search_i1_ %param_4 + %258 = OpConvertSToF %float %256 + OpStore %nodeData %258 + %260 = OpLoad %float %angle + %261 = OpLoad %float %nodeData + %265 = OpCompositeConstruct %v3float %float_1 %float_5 %261 + %266 = OpVectorTimesScalar %v3float %265 %260 + %267 = OpFAdd %v3float %263 %266 + %270 = OpFDiv %v3float %267 %269 + OpReturnValue %270 OpFunctionEnd - %main_1 = OpFunction %void None %276 - %278 = OpLabel + %main_1 = OpFunction %void None %271 + %273 = OpLabel %treeIndex_1 = OpVariable %_ptr_Function_int Function %49 %param_8 = OpVariable %_ptr_Function_BST Function %51 %param_9 = OpVariable %_ptr_Function_int Function %49 @@ -504,312 +490,299 @@ SKIP: FAILED %GLF_live4_looplimiter3 = OpVariable %_ptr_Function_int Function %49 %GLF_live4i = OpVariable %_ptr_Function_int Function %49 %GLF_live4index = OpVariable %_ptr_Function_int Function %49 -%GLF_live4obj = OpVariable %_ptr_Function_Obj Function %305 +%GLF_live4obj = OpVariable %_ptr_Function_Obj Function %300 %param_24 = OpVariable %_ptr_Function_int Function %49 %param_25 = OpVariable %_ptr_Function_int Function %49 %param_26 = OpVariable %_ptr_Function_int Function %49 %param_27 = OpVariable %_ptr_Function_int Function %49 - %z = OpVariable %_ptr_Function_v2float Function %312 - %x = OpVariable %_ptr_Function_float Function %258 - %param_28 = OpVariable %_ptr_Function_float Function %258 - %y = OpVariable %_ptr_Function_float Function %258 - %param_29 = OpVariable %_ptr_Function_float Function %258 + %z = OpVariable %_ptr_Function_v2float Function %307 + %x = OpVariable %_ptr_Function_float Function %253 + %param_28 = OpVariable %_ptr_Function_float Function %253 + %y = OpVariable %_ptr_Function_float Function %253 + %param_29 = OpVariable %_ptr_Function_float Function %253 %sum = OpVariable %_ptr_Function_int Function %49 %target_1 = OpVariable %_ptr_Function_int Function %49 %result = OpVariable %_ptr_Function_int Function %49 %param_30 = OpVariable %_ptr_Function_int Function %49 - %a = OpVariable %_ptr_Function_float Function %258 - %x_235 = OpVariable %_ptr_Function_v3float Function %324 - %param_31 = OpVariable %_ptr_Function_float Function %258 + %a = OpVariable %_ptr_Function_float Function %253 + %x_235 = OpVariable %_ptr_Function_v3float Function %319 + %param_31 = OpVariable %_ptr_Function_float Function %253 OpStore %treeIndex_1 %int_0 - %326 = OpAccessChain %_ptr_Private_BST %tree_1 %int_0 - %327 = OpLoad %BST %326 - OpStore %param_8 %327 + %321 = OpAccessChain %_ptr_Private_BST %tree_1 %int_0 + %322 = OpLoad %BST %321 + OpStore %param_8 %322 OpStore %param_9 %int_9 - %329 = OpFunctionCall %void %makeTreeNode_struct_BST_i1_i1_i11_i1_ %param_8 %param_9 - %332 = OpLoad %BST %param_8 - %333 = OpAccessChain %_ptr_Private_BST %tree_1 %int_0 - OpStore %333 %332 - %334 = OpLoad %int %treeIndex_1 - %335 = OpIAdd %int %334 %int_1 - OpStore %treeIndex_1 %335 - %336 = OpLoad %int %treeIndex_1 - OpStore %param_10 %336 + %324 = OpFunctionCall %void %makeTreeNode_struct_BST_i1_i1_i11_i1_ %param_8 %param_9 + %327 = OpLoad %BST %param_8 + %328 = OpAccessChain %_ptr_Private_BST %tree_1 %int_0 + OpStore %328 %327 + %329 = OpLoad %int %treeIndex_1 + %330 = OpIAdd %int %329 %int_1 + OpStore %treeIndex_1 %330 + %331 = OpLoad %int %treeIndex_1 + OpStore %param_10 %331 OpStore %param_11 %int_5 - %338 = OpFunctionCall %void %insert_i1_i1_ %param_10 %param_11 - %341 = OpLoad %int %treeIndex_1 - %342 = OpIAdd %int %341 %int_1 - OpStore %treeIndex_1 %342 + %333 = OpFunctionCall %void %insert_i1_i1_ %param_10 %param_11 + %336 = OpLoad %int %treeIndex_1 + %337 = OpIAdd %int %336 %int_1 + OpStore %treeIndex_1 %337 OpStore %GLF_live1_looplimiter2 %int_0 OpStore %GLF_live1i %int_0 - OpBranch %343 - %343 = OpLabel - OpLoopMerge %344 %345 None - OpBranch %346 - %346 = OpLabel - OpSelectionMerge %348 None - OpBranchConditional %true %349 %350 - %349 = OpLabel - OpBranch %348 - %350 = OpLabel - OpBranch %344 - %348 = OpLabel - %351 = OpLoad %int %GLF_live1_looplimiter2 - %353 = OpSGreaterThanEqual %bool %351 %int_7 - OpSelectionMerge %354 None - OpBranchConditional %353 %355 %354 - %355 = OpLabel - OpBranch %344 - %354 = OpLabel - %356 = OpLoad %int %GLF_live1_looplimiter2 - %357 = OpIAdd %int %356 %int_1 - OpStore %GLF_live1_looplimiter2 %357 - OpBranch %345 - %345 = OpLabel - %358 = OpLoad %int %GLF_live1i - %359 = OpIAdd %int %358 %int_1 - OpStore %GLF_live1i %359 - OpBranch %343 + OpBranch %338 + %338 = OpLabel + OpLoopMerge %339 %340 None + OpBranch %341 + %341 = OpLabel + OpSelectionMerge %343 None + OpBranchConditional %true %344 %345 %344 = OpLabel - %360 = OpLoad %int %treeIndex_1 - OpStore %param_12 %360 + OpBranch %343 + %345 = OpLabel + OpBranch %339 + %343 = OpLabel + %346 = OpLoad %int %GLF_live1_looplimiter2 + %348 = OpSGreaterThanEqual %bool %346 %int_7 + OpSelectionMerge %349 None + OpBranchConditional %348 %350 %349 + %350 = OpLabel + OpBranch %339 + %349 = OpLabel + %351 = OpLoad %int %GLF_live1_looplimiter2 + %352 = OpIAdd %int %351 %int_1 + OpStore %GLF_live1_looplimiter2 %352 + OpBranch %340 + %340 = OpLabel + %353 = OpLoad %int %GLF_live1i + %354 = OpIAdd %int %353 %int_1 + OpStore %GLF_live1i %354 + OpBranch %338 + %339 = OpLabel + %355 = OpLoad %int %treeIndex_1 + OpStore %param_12 %355 OpStore %param_13 %int_12 - %362 = OpFunctionCall %void %insert_i1_i1_ %param_12 %param_13 - %365 = OpLoad %int %treeIndex_1 - %366 = OpIAdd %int %365 %int_1 - OpStore %treeIndex_1 %366 - %367 = OpLoad %int %treeIndex_1 - OpStore %param_14 %367 + %357 = OpFunctionCall %void %insert_i1_i1_ %param_12 %param_13 + %360 = OpLoad %int %treeIndex_1 + %361 = OpIAdd %int %360 %int_1 + OpStore %treeIndex_1 %361 + %362 = OpLoad %int %treeIndex_1 + OpStore %param_14 %362 OpStore %param_15 %int_15 - %368 = OpFunctionCall %void %insert_i1_i1_ %param_14 %param_15 - %371 = OpLoad %int %treeIndex_1 - %372 = OpIAdd %int %371 %int_1 - OpStore %treeIndex_1 %372 - %373 = OpLoad %int %treeIndex_1 - OpStore %param_16 %373 + %363 = OpFunctionCall %void %insert_i1_i1_ %param_14 %param_15 + %366 = OpLoad %int %treeIndex_1 + %367 = OpIAdd %int %366 %int_1 + OpStore %treeIndex_1 %367 + %368 = OpLoad %int %treeIndex_1 + OpStore %param_16 %368 OpStore %param_17 %int_7 - %374 = OpFunctionCall %void %insert_i1_i1_ %param_16 %param_17 - %377 = OpLoad %int %treeIndex_1 - %378 = OpIAdd %int %377 %int_1 - OpStore %treeIndex_1 %378 - %379 = OpLoad %int %treeIndex_1 - OpStore %param_18 %379 + %369 = OpFunctionCall %void %insert_i1_i1_ %param_16 %param_17 + %372 = OpLoad %int %treeIndex_1 + %373 = OpIAdd %int %372 %int_1 + OpStore %treeIndex_1 %373 + %374 = OpLoad %int %treeIndex_1 + OpStore %param_18 %374 OpStore %param_19 %int_8 - %381 = OpFunctionCall %void %insert_i1_i1_ %param_18 %param_19 - %384 = OpLoad %int %treeIndex_1 - %385 = OpIAdd %int %384 %int_1 - OpStore %treeIndex_1 %385 - %386 = OpLoad %int %treeIndex_1 - OpStore %param_20 %386 + %376 = OpFunctionCall %void %insert_i1_i1_ %param_18 %param_19 + %379 = OpLoad %int %treeIndex_1 + %380 = OpIAdd %int %379 %int_1 + OpStore %treeIndex_1 %380 + %381 = OpLoad %int %treeIndex_1 + OpStore %param_20 %381 OpStore %param_21 %int_2 - %388 = OpFunctionCall %void %insert_i1_i1_ %param_20 %param_21 - %391 = OpLoad %int %treeIndex_1 - %392 = OpIAdd %int %391 %int_1 - OpStore %treeIndex_1 %392 - %393 = OpLoad %int %treeIndex_1 - OpStore %param_22 %393 + %383 = OpFunctionCall %void %insert_i1_i1_ %param_20 %param_21 + %386 = OpLoad %int %treeIndex_1 + %387 = OpIAdd %int %386 %int_1 + OpStore %treeIndex_1 %387 + %388 = OpLoad %int %treeIndex_1 + OpStore %param_22 %388 OpStore %param_23 %int_6 - %394 = OpFunctionCall %void %insert_i1_i1_ %param_22 %param_23 - %397 = OpLoad %int %treeIndex_1 - %398 = OpIAdd %int %397 %int_1 - OpStore %treeIndex_1 %398 + %389 = OpFunctionCall %void %insert_i1_i1_ %param_22 %param_23 + %392 = OpLoad %int %treeIndex_1 + %393 = OpIAdd %int %392 %int_1 + OpStore %treeIndex_1 %393 OpStore %GLF_live4_looplimiter3 %int_0 OpStore %GLF_live4i %int_0 - OpBranch %399 + OpBranch %394 + %394 = OpLabel + OpLoopMerge %395 %396 None + OpBranch %397 + %397 = OpLabel + OpSelectionMerge %398 None + OpBranchConditional %true %399 %400 %399 = OpLabel - OpLoopMerge %400 %401 None - OpBranch %402 - %402 = OpLabel - OpSelectionMerge %403 None - OpBranchConditional %true %404 %405 - %404 = OpLabel - OpBranch %403 - %405 = OpLabel - OpBranch %400 - %403 = OpLabel - %406 = OpLoad %int %GLF_live4_looplimiter3 - %408 = OpSGreaterThanEqual %bool %406 %int_3 - OpSelectionMerge %409 None - OpBranchConditional %408 %410 %409 - %410 = OpLabel - OpBranch %400 - %409 = OpLabel - %411 = OpLoad %int %GLF_live4_looplimiter3 - %412 = OpIAdd %int %411 %int_1 - OpStore %GLF_live4_looplimiter3 %412 - OpStore %GLF_live4index %int_1 - %413 = OpLoad %int %GLF_live4index - %414 = OpLoad %int %GLF_live4index - %415 = OpLoad %int %GLF_live4index - %416 = OpAccessChain %_ptr_Function_float %GLF_live4obj %uint_1 %int_1 - %417 = OpLoad %float %416 - %419 = OpSGreaterThanEqual %bool %413 %int_0 - OpSelectionMerge %420 None - OpBranchConditional %419 %421 %420 - %421 = OpLabel - %423 = OpSLessThan %bool %414 %int_10 - OpBranch %420 - %420 = OpLabel - %424 = OpPhi %bool %419 %409 %423 %421 - %418 = OpSelect %int %424 %415 %int_0 - %425 = OpAccessChain %_ptr_Function_float %GLF_live4obj %uint_1 %418 - OpStore %425 %417 - %426 = OpLoad %int %GLF_live4i - %427 = OpLoad %int %GLF_live4i - %428 = OpLoad %int %GLF_live4i - %430 = OpSGreaterThanEqual %bool %426 %int_0 - OpSelectionMerge %431 None - OpBranchConditional %430 %432 %431 - %432 = OpLabel - %433 = OpSLessThan %bool %427 %int_10 - OpBranch %431 - %431 = OpLabel - %434 = OpPhi %bool %430 %420 %433 %432 - %429 = OpSelect %int %434 %428 %int_0 - %435 = OpAccessChain %_ptr_Function_float %GLF_live4obj %uint_1 %429 - OpStore %435 %float_1 - OpBranch %401 - %401 = OpLabel - %436 = OpLoad %int %GLF_live4i - %437 = OpIAdd %int %436 %int_1 - OpStore %GLF_live4i %437 - OpBranch %399 + OpBranch %398 %400 = OpLabel - %438 = OpLoad %int %treeIndex_1 - OpStore %param_24 %438 + OpBranch %395 + %398 = OpLabel + %401 = OpLoad %int %GLF_live4_looplimiter3 + %403 = OpSGreaterThanEqual %bool %401 %int_3 + OpSelectionMerge %404 None + OpBranchConditional %403 %405 %404 + %405 = OpLabel + OpBranch %395 + %404 = OpLabel + %406 = OpLoad %int %GLF_live4_looplimiter3 + %407 = OpIAdd %int %406 %int_1 + OpStore %GLF_live4_looplimiter3 %407 + OpStore %GLF_live4index %int_1 + %408 = OpLoad %int %GLF_live4index + %409 = OpLoad %int %GLF_live4index + %410 = OpLoad %int %GLF_live4index + %411 = OpAccessChain %_ptr_Function_float %GLF_live4obj %uint_1 %int_1 + %412 = OpLoad %float %411 + %414 = OpSGreaterThanEqual %bool %408 %int_0 + %416 = OpSLessThan %bool %409 %int_10 + %417 = OpLogicalAnd %bool %414 %416 + %413 = OpSelect %int %417 %410 %int_0 + %418 = OpAccessChain %_ptr_Function_float %GLF_live4obj %uint_1 %413 + OpStore %418 %412 + %419 = OpLoad %int %GLF_live4i + %420 = OpLoad %int %GLF_live4i + %421 = OpLoad %int %GLF_live4i + %423 = OpSGreaterThanEqual %bool %419 %int_0 + %424 = OpSLessThan %bool %420 %int_10 + %425 = OpLogicalAnd %bool %423 %424 + %422 = OpSelect %int %425 %421 %int_0 + %426 = OpAccessChain %_ptr_Function_float %GLF_live4obj %uint_1 %422 + OpStore %426 %float_1 + OpBranch %396 + %396 = OpLabel + %427 = OpLoad %int %GLF_live4i + %428 = OpIAdd %int %427 %int_1 + OpStore %GLF_live4i %428 + OpBranch %394 + %395 = OpLabel + %429 = OpLoad %int %treeIndex_1 + OpStore %param_24 %429 OpStore %param_25 %int_17 - %440 = OpFunctionCall %void %insert_i1_i1_ %param_24 %param_25 - %443 = OpAccessChain %_ptr_Uniform_float %x_27 %uint_0 %uint_0 - %444 = OpLoad %float %443 - %445 = OpAccessChain %_ptr_Uniform_float %x_27 %uint_0 %uint_1 - %446 = OpLoad %float %445 - %447 = OpFOrdGreaterThan %bool %444 %446 - OpSelectionMerge %448 None - OpBranchConditional %447 %449 %448 - %449 = OpLabel + %431 = OpFunctionCall %void %insert_i1_i1_ %param_24 %param_25 + %434 = OpAccessChain %_ptr_Uniform_float %x_27 %uint_0 %uint_0 + %435 = OpLoad %float %434 + %436 = OpAccessChain %_ptr_Uniform_float %x_27 %uint_0 %uint_1 + %437 = OpLoad %float %436 + %438 = OpFOrdGreaterThan %bool %435 %437 + OpSelectionMerge %439 None + OpBranchConditional %438 %440 %439 + %440 = OpLabel OpReturn - %448 = OpLabel - %450 = OpLoad %int %treeIndex_1 - %451 = OpIAdd %int %450 %int_1 - OpStore %treeIndex_1 %451 - %452 = OpLoad %int %treeIndex_1 - OpStore %param_26 %452 + %439 = OpLabel + %441 = OpLoad %int %treeIndex_1 + %442 = OpIAdd %int %441 %int_1 + OpStore %treeIndex_1 %442 + %443 = OpLoad %int %treeIndex_1 + OpStore %param_26 %443 OpStore %param_27 %int_13 - %454 = OpFunctionCall %void %insert_i1_i1_ %param_26 %param_27 - %457 = OpLoad %v4float %gl_FragCoord - %458 = OpCompositeExtract %float %457 1 - %459 = OpCompositeExtract %float %457 0 - %460 = OpCompositeConstruct %v2float %458 %459 - %463 = OpFDiv %v2float %460 %462 - OpStore %z %463 - %464 = OpAccessChain %_ptr_Function_float %z %uint_0 - %465 = OpLoad %float %464 - OpStore %param_28 %465 - %466 = OpFunctionCall %float %makeFrame_f1_ %param_28 - OpStore %x %466 - %468 = OpAccessChain %_ptr_Function_float %z %uint_1 - %469 = OpLoad %float %468 - OpStore %param_29 %469 - %470 = OpFunctionCall %float %makeFrame_f1_ %param_29 - OpStore %y %470 + %445 = OpFunctionCall %void %insert_i1_i1_ %param_26 %param_27 + %448 = OpLoad %v4float %gl_FragCoord + %449 = OpCompositeExtract %float %448 1 + %450 = OpCompositeExtract %float %448 0 + %451 = OpCompositeConstruct %v2float %449 %450 + %454 = OpFDiv %v2float %451 %453 + OpStore %z %454 + %455 = OpAccessChain %_ptr_Function_float %z %uint_0 + %456 = OpLoad %float %455 + OpStore %param_28 %456 + %457 = OpFunctionCall %float %makeFrame_f1_ %param_28 + OpStore %x %457 + %459 = OpAccessChain %_ptr_Function_float %z %uint_1 + %460 = OpLoad %float %459 + OpStore %param_29 %460 + %461 = OpFunctionCall %float %makeFrame_f1_ %param_29 + OpStore %y %461 OpStore %sum %int_n100 OpStore %target_1 %int_0 - OpBranch %473 + OpBranch %464 + %464 = OpLabel + OpLoopMerge %465 %466 None + OpBranch %467 + %467 = OpLabel + %468 = OpLoad %int %target_1 + %470 = OpSLessThan %bool %468 %int_20 + OpSelectionMerge %471 None + OpBranchConditional %470 %472 %473 + %472 = OpLabel + OpBranch %471 %473 = OpLabel - OpLoopMerge %474 %475 None - OpBranch %476 - %476 = OpLabel - %477 = OpLoad %int %target_1 - %479 = OpSLessThan %bool %477 %int_20 - OpSelectionMerge %480 None - OpBranchConditional %479 %481 %482 - %481 = OpLabel - OpBranch %480 - %482 = OpLabel - OpBranch %474 + OpBranch %465 + %471 = OpLabel + %474 = OpLoad %int %target_1 + OpStore %param_30 %474 + %475 = OpFunctionCall %int %search_i1_ %param_30 + OpStore %result %475 + %477 = OpLoad %int %result + %478 = OpSGreaterThan %bool %477 %int_0 + OpSelectionMerge %479 None + OpBranchConditional %478 %480 %481 %480 = OpLabel - %483 = OpLoad %int %target_1 - OpStore %param_30 %483 - %484 = OpFunctionCall %int %search_i1_ %param_30 - OpStore %result %484 - %486 = OpLoad %int %result - %487 = OpSGreaterThan %bool %486 %int_0 - OpSelectionMerge %488 None - OpBranchConditional %487 %489 %490 - %489 = OpLabel - OpBranch %488 - %490 = OpLabel - %491 = OpLoad %int %result - OpSelectionMerge %492 None - OpSwitch %491 %493 0 %494 -1 %495 - %494 = OpLabel + OpBranch %479 + %481 = OpLabel + %482 = OpLoad %int %result + OpSelectionMerge %483 None + OpSwitch %482 %484 0 %485 -1 %486 + %485 = OpLabel OpReturn - %495 = OpLabel - %496 = OpLoad %int %sum - %497 = OpIAdd %int %496 %int_1 - OpStore %sum %497 - OpBranch %492 - %493 = OpLabel - OpBranch %492 - %492 = OpLabel - OpBranch %488 - %488 = OpLabel - OpBranch %475 - %475 = OpLabel - %498 = OpLoad %int %target_1 - %499 = OpIAdd %int %498 %int_1 - OpStore %target_1 %499 - OpBranch %473 - %474 = OpLabel - %500 = OpLoad %float %x - %501 = OpLoad %float %y - %502 = OpLoad %int %sum - %503 = OpConvertSToF %float %502 - %504 = OpFMul %float %501 %503 - %505 = OpFAdd %float %500 %504 - OpStore %a %505 - %506 = OpAccessChain %_ptr_Uniform_float %x_27 %uint_0 %uint_0 - %507 = OpLoad %float %506 - %508 = OpAccessChain %_ptr_Uniform_float %x_27 %uint_0 %uint_1 - %509 = OpLoad %float %508 - %510 = OpFOrdLessThan %bool %507 %509 - OpSelectionMerge %511 None - OpBranchConditional %510 %512 %513 - %512 = OpLabel - OpStore %x_235 %514 - OpBranch %511 - %513 = OpLabel - %515 = OpLoad %float %a - OpStore %param_31 %515 - %516 = OpFunctionCall %v3float %hueColor_f1_ %param_31 - OpStore %x_235 %516 - OpBranch %511 - %511 = OpLabel - %518 = OpLoad %v3float %x_235 - %519 = OpCompositeExtract %float %518 0 - %520 = OpCompositeExtract %float %518 1 - %521 = OpCompositeExtract %float %518 2 - %522 = OpCompositeConstruct %v4float %519 %520 %521 %float_1 - OpStore %x_GLF_color %522 + %486 = OpLabel + %487 = OpLoad %int %sum + %488 = OpIAdd %int %487 %int_1 + OpStore %sum %488 + OpBranch %483 + %484 = OpLabel + OpBranch %483 + %483 = OpLabel + OpBranch %479 + %479 = OpLabel + OpBranch %466 + %466 = OpLabel + %489 = OpLoad %int %target_1 + %490 = OpIAdd %int %489 %int_1 + OpStore %target_1 %490 + OpBranch %464 + %465 = OpLabel + %491 = OpLoad %float %x + %492 = OpLoad %float %y + %493 = OpLoad %int %sum + %494 = OpConvertSToF %float %493 + %495 = OpFMul %float %492 %494 + %496 = OpFAdd %float %491 %495 + OpStore %a %496 + %497 = OpAccessChain %_ptr_Uniform_float %x_27 %uint_0 %uint_0 + %498 = OpLoad %float %497 + %499 = OpAccessChain %_ptr_Uniform_float %x_27 %uint_0 %uint_1 + %500 = OpLoad %float %499 + %501 = OpFOrdLessThan %bool %498 %500 + OpSelectionMerge %502 None + OpBranchConditional %501 %503 %504 + %503 = OpLabel + OpStore %x_235 %505 + OpBranch %502 + %504 = OpLabel + %506 = OpLoad %float %a + OpStore %param_31 %506 + %507 = OpFunctionCall %v3float %hueColor_f1_ %param_31 + OpStore %x_235 %507 + OpBranch %502 + %502 = OpLabel + %509 = OpLoad %v3float %x_235 + %510 = OpCompositeExtract %float %509 0 + %511 = OpCompositeExtract %float %509 1 + %512 = OpCompositeExtract %float %509 2 + %513 = OpCompositeConstruct %v4float %510 %511 %512 %float_1 + OpStore %x_GLF_color %513 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %523 +%tint_symbol_3 = OpFunction %void None %514 %tint_symbol_1 = OpFunctionParameter %main_out - %527 = OpLabel - %528 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %528 + %518 = OpLabel + %519 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %519 OpReturn OpFunctionEnd - %main = OpFunction %void None %276 - %530 = OpLabel - %531 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %531 - %532 = OpFunctionCall %void %main_1 - %534 = OpLoad %v4float %x_GLF_color - %535 = OpCompositeConstruct %main_out %534 - %533 = OpFunctionCall %void %tint_symbol_3 %535 + %main = OpFunction %void None %271 + %521 = OpLabel + %522 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %522 + %523 = OpFunctionCall %void %main_1 + %525 = OpLoad %v4float %x_GLF_color + %526 = OpCompositeConstruct %main_out %525 + %524 = OpFunctionCall %void %tint_symbol_3 %526 OpReturn OpFunctionEnd -1:1: The continue construct with the continue target 152[%152] is not post dominated by the back-edge block 163[%163] - %163 = OpLabel - diff --git a/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.wgsl.expected.spvasm index ff486986c8..9e387b99f5 100644 --- a/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.wgsl.expected.spvasm +++ b/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.wgsl.expected.spvasm @@ -1,9 +1,7 @@ -SKIP: FAILED - ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 536 +; Bound: 533 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -157,8 +155,8 @@ SKIP: FAILED %int_50 = OpConstant %int 50 %_ptr_Function_float = OpTypePointer Function %float %_ptr_Uniform_float = OpTypePointer Uniform %float - %166 = OpTypeFunction %int %_ptr_Function_int - %207 = OpTypeFunction %float %_ptr_Function_float + %163 = OpTypeFunction %int %_ptr_Function_int + %204 = OpTypeFunction %float %_ptr_Function_float %float_6_5 = OpConstant %float 6.5 %float_1_5 = OpConstant %float 1.5 %int_100 = OpConstant %int 100 @@ -169,23 +167,23 @@ SKIP: FAILED %int_30 = OpConstant %int 30 %float_10 = OpConstant %float 10 %v3float = OpTypeVector %float 3 - %252 = OpTypeFunction %v3float %_ptr_Function_float - %258 = OpConstantNull %float + %249 = OpTypeFunction %v3float %_ptr_Function_float + %255 = OpConstantNull %float %int_15 = OpConstant %int 15 %float_30 = OpConstant %float 30 - %268 = OpConstantComposite %v3float %float_30 %float_30 %float_30 + %265 = OpConstantComposite %v3float %float_30 %float_30 %float_30 %float_5 = OpConstant %float 5 %float_50 = OpConstant %float 50 - %274 = OpConstantComposite %v3float %float_50 %float_50 %float_50 - %276 = OpTypeFunction %void + %271 = OpConstantComposite %v3float %float_50 %float_50 %float_50 + %273 = OpTypeFunction %void %_arr_float_uint_10 = OpTypeArray %float %uint_10 %Obj = OpTypeStruct %_arr_float_uint_10 %_arr_float_uint_10 %_ptr_Function_Obj = OpTypePointer Function %Obj - %305 = OpConstantNull %Obj + %302 = OpConstantNull %Obj %_ptr_Function_v2float = OpTypePointer Function %v2float - %312 = OpConstantNull %v2float + %309 = OpConstantNull %v2float %_ptr_Function_v3float = OpTypePointer Function %v3float - %324 = OpConstantNull %v3float + %321 = OpConstantNull %v3float %int_9 = OpConstant %int 9 %int_5 = OpConstant %int 5 %true = OpConstantTrue %bool @@ -198,12 +196,12 @@ SKIP: FAILED %int_17 = OpConstant %int 17 %int_13 = OpConstant %int 13 %float_256 = OpConstant %float 256 - %462 = OpConstantComposite %v2float %float_256 %float_256 + %459 = OpConstantComposite %v2float %float_256 %float_256 %int_n100 = OpConstant %int -100 %int_20 = OpConstant %int 20 - %514 = OpConstantComposite %v3float %float_1 %float_0 %float_0 + %511 = OpConstantComposite %v3float %float_1 %float_0 %float_0 %main_out = OpTypeStruct %v4float - %523 = OpTypeFunction %void %main_out + %520 = OpTypeFunction %void %main_out %makeTreeNode_struct_BST_i1_i1_i11_i1_ = OpFunction %void None %23 %tree = OpFunctionParameter %_ptr_Function_BST %data = OpFunctionParameter %_ptr_Function_int @@ -342,14 +340,7 @@ SKIP: FAILED %160 = OpAccessChain %_ptr_Uniform_float %x_27 %uint_0 %uint_1 %161 = OpLoad %float %160 %162 = OpFOrdGreaterThan %bool %159 %161 - OpSelectionMerge %163 None - OpBranchConditional %162 %164 %165 - %164 = OpLabel - OpBranch %163 - %165 = OpLabel - OpBranch %151 - %163 = OpLabel - OpBranch %150 + OpBranchConditional %162 %150 %151 %151 = OpLabel OpBranch %64 %114 = OpLabel @@ -361,127 +352,127 @@ SKIP: FAILED %63 = OpLabel OpReturn OpFunctionEnd - %search_i1_ = OpFunction %int None %166 + %search_i1_ = OpFunction %int None %163 %target = OpFunctionParameter %_ptr_Function_int - %169 = OpLabel + %166 = OpLabel %index = OpVariable %_ptr_Function_int Function %49 %currentNode = OpVariable %_ptr_Function_BST Function %51 %x_387 = OpVariable %_ptr_Function_int Function %49 OpStore %index %int_0 + OpBranch %170 + %170 = OpLabel + OpLoopMerge %171 %172 None OpBranch %173 %173 = OpLabel - OpLoopMerge %174 %175 None + %174 = OpLoad %int %index + %175 = OpINotEqual %bool %174 %int_n1 + OpSelectionMerge %176 None + OpBranchConditional %175 %177 %178 + %177 = OpLabel OpBranch %176 + %178 = OpLabel + OpBranch %171 %176 = OpLabel - %177 = OpLoad %int %index - %178 = OpINotEqual %bool %177 %int_n1 - OpSelectionMerge %179 None - OpBranchConditional %178 %180 %181 - %180 = OpLabel - OpBranch %179 - %181 = OpLabel - OpBranch %174 - %179 = OpLabel - %182 = OpLoad %int %index - %183 = OpAccessChain %_ptr_Private_BST %tree_1 %182 - %184 = OpLoad %BST %183 - OpStore %currentNode %184 - %185 = OpAccessChain %_ptr_Function_int %currentNode %uint_0 - %186 = OpLoad %int %185 - %188 = OpLoad %int %target - %189 = OpIEqual %bool %186 %188 - OpSelectionMerge %190 None - OpBranchConditional %189 %191 %190 - %191 = OpLabel - %193 = OpLoad %int %target - OpReturnValue %193 - %190 = OpLabel - %195 = OpLoad %int %target - %196 = OpAccessChain %_ptr_Function_int %currentNode %uint_0 - %197 = OpLoad %int %196 - %198 = OpSGreaterThan %bool %195 %197 - OpSelectionMerge %199 None - OpBranchConditional %198 %200 %201 - %200 = OpLabel - %202 = OpAccessChain %_ptr_Function_int %currentNode %uint_2 - %203 = OpLoad %int %202 - OpStore %x_387 %203 - OpBranch %199 - %201 = OpLabel - %204 = OpAccessChain %_ptr_Function_int %currentNode %uint_1 - %205 = OpLoad %int %204 - OpStore %x_387 %205 - OpBranch %199 - %199 = OpLabel - %206 = OpLoad %int %x_387 - OpStore %index %206 - OpBranch %175 - %175 = OpLabel - OpBranch %173 - %174 = OpLabel + %179 = OpLoad %int %index + %180 = OpAccessChain %_ptr_Private_BST %tree_1 %179 + %181 = OpLoad %BST %180 + OpStore %currentNode %181 + %182 = OpAccessChain %_ptr_Function_int %currentNode %uint_0 + %183 = OpLoad %int %182 + %185 = OpLoad %int %target + %186 = OpIEqual %bool %183 %185 + OpSelectionMerge %187 None + OpBranchConditional %186 %188 %187 + %188 = OpLabel + %190 = OpLoad %int %target + OpReturnValue %190 + %187 = OpLabel + %192 = OpLoad %int %target + %193 = OpAccessChain %_ptr_Function_int %currentNode %uint_0 + %194 = OpLoad %int %193 + %195 = OpSGreaterThan %bool %192 %194 + OpSelectionMerge %196 None + OpBranchConditional %195 %197 %198 + %197 = OpLabel + %199 = OpAccessChain %_ptr_Function_int %currentNode %uint_2 + %200 = OpLoad %int %199 + OpStore %x_387 %200 + OpBranch %196 + %198 = OpLabel + %201 = OpAccessChain %_ptr_Function_int %currentNode %uint_1 + %202 = OpLoad %int %201 + OpStore %x_387 %202 + OpBranch %196 + %196 = OpLabel + %203 = OpLoad %int %x_387 + OpStore %index %203 + OpBranch %172 + %172 = OpLabel + OpBranch %170 + %171 = OpLabel OpReturnValue %int_n1 OpFunctionEnd -%makeFrame_f1_ = OpFunction %float None %207 +%makeFrame_f1_ = OpFunction %float None %204 %v = OpFunctionParameter %_ptr_Function_float - %210 = OpLabel + %207 = OpLabel %param_5 = OpVariable %_ptr_Function_int Function %49 %param_6 = OpVariable %_ptr_Function_int Function %49 %param_7 = OpVariable %_ptr_Function_int Function %49 - %215 = OpLoad %float %v - %218 = OpFMul %float %215 %float_6_5 - OpStore %v %218 - %220 = OpLoad %float %v - %222 = OpFOrdLessThan %bool %220 %float_1_5 - OpSelectionMerge %223 None - OpBranchConditional %222 %224 %223 - %224 = OpLabel + %212 = OpLoad %float %v + %215 = OpFMul %float %212 %float_6_5 + OpStore %v %215 + %217 = OpLoad %float %v + %219 = OpFOrdLessThan %bool %217 %float_1_5 + OpSelectionMerge %220 None + OpBranchConditional %219 %221 %220 + %221 = OpLabel OpStore %param_5 %int_100 - %226 = OpFunctionCall %int %search_i1_ %param_5 - %228 = OpConvertSToF %float %226 - OpReturnValue %228 - %223 = OpLabel - %230 = OpLoad %float %v - %232 = OpFOrdLessThan %bool %230 %float_4 - OpSelectionMerge %233 None - OpBranchConditional %232 %234 %233 - %234 = OpLabel + %223 = OpFunctionCall %int %search_i1_ %param_5 + %225 = OpConvertSToF %float %223 + OpReturnValue %225 + %220 = OpLabel + %227 = OpLoad %float %v + %229 = OpFOrdLessThan %bool %227 %float_4 + OpSelectionMerge %230 None + OpBranchConditional %229 %231 %230 + %231 = OpLabel OpReturnValue %float_0 - %233 = OpLabel - %237 = OpLoad %float %v + %230 = OpLabel + %234 = OpLoad %float %v OpStore %param_6 %int_6 - %239 = OpFunctionCall %int %search_i1_ %param_6 - %241 = OpConvertSToF %float %239 - %242 = OpFOrdLessThan %bool %237 %241 - OpSelectionMerge %243 None - OpBranchConditional %242 %244 %243 - %244 = OpLabel + %236 = OpFunctionCall %int %search_i1_ %param_6 + %238 = OpConvertSToF %float %236 + %239 = OpFOrdLessThan %bool %234 %238 + OpSelectionMerge %240 None + OpBranchConditional %239 %241 %240 + %241 = OpLabel OpReturnValue %float_1 - %243 = OpLabel + %240 = OpLabel OpStore %param_7 %int_30 - %247 = OpFunctionCall %int %search_i1_ %param_7 - %250 = OpConvertSToF %float %247 - %251 = OpFAdd %float %float_10 %250 - OpReturnValue %251 + %244 = OpFunctionCall %int %search_i1_ %param_7 + %247 = OpConvertSToF %float %244 + %248 = OpFAdd %float %float_10 %247 + OpReturnValue %248 OpFunctionEnd -%hueColor_f1_ = OpFunction %v3float None %252 +%hueColor_f1_ = OpFunction %v3float None %249 %angle = OpFunctionParameter %_ptr_Function_float - %256 = OpLabel - %nodeData = OpVariable %_ptr_Function_float Function %258 + %253 = OpLabel + %nodeData = OpVariable %_ptr_Function_float Function %255 %param_4 = OpVariable %_ptr_Function_int Function %49 OpStore %param_4 %int_15 - %261 = OpFunctionCall %int %search_i1_ %param_4 - %263 = OpConvertSToF %float %261 - OpStore %nodeData %263 - %265 = OpLoad %float %angle - %266 = OpLoad %float %nodeData - %270 = OpCompositeConstruct %v3float %float_1 %float_5 %266 - %271 = OpVectorTimesScalar %v3float %270 %265 - %272 = OpFAdd %v3float %268 %271 - %275 = OpFDiv %v3float %272 %274 - OpReturnValue %275 + %258 = OpFunctionCall %int %search_i1_ %param_4 + %260 = OpConvertSToF %float %258 + OpStore %nodeData %260 + %262 = OpLoad %float %angle + %263 = OpLoad %float %nodeData + %267 = OpCompositeConstruct %v3float %float_1 %float_5 %263 + %268 = OpVectorTimesScalar %v3float %267 %262 + %269 = OpFAdd %v3float %265 %268 + %272 = OpFDiv %v3float %269 %271 + OpReturnValue %272 OpFunctionEnd - %main_1 = OpFunction %void None %276 - %278 = OpLabel + %main_1 = OpFunction %void None %273 + %275 = OpLabel %treeIndex_1 = OpVariable %_ptr_Function_int Function %49 %param_8 = OpVariable %_ptr_Function_BST Function %51 %param_9 = OpVariable %_ptr_Function_int Function %49 @@ -504,312 +495,309 @@ SKIP: FAILED %GLF_live4_looplimiter3 = OpVariable %_ptr_Function_int Function %49 %GLF_live4i = OpVariable %_ptr_Function_int Function %49 %GLF_live4index = OpVariable %_ptr_Function_int Function %49 -%GLF_live4obj = OpVariable %_ptr_Function_Obj Function %305 +%GLF_live4obj = OpVariable %_ptr_Function_Obj Function %302 %param_24 = OpVariable %_ptr_Function_int Function %49 %param_25 = OpVariable %_ptr_Function_int Function %49 %param_26 = OpVariable %_ptr_Function_int Function %49 %param_27 = OpVariable %_ptr_Function_int Function %49 - %z = OpVariable %_ptr_Function_v2float Function %312 - %x = OpVariable %_ptr_Function_float Function %258 - %param_28 = OpVariable %_ptr_Function_float Function %258 - %y = OpVariable %_ptr_Function_float Function %258 - %param_29 = OpVariable %_ptr_Function_float Function %258 + %z = OpVariable %_ptr_Function_v2float Function %309 + %x = OpVariable %_ptr_Function_float Function %255 + %param_28 = OpVariable %_ptr_Function_float Function %255 + %y = OpVariable %_ptr_Function_float Function %255 + %param_29 = OpVariable %_ptr_Function_float Function %255 %sum = OpVariable %_ptr_Function_int Function %49 %target_1 = OpVariable %_ptr_Function_int Function %49 %result = OpVariable %_ptr_Function_int Function %49 %param_30 = OpVariable %_ptr_Function_int Function %49 - %a = OpVariable %_ptr_Function_float Function %258 - %x_235 = OpVariable %_ptr_Function_v3float Function %324 - %param_31 = OpVariable %_ptr_Function_float Function %258 + %a = OpVariable %_ptr_Function_float Function %255 + %x_235 = OpVariable %_ptr_Function_v3float Function %321 + %param_31 = OpVariable %_ptr_Function_float Function %255 OpStore %treeIndex_1 %int_0 - %326 = OpAccessChain %_ptr_Private_BST %tree_1 %int_0 - %327 = OpLoad %BST %326 - OpStore %param_8 %327 + %323 = OpAccessChain %_ptr_Private_BST %tree_1 %int_0 + %324 = OpLoad %BST %323 + OpStore %param_8 %324 OpStore %param_9 %int_9 - %329 = OpFunctionCall %void %makeTreeNode_struct_BST_i1_i1_i11_i1_ %param_8 %param_9 - %332 = OpLoad %BST %param_8 - %333 = OpAccessChain %_ptr_Private_BST %tree_1 %int_0 - OpStore %333 %332 - %334 = OpLoad %int %treeIndex_1 - %335 = OpIAdd %int %334 %int_1 - OpStore %treeIndex_1 %335 - %336 = OpLoad %int %treeIndex_1 - OpStore %param_10 %336 + %326 = OpFunctionCall %void %makeTreeNode_struct_BST_i1_i1_i11_i1_ %param_8 %param_9 + %329 = OpLoad %BST %param_8 + %330 = OpAccessChain %_ptr_Private_BST %tree_1 %int_0 + OpStore %330 %329 + %331 = OpLoad %int %treeIndex_1 + %332 = OpIAdd %int %331 %int_1 + OpStore %treeIndex_1 %332 + %333 = OpLoad %int %treeIndex_1 + OpStore %param_10 %333 OpStore %param_11 %int_5 - %338 = OpFunctionCall %void %insert_i1_i1_ %param_10 %param_11 - %341 = OpLoad %int %treeIndex_1 - %342 = OpIAdd %int %341 %int_1 - OpStore %treeIndex_1 %342 + %335 = OpFunctionCall %void %insert_i1_i1_ %param_10 %param_11 + %338 = OpLoad %int %treeIndex_1 + %339 = OpIAdd %int %338 %int_1 + OpStore %treeIndex_1 %339 OpStore %GLF_live1_looplimiter2 %int_0 OpStore %GLF_live1i %int_0 + OpBranch %340 + %340 = OpLabel + OpLoopMerge %341 %342 None OpBranch %343 %343 = OpLabel - OpLoopMerge %344 %345 None - OpBranch %346 + OpSelectionMerge %345 None + OpBranchConditional %true %346 %347 %346 = OpLabel - OpSelectionMerge %348 None - OpBranchConditional %true %349 %350 - %349 = OpLabel - OpBranch %348 - %350 = OpLabel - OpBranch %344 - %348 = OpLabel - %351 = OpLoad %int %GLF_live1_looplimiter2 - %353 = OpSGreaterThanEqual %bool %351 %int_7 - OpSelectionMerge %354 None - OpBranchConditional %353 %355 %354 - %355 = OpLabel - OpBranch %344 - %354 = OpLabel - %356 = OpLoad %int %GLF_live1_looplimiter2 - %357 = OpIAdd %int %356 %int_1 - OpStore %GLF_live1_looplimiter2 %357 OpBranch %345 + %347 = OpLabel + OpBranch %341 %345 = OpLabel - %358 = OpLoad %int %GLF_live1i - %359 = OpIAdd %int %358 %int_1 - OpStore %GLF_live1i %359 - OpBranch %343 - %344 = OpLabel - %360 = OpLoad %int %treeIndex_1 - OpStore %param_12 %360 + %348 = OpLoad %int %GLF_live1_looplimiter2 + %350 = OpSGreaterThanEqual %bool %348 %int_7 + OpSelectionMerge %351 None + OpBranchConditional %350 %352 %351 + %352 = OpLabel + OpBranch %341 + %351 = OpLabel + %353 = OpLoad %int %GLF_live1_looplimiter2 + %354 = OpIAdd %int %353 %int_1 + OpStore %GLF_live1_looplimiter2 %354 + OpBranch %342 + %342 = OpLabel + %355 = OpLoad %int %GLF_live1i + %356 = OpIAdd %int %355 %int_1 + OpStore %GLF_live1i %356 + OpBranch %340 + %341 = OpLabel + %357 = OpLoad %int %treeIndex_1 + OpStore %param_12 %357 OpStore %param_13 %int_12 - %362 = OpFunctionCall %void %insert_i1_i1_ %param_12 %param_13 - %365 = OpLoad %int %treeIndex_1 - %366 = OpIAdd %int %365 %int_1 - OpStore %treeIndex_1 %366 - %367 = OpLoad %int %treeIndex_1 - OpStore %param_14 %367 + %359 = OpFunctionCall %void %insert_i1_i1_ %param_12 %param_13 + %362 = OpLoad %int %treeIndex_1 + %363 = OpIAdd %int %362 %int_1 + OpStore %treeIndex_1 %363 + %364 = OpLoad %int %treeIndex_1 + OpStore %param_14 %364 OpStore %param_15 %int_15 - %368 = OpFunctionCall %void %insert_i1_i1_ %param_14 %param_15 - %371 = OpLoad %int %treeIndex_1 - %372 = OpIAdd %int %371 %int_1 - OpStore %treeIndex_1 %372 - %373 = OpLoad %int %treeIndex_1 - OpStore %param_16 %373 + %365 = OpFunctionCall %void %insert_i1_i1_ %param_14 %param_15 + %368 = OpLoad %int %treeIndex_1 + %369 = OpIAdd %int %368 %int_1 + OpStore %treeIndex_1 %369 + %370 = OpLoad %int %treeIndex_1 + OpStore %param_16 %370 OpStore %param_17 %int_7 - %374 = OpFunctionCall %void %insert_i1_i1_ %param_16 %param_17 - %377 = OpLoad %int %treeIndex_1 - %378 = OpIAdd %int %377 %int_1 - OpStore %treeIndex_1 %378 - %379 = OpLoad %int %treeIndex_1 - OpStore %param_18 %379 + %371 = OpFunctionCall %void %insert_i1_i1_ %param_16 %param_17 + %374 = OpLoad %int %treeIndex_1 + %375 = OpIAdd %int %374 %int_1 + OpStore %treeIndex_1 %375 + %376 = OpLoad %int %treeIndex_1 + OpStore %param_18 %376 OpStore %param_19 %int_8 - %381 = OpFunctionCall %void %insert_i1_i1_ %param_18 %param_19 - %384 = OpLoad %int %treeIndex_1 - %385 = OpIAdd %int %384 %int_1 - OpStore %treeIndex_1 %385 - %386 = OpLoad %int %treeIndex_1 - OpStore %param_20 %386 + %378 = OpFunctionCall %void %insert_i1_i1_ %param_18 %param_19 + %381 = OpLoad %int %treeIndex_1 + %382 = OpIAdd %int %381 %int_1 + OpStore %treeIndex_1 %382 + %383 = OpLoad %int %treeIndex_1 + OpStore %param_20 %383 OpStore %param_21 %int_2 - %388 = OpFunctionCall %void %insert_i1_i1_ %param_20 %param_21 - %391 = OpLoad %int %treeIndex_1 - %392 = OpIAdd %int %391 %int_1 - OpStore %treeIndex_1 %392 - %393 = OpLoad %int %treeIndex_1 - OpStore %param_22 %393 + %385 = OpFunctionCall %void %insert_i1_i1_ %param_20 %param_21 + %388 = OpLoad %int %treeIndex_1 + %389 = OpIAdd %int %388 %int_1 + OpStore %treeIndex_1 %389 + %390 = OpLoad %int %treeIndex_1 + OpStore %param_22 %390 OpStore %param_23 %int_6 - %394 = OpFunctionCall %void %insert_i1_i1_ %param_22 %param_23 - %397 = OpLoad %int %treeIndex_1 - %398 = OpIAdd %int %397 %int_1 - OpStore %treeIndex_1 %398 + %391 = OpFunctionCall %void %insert_i1_i1_ %param_22 %param_23 + %394 = OpLoad %int %treeIndex_1 + %395 = OpIAdd %int %394 %int_1 + OpStore %treeIndex_1 %395 OpStore %GLF_live4_looplimiter3 %int_0 OpStore %GLF_live4i %int_0 + OpBranch %396 + %396 = OpLabel + OpLoopMerge %397 %398 None OpBranch %399 %399 = OpLabel - OpLoopMerge %400 %401 None - OpBranch %402 - %402 = OpLabel - OpSelectionMerge %403 None - OpBranchConditional %true %404 %405 - %404 = OpLabel - OpBranch %403 - %405 = OpLabel - OpBranch %400 - %403 = OpLabel - %406 = OpLoad %int %GLF_live4_looplimiter3 - %408 = OpSGreaterThanEqual %bool %406 %int_3 - OpSelectionMerge %409 None - OpBranchConditional %408 %410 %409 - %410 = OpLabel - OpBranch %400 - %409 = OpLabel - %411 = OpLoad %int %GLF_live4_looplimiter3 - %412 = OpIAdd %int %411 %int_1 - OpStore %GLF_live4_looplimiter3 %412 - OpStore %GLF_live4index %int_1 - %413 = OpLoad %int %GLF_live4index - %414 = OpLoad %int %GLF_live4index - %415 = OpLoad %int %GLF_live4index - %416 = OpAccessChain %_ptr_Function_float %GLF_live4obj %uint_1 %int_1 - %417 = OpLoad %float %416 - %419 = OpSGreaterThanEqual %bool %413 %int_0 - OpSelectionMerge %420 None - OpBranchConditional %419 %421 %420 - %421 = OpLabel - %423 = OpSLessThan %bool %414 %int_10 - OpBranch %420 - %420 = OpLabel - %424 = OpPhi %bool %419 %409 %423 %421 - %418 = OpSelect %int %424 %415 %int_0 - %425 = OpAccessChain %_ptr_Function_float %GLF_live4obj %uint_1 %418 - OpStore %425 %417 - %426 = OpLoad %int %GLF_live4i - %427 = OpLoad %int %GLF_live4i - %428 = OpLoad %int %GLF_live4i - %430 = OpSGreaterThanEqual %bool %426 %int_0 - OpSelectionMerge %431 None - OpBranchConditional %430 %432 %431 - %432 = OpLabel - %433 = OpSLessThan %bool %427 %int_10 - OpBranch %431 - %431 = OpLabel - %434 = OpPhi %bool %430 %420 %433 %432 - %429 = OpSelect %int %434 %428 %int_0 - %435 = OpAccessChain %_ptr_Function_float %GLF_live4obj %uint_1 %429 - OpStore %435 %float_1 - OpBranch %401 + OpSelectionMerge %400 None + OpBranchConditional %true %401 %402 %401 = OpLabel - %436 = OpLoad %int %GLF_live4i - %437 = OpIAdd %int %436 %int_1 - OpStore %GLF_live4i %437 - OpBranch %399 + OpBranch %400 + %402 = OpLabel + OpBranch %397 %400 = OpLabel - %438 = OpLoad %int %treeIndex_1 - OpStore %param_24 %438 + %403 = OpLoad %int %GLF_live4_looplimiter3 + %405 = OpSGreaterThanEqual %bool %403 %int_3 + OpSelectionMerge %406 None + OpBranchConditional %405 %407 %406 + %407 = OpLabel + OpBranch %397 + %406 = OpLabel + %408 = OpLoad %int %GLF_live4_looplimiter3 + %409 = OpIAdd %int %408 %int_1 + OpStore %GLF_live4_looplimiter3 %409 + OpStore %GLF_live4index %int_1 + %410 = OpLoad %int %GLF_live4index + %411 = OpLoad %int %GLF_live4index + %412 = OpLoad %int %GLF_live4index + %413 = OpAccessChain %_ptr_Function_float %GLF_live4obj %uint_1 %int_1 + %414 = OpLoad %float %413 + %416 = OpSGreaterThanEqual %bool %410 %int_0 + OpSelectionMerge %417 None + OpBranchConditional %416 %418 %417 + %418 = OpLabel + %420 = OpSLessThan %bool %411 %int_10 + OpBranch %417 + %417 = OpLabel + %421 = OpPhi %bool %416 %406 %420 %418 + %415 = OpSelect %int %421 %412 %int_0 + %422 = OpAccessChain %_ptr_Function_float %GLF_live4obj %uint_1 %415 + OpStore %422 %414 + %423 = OpLoad %int %GLF_live4i + %424 = OpLoad %int %GLF_live4i + %425 = OpLoad %int %GLF_live4i + %427 = OpSGreaterThanEqual %bool %423 %int_0 + OpSelectionMerge %428 None + OpBranchConditional %427 %429 %428 + %429 = OpLabel + %430 = OpSLessThan %bool %424 %int_10 + OpBranch %428 + %428 = OpLabel + %431 = OpPhi %bool %427 %417 %430 %429 + %426 = OpSelect %int %431 %425 %int_0 + %432 = OpAccessChain %_ptr_Function_float %GLF_live4obj %uint_1 %426 + OpStore %432 %float_1 + OpBranch %398 + %398 = OpLabel + %433 = OpLoad %int %GLF_live4i + %434 = OpIAdd %int %433 %int_1 + OpStore %GLF_live4i %434 + OpBranch %396 + %397 = OpLabel + %435 = OpLoad %int %treeIndex_1 + OpStore %param_24 %435 OpStore %param_25 %int_17 - %440 = OpFunctionCall %void %insert_i1_i1_ %param_24 %param_25 - %443 = OpAccessChain %_ptr_Uniform_float %x_27 %uint_0 %uint_0 - %444 = OpLoad %float %443 - %445 = OpAccessChain %_ptr_Uniform_float %x_27 %uint_0 %uint_1 - %446 = OpLoad %float %445 - %447 = OpFOrdGreaterThan %bool %444 %446 - OpSelectionMerge %448 None - OpBranchConditional %447 %449 %448 - %449 = OpLabel + %437 = OpFunctionCall %void %insert_i1_i1_ %param_24 %param_25 + %440 = OpAccessChain %_ptr_Uniform_float %x_27 %uint_0 %uint_0 + %441 = OpLoad %float %440 + %442 = OpAccessChain %_ptr_Uniform_float %x_27 %uint_0 %uint_1 + %443 = OpLoad %float %442 + %444 = OpFOrdGreaterThan %bool %441 %443 + OpSelectionMerge %445 None + OpBranchConditional %444 %446 %445 + %446 = OpLabel OpReturn - %448 = OpLabel - %450 = OpLoad %int %treeIndex_1 - %451 = OpIAdd %int %450 %int_1 - OpStore %treeIndex_1 %451 - %452 = OpLoad %int %treeIndex_1 - OpStore %param_26 %452 + %445 = OpLabel + %447 = OpLoad %int %treeIndex_1 + %448 = OpIAdd %int %447 %int_1 + OpStore %treeIndex_1 %448 + %449 = OpLoad %int %treeIndex_1 + OpStore %param_26 %449 OpStore %param_27 %int_13 - %454 = OpFunctionCall %void %insert_i1_i1_ %param_26 %param_27 - %457 = OpLoad %v4float %gl_FragCoord - %458 = OpCompositeExtract %float %457 1 - %459 = OpCompositeExtract %float %457 0 - %460 = OpCompositeConstruct %v2float %458 %459 - %463 = OpFDiv %v2float %460 %462 - OpStore %z %463 - %464 = OpAccessChain %_ptr_Function_float %z %uint_0 - %465 = OpLoad %float %464 - OpStore %param_28 %465 - %466 = OpFunctionCall %float %makeFrame_f1_ %param_28 - OpStore %x %466 - %468 = OpAccessChain %_ptr_Function_float %z %uint_1 - %469 = OpLoad %float %468 - OpStore %param_29 %469 - %470 = OpFunctionCall %float %makeFrame_f1_ %param_29 - OpStore %y %470 + %451 = OpFunctionCall %void %insert_i1_i1_ %param_26 %param_27 + %454 = OpLoad %v4float %gl_FragCoord + %455 = OpCompositeExtract %float %454 1 + %456 = OpCompositeExtract %float %454 0 + %457 = OpCompositeConstruct %v2float %455 %456 + %460 = OpFDiv %v2float %457 %459 + OpStore %z %460 + %461 = OpAccessChain %_ptr_Function_float %z %uint_0 + %462 = OpLoad %float %461 + OpStore %param_28 %462 + %463 = OpFunctionCall %float %makeFrame_f1_ %param_28 + OpStore %x %463 + %465 = OpAccessChain %_ptr_Function_float %z %uint_1 + %466 = OpLoad %float %465 + OpStore %param_29 %466 + %467 = OpFunctionCall %float %makeFrame_f1_ %param_29 + OpStore %y %467 OpStore %sum %int_n100 OpStore %target_1 %int_0 + OpBranch %470 + %470 = OpLabel + OpLoopMerge %471 %472 None OpBranch %473 %473 = OpLabel - OpLoopMerge %474 %475 None - OpBranch %476 - %476 = OpLabel - %477 = OpLoad %int %target_1 - %479 = OpSLessThan %bool %477 %int_20 - OpSelectionMerge %480 None - OpBranchConditional %479 %481 %482 - %481 = OpLabel - OpBranch %480 - %482 = OpLabel - OpBranch %474 - %480 = OpLabel - %483 = OpLoad %int %target_1 - OpStore %param_30 %483 - %484 = OpFunctionCall %int %search_i1_ %param_30 - OpStore %result %484 - %486 = OpLoad %int %result - %487 = OpSGreaterThan %bool %486 %int_0 - OpSelectionMerge %488 None - OpBranchConditional %487 %489 %490 - %489 = OpLabel - OpBranch %488 - %490 = OpLabel - %491 = OpLoad %int %result - OpSelectionMerge %492 None - OpSwitch %491 %493 0 %494 -1 %495 - %494 = OpLabel + %474 = OpLoad %int %target_1 + %476 = OpSLessThan %bool %474 %int_20 + OpSelectionMerge %477 None + OpBranchConditional %476 %478 %479 + %478 = OpLabel + OpBranch %477 + %479 = OpLabel + OpBranch %471 + %477 = OpLabel + %480 = OpLoad %int %target_1 + OpStore %param_30 %480 + %481 = OpFunctionCall %int %search_i1_ %param_30 + OpStore %result %481 + %483 = OpLoad %int %result + %484 = OpSGreaterThan %bool %483 %int_0 + OpSelectionMerge %485 None + OpBranchConditional %484 %486 %487 + %486 = OpLabel + OpBranch %485 + %487 = OpLabel + %488 = OpLoad %int %result + OpSelectionMerge %489 None + OpSwitch %488 %490 0 %491 -1 %492 + %491 = OpLabel OpReturn - %495 = OpLabel - %496 = OpLoad %int %sum - %497 = OpIAdd %int %496 %int_1 - OpStore %sum %497 - OpBranch %492 - %493 = OpLabel - OpBranch %492 %492 = OpLabel - OpBranch %488 - %488 = OpLabel - OpBranch %475 - %475 = OpLabel - %498 = OpLoad %int %target_1 - %499 = OpIAdd %int %498 %int_1 - OpStore %target_1 %499 - OpBranch %473 - %474 = OpLabel - %500 = OpLoad %float %x - %501 = OpLoad %float %y - %502 = OpLoad %int %sum - %503 = OpConvertSToF %float %502 - %504 = OpFMul %float %501 %503 - %505 = OpFAdd %float %500 %504 - OpStore %a %505 - %506 = OpAccessChain %_ptr_Uniform_float %x_27 %uint_0 %uint_0 - %507 = OpLoad %float %506 - %508 = OpAccessChain %_ptr_Uniform_float %x_27 %uint_0 %uint_1 - %509 = OpLoad %float %508 - %510 = OpFOrdLessThan %bool %507 %509 - OpSelectionMerge %511 None - OpBranchConditional %510 %512 %513 - %512 = OpLabel - OpStore %x_235 %514 - OpBranch %511 - %513 = OpLabel - %515 = OpLoad %float %a - OpStore %param_31 %515 - %516 = OpFunctionCall %v3float %hueColor_f1_ %param_31 - OpStore %x_235 %516 - OpBranch %511 - %511 = OpLabel - %518 = OpLoad %v3float %x_235 - %519 = OpCompositeExtract %float %518 0 - %520 = OpCompositeExtract %float %518 1 - %521 = OpCompositeExtract %float %518 2 - %522 = OpCompositeConstruct %v4float %519 %520 %521 %float_1 - OpStore %x_GLF_color %522 + %493 = OpLoad %int %sum + %494 = OpIAdd %int %493 %int_1 + OpStore %sum %494 + OpBranch %489 + %490 = OpLabel + OpBranch %489 + %489 = OpLabel + OpBranch %485 + %485 = OpLabel + OpBranch %472 + %472 = OpLabel + %495 = OpLoad %int %target_1 + %496 = OpIAdd %int %495 %int_1 + OpStore %target_1 %496 + OpBranch %470 + %471 = OpLabel + %497 = OpLoad %float %x + %498 = OpLoad %float %y + %499 = OpLoad %int %sum + %500 = OpConvertSToF %float %499 + %501 = OpFMul %float %498 %500 + %502 = OpFAdd %float %497 %501 + OpStore %a %502 + %503 = OpAccessChain %_ptr_Uniform_float %x_27 %uint_0 %uint_0 + %504 = OpLoad %float %503 + %505 = OpAccessChain %_ptr_Uniform_float %x_27 %uint_0 %uint_1 + %506 = OpLoad %float %505 + %507 = OpFOrdLessThan %bool %504 %506 + OpSelectionMerge %508 None + OpBranchConditional %507 %509 %510 + %509 = OpLabel + OpStore %x_235 %511 + OpBranch %508 + %510 = OpLabel + %512 = OpLoad %float %a + OpStore %param_31 %512 + %513 = OpFunctionCall %v3float %hueColor_f1_ %param_31 + OpStore %x_235 %513 + OpBranch %508 + %508 = OpLabel + %515 = OpLoad %v3float %x_235 + %516 = OpCompositeExtract %float %515 0 + %517 = OpCompositeExtract %float %515 1 + %518 = OpCompositeExtract %float %515 2 + %519 = OpCompositeConstruct %v4float %516 %517 %518 %float_1 + OpStore %x_GLF_color %519 OpReturn OpFunctionEnd -%tint_symbol_3 = OpFunction %void None %523 +%tint_symbol_3 = OpFunction %void None %520 %tint_symbol_1 = OpFunctionParameter %main_out + %524 = OpLabel + %525 = OpCompositeExtract %v4float %tint_symbol_1 0 + OpStore %tint_symbol_2 %525 + OpReturn + OpFunctionEnd + %main = OpFunction %void None %273 %527 = OpLabel - %528 = OpCompositeExtract %v4float %tint_symbol_1 0 - OpStore %tint_symbol_2 %528 + %528 = OpLoad %v4float %tint_symbol + OpStore %gl_FragCoord %528 + %529 = OpFunctionCall %void %main_1 + %531 = OpLoad %v4float %x_GLF_color + %532 = OpCompositeConstruct %main_out %531 + %530 = OpFunctionCall %void %tint_symbol_3 %532 OpReturn OpFunctionEnd - %main = OpFunction %void None %276 - %530 = OpLabel - %531 = OpLoad %v4float %tint_symbol - OpStore %gl_FragCoord %531 - %532 = OpFunctionCall %void %main_1 - %534 = OpLoad %v4float %x_GLF_color - %535 = OpCompositeConstruct %main_out %534 - %533 = OpFunctionCall %void %tint_symbol_3 %535 - OpReturn - OpFunctionEnd -1:1: The continue construct with the continue target 152[%152] is not post dominated by the back-edge block 163[%163] - %163 = OpLabel -