[spirv-writer] Make block emission non-recursive. Change the spirv-writer to not recurse through blocks during emission. Instead, blocks are stored into the functions and a list of blocks to emit is maintained. We then emit from the list. Bug: 409346479 Change-Id: Ibc6fad2ac2a4845e1ec952b62bb01dd0bce2a8c6 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/235916 Commit-Queue: James Price <jrprice@google.com> Commit-Queue: dan sinclair <dsinclair@chromium.org> Reviewed-by: James Price <jrprice@google.com> Auto-Submit: dan sinclair <dsinclair@chromium.org>
diff --git a/src/tint/lang/spirv/writer/common/function.cc b/src/tint/lang/spirv/writer/common/function.cc index 5ec0eb2..ba133c3 100644 --- a/src/tint/lang/spirv/writer/common/function.cc +++ b/src/tint/lang/spirv/writer/common/function.cc
@@ -27,8 +27,24 @@ #include "src/tint/lang/spirv/writer/common/function.h" -namespace tint::spirv::writer { +#include <unordered_map> +#include <unordered_set> +#include "src/tint/utils/ice/ice.h" + +namespace tint::spirv::writer { +namespace { + +bool IsFunctionTerminator(spv::Op op) { + return op == spv::Op::OpReturn || op == spv::Op::OpReturnValue || op == spv::Op::OpKill || + op == spv::Op::OpUnreachable || op == spv::Op::OpTerminateInvocation; +} + +bool IsBranchTerminator(spv::Op op) { + return op == spv::Op::OpBranch || op == spv::Op::OpBranchConditional || op == spv::Op::OpSwitch; +} + +} // namespace Function::Function() : declaration_(Instruction{spv::Op::OpNop, {}}), label_op_(Operand(0u)) {} Function::Function(const Instruction& declaration, @@ -54,7 +70,99 @@ for (const auto& var : vars_) { cb(var); } - for (const auto& blk : blocks_) { + + std::vector<uint32_t> block_order; + block_order.reserve(blocks_.size()); + + std::unordered_set<uint32_t> seen_blocks; + + std::vector<uint32_t> block_idx_stack; + block_idx_stack.push_back(0); + seen_blocks.insert(0); + + auto idx_for_id = [&](uint32_t id) -> uint32_t { + auto iter = block_id_to_block_.find(id); + TINT_ASSERT(iter != block_id_to_block_.end()); + return iter->second; + }; + + auto push_id = [&](const Instruction& inst, size_t idx) { + auto id = idx_for_id(std::get<uint32_t>(inst.Operands()[idx])); + + if (seen_blocks.find(id) != seen_blocks.end()) { + return; + } + seen_blocks.insert(id); + + block_idx_stack.push_back(id); + }; + + while (!block_idx_stack.empty()) { + auto idx = block_idx_stack.back(); + block_idx_stack.pop_back(); + + block_order.push_back(idx); + + auto& blk = blocks_[idx]; + auto& term = blk.back(); + if (IsFunctionTerminator(term.Opcode())) { + continue; + } + + TINT_ASSERT(IsBranchTerminator(term.Opcode())); + + // The initial block doesn't have a label, so can end up with 1 + // instruction. + if (blk.size() >= 2) { + auto& pre_term = blk[blk.size() - 2]; + + // Push the merges first so the emit after the branch conditional. + switch (pre_term.Opcode()) { + case spv::Op::OpSelectionMerge: { + push_id(pre_term, 0); + break; + } + case spv::Op::OpLoopMerge: { + // Push merge first, then continuing + push_id(pre_term, 0); + push_id(pre_term, 1); + break; + } + default: + break; + } + } + + switch (term.Opcode()) { + case spv::Op::OpBranch: { + push_id(term, 0); + break; + } + case spv::Op::OpBranchConditional: { + // Push false then true as we'll emit in reversed order + push_id(term, 2); + push_id(term, 1); + + break; + } + case spv::Op::OpSwitch: { + auto& ops = term.Operands(); + for (size_t k = ops.size() - 1; k > 2; k -= 2) { + push_id(term, k); + } + push_id(term, 1); + break; + } + default: + TINT_UNREACHABLE(); + } + } + + TINT_ASSERT(seen_blocks.size() == blocks_.size()); + + // Emit the blocks in block order + for (const auto& idx : block_order) { + auto& blk = blocks_[idx]; for (const auto& inst : blk) { cb(inst); }
diff --git a/src/tint/lang/spirv/writer/common/function.h b/src/tint/lang/spirv/writer/common/function.h index dd1fa7a..633f08a 100644 --- a/src/tint/lang/spirv/writer/common/function.h +++ b/src/tint/lang/spirv/writer/common/function.h
@@ -29,6 +29,7 @@ #define SRC_TINT_LANG_SPIRV_WRITER_COMMON_FUNCTION_H_ #include <functional> +#include <unordered_map> #include <vector> #include "src/tint/lang/spirv/writer/common/instruction.h" @@ -79,9 +80,12 @@ } /// Adds a new block to the block list /// @returns the index of the new block - size_t AppendBlock() { + size_t AppendBlock(uint32_t spv_id) { blocks_.push_back({}); - return blocks_.size() - 1; + + auto blk_id = blocks_.size() - 1; + block_id_to_block_[spv_id] = static_cast<uint32_t>(blk_id); + return blk_id; } /// Sets the block to insert into /// @param idx the index to set @@ -124,6 +128,8 @@ InstructionList vars_; std::vector<Block> blocks_; size_t current_block_idx_ = 0; + + std::unordered_map<uint32_t, uint32_t> block_id_to_block_; }; } // namespace tint::spirv::writer
diff --git a/src/tint/lang/spirv/writer/discard_test.cc b/src/tint/lang/spirv/writer/discard_test.cc index febaf8f..bf46c9d 100644 --- a/src/tint/lang/spirv/writer/discard_test.cc +++ b/src/tint/lang/spirv/writer/discard_test.cc
@@ -65,21 +65,21 @@ OpStore %continue_execution %false None OpBranch %18 %18 = OpLabel - %21 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 - %25 = OpLoad %bool %continue_execution None - OpSelectionMerge %26 None - OpBranchConditional %25 %27 %26 - %27 = OpLabel - OpStore %21 %int_42 None - OpBranch %26 + %20 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 + %24 = OpLoad %bool %continue_execution None + OpSelectionMerge %25 None + OpBranchConditional %24 %26 %25 %26 = OpLabel - %29 = OpLoad %bool %continue_execution None - %30 = OpLogicalNot %bool %29 - OpSelectionMerge %31 None - OpBranchConditional %30 %32 %31 - %32 = OpLabel + OpStore %20 %int_42 None + OpBranch %25 + %25 = OpLabel + %27 = OpLoad %bool %continue_execution None + %28 = OpLogicalNot %bool %27 + OpSelectionMerge %29 None + OpBranchConditional %28 %30 %29 + %30 = OpLabel OpKill - %31 = OpLabel + %29 = OpLabel OpReturnValue %float_0_5 OpFunctionEnd )"); @@ -118,24 +118,24 @@ OpStore %continue_execution %false None OpBranch %18 %18 = OpLabel - %21 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 - %25 = OpLoad %bool %continue_execution None - OpSelectionMerge %26 None - OpBranchConditional %25 %27 %28 - %27 = OpLabel - %29 = OpAtomicIAdd %int %21 %uint_1 %uint_0 %int_1 - OpBranch %26 - %28 = OpLabel - OpBranch %26 + %20 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 + %24 = OpLoad %bool %continue_execution None + OpSelectionMerge %25 None + OpBranchConditional %24 %26 %27 %26 = OpLabel - %32 = OpPhi %int %29 %27 %33 %28 - %34 = OpLoad %bool %continue_execution None - %35 = OpLogicalNot %bool %34 - OpSelectionMerge %36 None - OpBranchConditional %35 %37 %36 - %37 = OpLabel + %29 = OpAtomicIAdd %int %20 %uint_1 %uint_0 %int_1 + OpBranch %25 + %27 = OpLabel + OpBranch %25 + %25 = OpLabel + %28 = OpPhi %int %29 %26 %30 %27 + %31 = OpLoad %bool %continue_execution None + %32 = OpLogicalNot %bool %31 + OpSelectionMerge %33 None + OpBranchConditional %32 %34 %33 + %34 = OpLabel OpKill - %36 = OpLabel + %33 = OpLabel OpReturnValue %float_0_5 OpFunctionEnd )");
diff --git a/src/tint/lang/spirv/writer/if_test.cc b/src/tint/lang/spirv/writer/if_test.cc index 6538461..d9eae1e 100644 --- a/src/tint/lang/spirv/writer/if_test.cc +++ b/src/tint/lang/spirv/writer/if_test.cc
@@ -102,6 +102,7 @@ ASSERT_TRUE(Generate()) << Error() << output_; EXPECT_INST(R"( + %4 = OpLabel OpSelectionMerge %5 None OpBranchConditional %true %5 %6 %6 = OpLabel @@ -154,6 +155,7 @@ ASSERT_TRUE(Generate()) << Error() << output_; EXPECT_INST(R"( + %4 = OpLabel OpSelectionMerge %5 None OpBranchConditional %true %6 %7 %6 = OpLabel @@ -182,7 +184,7 @@ }); ASSERT_TRUE(Generate()) << Error() << output_; - EXPECT_INST("%18 = OpUndef %int"); + EXPECT_INST("%16 = OpUndef %int"); EXPECT_INST(R"( OpSelectionMerge %12 None OpBranchConditional %true %13 %14 @@ -193,16 +195,16 @@ %14 = OpLabel OpBranch %12 %12 = OpLabel - %17 = OpPhi %int %18 %13 %int_20 %14 - %20 = OpLoad %bool %continue_execution None - OpSelectionMerge %21 None - OpBranchConditional %20 %22 %21 - %22 = OpLabel - OpStore %return_value %17 None - OpBranch %21 - %21 = OpLabel - %23 = OpLoad %int %return_value None - OpReturnValue %23 + %15 = OpPhi %int %16 %13 %int_20 %14 + %18 = OpLoad %bool %continue_execution None + OpSelectionMerge %19 None + OpBranchConditional %18 %20 %19 + %20 = OpLabel + OpStore %return_value %15 None + OpBranch %19 + %19 = OpLabel + %21 = OpLoad %int %return_value None + OpReturnValue %21 OpFunctionEnd )"); } @@ -222,7 +224,7 @@ }); ASSERT_TRUE(Generate()) << Error() << output_; - EXPECT_INST("%19 = OpUndef %int"); + EXPECT_INST("%17 = OpUndef %int"); EXPECT_INST(R"( OpSelectionMerge %12 None OpBranchConditional %true %13 %14 @@ -233,16 +235,16 @@ OpStore %return_value %int_42 None OpBranch %12 %12 = OpLabel - %17 = OpPhi %int %int_10 %13 %19 %14 - %20 = OpLoad %bool %continue_execution None - OpSelectionMerge %21 None - OpBranchConditional %20 %22 %21 - %22 = OpLabel - OpStore %return_value %17 None - OpBranch %21 - %21 = OpLabel - %23 = OpLoad %int %return_value None - OpReturnValue %23 + %15 = OpPhi %int %int_10 %13 %17 %14 + %18 = OpLoad %bool %continue_execution None + OpSelectionMerge %19 None + OpBranchConditional %18 %20 %19 + %20 = OpLabel + OpStore %return_value %15 None + OpBranch %19 + %19 = OpLabel + %21 = OpLoad %int %return_value None + OpReturnValue %21 OpFunctionEnd )"); } @@ -291,6 +293,7 @@ ASSERT_TRUE(Generate()) << Error() << output_; EXPECT_INST(R"( + %4 = OpLabel OpSelectionMerge %5 None OpBranchConditional %true %6 %7 %6 = OpLabel @@ -321,6 +324,7 @@ ASSERT_TRUE(Generate()) << Error() << output_; EXPECT_INST(R"( + %4 = OpLabel OpSelectionMerge %5 None OpBranchConditional %true %6 %7 %6 = OpLabel @@ -359,23 +363,25 @@ ASSERT_TRUE(Generate()) << Error() << output_; EXPECT_INST(R"( + %4 = OpLabel OpSelectionMerge %5 None OpBranchConditional %true %6 %7 %6 = OpLabel OpSelectionMerge %10 None - OpBranchConditional %true %11 %12 - %11 = OpLabel + OpBranchConditional %true %14 %15 + %14 = OpLabel OpBranch %10 - %12 = OpLabel + %15 = OpLabel OpBranch %10 %10 = OpLabel - %13 = OpPhi %int %int_10 %11 %int_20 %12 + %13 = OpPhi %int %int_10 %14 %int_20 %15 OpBranch %5 %7 = OpLabel OpBranch %5 %5 = OpLabel - %16 = OpPhi %int %int_30 %7 %13 %10 - OpReturnValue %16 + %11 = OpPhi %int %int_30 %7 %13 %10 + OpReturnValue %11 + OpFunctionEnd )"); }
diff --git a/src/tint/lang/spirv/writer/loop_test.cc b/src/tint/lang/spirv/writer/loop_test.cc index 125bb56..d4627ae 100644 --- a/src/tint/lang/spirv/writer/loop_test.cc +++ b/src/tint/lang/spirv/writer/loop_test.cc
@@ -459,14 +459,14 @@ OpLoopMerge %12 %10 None OpBranch %9 %9 = OpLabel - OpSelectionMerge %13 None - OpBranchConditional %true %14 %15 - %14 = OpLabel + OpSelectionMerge %15 None + OpBranchConditional %true %16 %17 + %16 = OpLabel + OpBranch %12 + %17 = OpLabel OpBranch %12 %15 = OpLabel OpBranch %12 - %13 = OpLabel - OpBranch %12 %10 = OpLabel OpBranchConditional %true %12 %11 %12 = OpLabel @@ -514,6 +514,8 @@ options.disable_robustness = true; ASSERT_TRUE(Generate(options)) << Error() << output_; EXPECT_INST(R"( + ; Function foo + %foo = OpFunction %int None %3 %4 = OpLabel OpBranch %7 %7 = OpLabel @@ -522,27 +524,27 @@ %5 = OpLabel OpBranch %6 %6 = OpLabel - OpBranch %11 - %11 = OpLabel - OpLoopMerge %12 %10 None - OpBranch %9 - %9 = OpLabel - OpSelectionMerge %13 None - OpBranchConditional %true %14 %15 + OpBranch %14 %14 = OpLabel + OpLoopMerge %9 %13 None OpBranch %12 - %15 = OpLabel - OpBranch %12 - %13 = OpLabel - OpBranch %12 - %10 = OpLabel - OpBranchConditional %true %12 %11 %12 = OpLabel - %18 = OpPhi %int %int_3 %10 %20 %13 %int_1 %14 %int_2 %15 + OpSelectionMerge %17 None + OpBranchConditional %true %15 %16 + %15 = OpLabel + OpBranch %9 + %16 = OpLabel + OpBranch %9 + %17 = OpLabel + OpBranch %9 + %13 = OpLabel + OpBranchConditional %true %9 %14 + %9 = OpLabel + %11 = OpPhi %int %int_3 %13 %int_1 %15 %int_2 %16 %21 %17 OpBranchConditional %true %8 %7 %8 = OpLabel - %23 = OpPhi %int %18 %12 - OpReturnValue %23 + %10 = OpPhi %int %11 %9 + OpReturnValue %10 OpFunctionEnd ; Function unused_entry_point @@ -707,17 +709,17 @@ OpLoopMerge %9 %7 None OpBranch %6 %6 = OpLabel - OpSelectionMerge %14 None - OpBranchConditional %true %15 %16 - %15 = OpLabel - OpBranch %14 + OpSelectionMerge %15 None + OpBranchConditional %true %16 %17 %16 = OpLabel - OpBranch %14 - %14 = OpLabel - %19 = OpPhi %int %int_10 %15 %int_20 %16 + OpBranch %15 + %17 = OpLabel + OpBranch %15 + %15 = OpLabel + %14 = OpPhi %int %int_10 %16 %int_20 %17 OpBranch %7 %7 = OpLabel - %13 = OpPhi %int %19 %14 + %13 = OpPhi %int %14 %15 %22 = OpSGreaterThan %bool %13 %int_5 OpBranchConditional %22 %9 %8 %9 = OpLabel @@ -775,22 +777,22 @@ OpLoopMerge %9 %7 None OpBranch %6 %6 = OpLabel - OpBranch %14 - %14 = OpLabel - OpBranch %17 - %17 = OpLabel - OpLoopMerge %18 %16 None OpBranch %15 %15 = OpLabel + OpBranch %18 + %18 = OpLabel + OpLoopMerge %14 %17 None OpBranch %16 %16 = OpLabel - OpBranchConditional %true %18 %17 - %18 = OpLabel + OpBranch %17 + %17 = OpLabel + OpBranchConditional %true %14 %18 + %14 = OpLabel OpBranch %7 %7 = OpLabel - %13 = OpPhi %int %11 %18 - %21 = OpSGreaterThan %bool %13 %int_5 - OpBranchConditional %21 %9 %8 + %13 = OpPhi %int %11 %14 + %19 = OpSGreaterThan %bool %13 %int_5 + OpBranchConditional %19 %9 %8 %9 = OpLabel OpReturn OpFunctionEnd @@ -944,17 +946,17 @@ OpLoopMerge %8 %6 None OpBranch %5 %5 = OpLabel - OpSelectionMerge %9 None - OpBranchConditional %false %10 %9 - %10 = OpLabel - OpBranch %8 + OpSelectionMerge %13 None + OpBranchConditional %false %9 %13 %9 = OpLabel + OpBranch %8 + %13 = OpLabel OpBranch %6 %6 = OpLabel OpBranchConditional %true %8 %7 %8 = OpLabel - %14 = OpPhi %int %int_42 %6 %int_1 %10 - OpReturnValue %14 + %10 = OpPhi %int %int_42 %6 %int_1 %9 + OpReturnValue %10 OpFunctionEnd )"); }
diff --git a/src/tint/lang/spirv/writer/printer/printer.cc b/src/tint/lang/spirv/writer/printer/printer.cc index 7c323c8..75895cf 100644 --- a/src/tint/lang/spirv/writer/printer/printer.cc +++ b/src/tint/lang/spirv/writer/printer/printer.cc
@@ -27,6 +27,7 @@ #include "src/tint/lang/spirv/writer/printer/printer.h" +#include <deque> #include <string> #include <utility> @@ -217,6 +218,12 @@ Output output_; + struct BlockInfo { + size_t idx; + core::ir::Block* block; + }; + std::deque<BlockInfo> blocks_to_emit_; + /// A function type used for an OpTypeFunction declaration. struct FunctionType { uint32_t return_type_id; @@ -731,8 +738,15 @@ TINT_DEFER(current_function_ = Function()); // Emit the body of the function. - auto idx = current_function_.AppendBlock(); - EmitBlockInternal(idx, func->Block()); + auto idx = current_function_.AppendBlock(entry_block); + blocks_to_emit_.push_back({idx, func->Block()}); + + while (!blocks_to_emit_.empty()) { + auto blk = blocks_to_emit_.front(); + blocks_to_emit_.pop_front(); + + EmitBlock(blk); + } // Add the function to the module. module_.PushFunction(current_function_); @@ -841,19 +855,21 @@ } size_t NewBlock(uint32_t id) { - auto idx = current_function_.AppendBlock(); + auto idx = current_function_.AppendBlock(id); current_function_.SetCurrentBlockIndex(idx); current_function_.PushInst(spv::Op::OpLabel, {id}); return idx; } - /// Emit a block, including the initial OpLabel, OpPhis and instructions. + /// Queue a block for emission. If the block contains comments a SPIR-V block will be created + /// and it will be added to the queue to be emitted later. If the block is empty, the + /// necessarily branch/unreachable instructions are added and no further processing is required. /// @param block the block to emit - void EmitBlock(core::ir::Block* block) { + void QueueBlock(core::ir::Block* block) { auto idx = NewBlock(Label(block)); if (!block->IsEmpty()) { - EmitBlockInternal(idx, block); + blocks_to_emit_.push_back({idx, block}); return; } @@ -866,16 +882,11 @@ } } - void EmitBlockInternal(size_t idx, core::ir::Block* block) { - current_function_.SetCurrentBlockIndex(idx); - - if (auto* mib = block->As<core::ir::MultiInBlock>()) { - // Emit all OpPhi nodes for incoming branches to block. - EmitIncomingPhis(mib); - } + void EmitBlock(BlockInfo& blk) { + current_function_.SetCurrentBlockIndex(blk.idx); // Emit the block's statements. - EmitBlockInstructions(block); + EmitBlockInstructions(blk.block); } /// Emit all OpPhi nodes for incoming branches to @p block. @@ -963,11 +974,13 @@ return; }, [&](core::ir::BreakIf* breakif) { + auto true_idx = GetMergeLabel(breakif->Loop()); + auto false_idx = GetLoopHeaderLabel(breakif->Loop()); current_function_.PushInst(spv::Op::OpBranchConditional, { Value(breakif->Condition()), - GetMergeLabel(breakif->Loop()), - GetLoopHeaderLabel(breakif->Loop()), + true_idx, + false_idx, }); }, [&](core::ir::Continue* cont) { @@ -1035,10 +1048,10 @@ // Emit the `true` and `false` blocks, if they're not being skipped. if (true_label != merge_label) { - EmitBlock(true_block); + QueueBlock(true_block); } if (false_label != merge_label) { - EmitBlock(false_block); + QueueBlock(false_block); } NewBlock(merge_label); @@ -2262,7 +2275,7 @@ if (init_label != 0) { // Emit the loop initializer. current_function_.PushInst(spv::Op::OpBranch, {init_label}); - EmitBlock(loop->Initializer()); + QueueBlock(loop->Initializer()); } else { // No initializer. Branch to body. current_function_.PushInst(spv::Op::OpBranch, {header_label}); @@ -2270,27 +2283,29 @@ // Emit the loop body header, which contains the OpLoopMerge and OpPhis. // This then unconditionally branches to body_label - [[maybe_unused]] auto header_idx = NewBlock(header_label); + NewBlock(header_label); EmitIncomingPhis(loop->Body()); current_function_.PushInst(spv::Op::OpLoopMerge, {merge_label, continuing_label, U32Operand(SpvLoopControlMaskNone)}); current_function_.PushInst(spv::Op::OpBranch, {body_label}); // Emit the loop body - [[maybe_unused]] auto body_blk = NewBlock(body_label); - EmitBlockInstructions(loop->Body()); + auto body_blk = NewBlock(body_label); + blocks_to_emit_.push_back({body_blk, loop->Body()}); + + auto cont_blk = NewBlock(continuing_label); + EmitIncomingPhis(loop->Continuing()); // Emit the loop continuing block. if (loop->Continuing()->Terminator()) { - EmitBlock(loop->Continuing()); + blocks_to_emit_.push_back({cont_blk, loop->Continuing()}); } else { // We still need to emit a continuing block with a back-edge, even if it is unreachable. - [[maybe_unused]] auto continuing_blk = NewBlock(continuing_label); current_function_.PushInst(spv::Op::OpBranch, {header_label}); } // Emit the loop merge block. - [[maybe_unused]] auto merge_blk = NewBlock(merge_label); + NewBlock(merge_label); // Emit the OpPhis for the ExitLoops EmitExitPhis(loop); @@ -2332,11 +2347,11 @@ // Emit the cases. for (auto& c : swtch->Cases()) { - EmitBlock(c.block); + QueueBlock(c.block); } // Emit the switch merge block. - [[maybe_unused]] auto merge_blk = NewBlock(merge_label); + NewBlock(merge_label); // Emit the OpPhis for the ExitSwitches EmitExitPhis(swtch); @@ -2620,7 +2635,11 @@ Vector<Branch, 8> branches; branches.Reserve(inst->Exits().Count()); - for (auto& exit : inst->Exits()) { + + auto exits = inst->Exits().Vector(); + exits.Sort([](auto a, auto b) -> bool { return a < b; }); + + for (auto& exit : exits) { branches.Push(Branch{GetTerminatorBlockLabel(exit), exit->Args()[index]}); } branches.Sort(); // Sort the branches by label to ensure deterministic output @@ -2633,7 +2652,6 @@ } }); } - OperandList ops{Type(ty), Value(result)}; for (auto& branch : branches) { if (branch.value == nullptr) {
diff --git a/src/tint/lang/spirv/writer/switch_test.cc b/src/tint/lang/spirv/writer/switch_test.cc index 711c245..a7154c9 100644 --- a/src/tint/lang/spirv/writer/switch_test.cc +++ b/src/tint/lang/spirv/writer/switch_test.cc
@@ -86,12 +86,12 @@ %4 = OpLabel OpSelectionMerge %10 None OpSwitch %int_42 %5 1 %8 2 %9 + %5 = OpLabel + OpBranch %10 %8 = OpLabel OpBranch %10 %9 = OpLabel OpBranch %10 - %5 = OpLabel - OpBranch %10 %10 = OpLabel OpReturn OpFunctionEnd @@ -166,12 +166,12 @@ %4 = OpLabel OpSelectionMerge %10 None OpSwitch %int_42 %5 1 %8 2 %9 + %5 = OpLabel + OpBranch %10 %8 = OpLabel OpBranch %10 %9 = OpLabel OpBranch %10 - %5 = OpLabel - OpBranch %10 %10 = OpLabel OpReturn OpFunctionEnd @@ -209,6 +209,8 @@ %4 = OpLabel OpSelectionMerge %9 None OpSwitch %int_42 %5 1 %8 + %5 = OpLabel + OpBranch %9 %8 = OpLabel OpSelectionMerge %10 None OpBranchConditional %true %11 %10 @@ -216,8 +218,6 @@ OpBranch %9 %10 = OpLabel OpBranch %9 - %5 = OpLabel - OpBranch %9 %9 = OpLabel OpReturn OpFunctionEnd @@ -291,18 +291,17 @@ %14 = OpLabel OpBranch %15 %15 = OpLabel - %18 = OpPhi %int %19 %12 %int_20 %14 - %21 = OpLoad %bool %continue_execution None - OpSelectionMerge %22 None - OpBranchConditional %21 %23 %22 - %23 = OpLabel - OpStore %return_value %18 None - OpBranch %22 - %22 = OpLabel - %24 = OpLoad %int %return_value None - OpReturnValue %24 + %16 = OpPhi %int %17 %12 %int_20 %14 + %19 = OpLoad %bool %continue_execution None + OpSelectionMerge %20 None + OpBranchConditional %19 %21 %20 + %21 = OpLabel + OpStore %return_value %16 None + OpBranch %20 + %20 = OpLabel + %22 = OpLoad %int %return_value None + OpReturnValue %22 OpFunctionEnd - )"); } @@ -410,19 +409,19 @@ OpSwitch %int_42 %5 1 %5 2 %7 %5 = OpLabel OpSelectionMerge %9 None - OpBranchConditional %true %10 %11 - %10 = OpLabel + OpBranchConditional %true %13 %14 + %13 = OpLabel OpBranch %9 - %11 = OpLabel + %14 = OpLabel OpBranch %9 %9 = OpLabel - %14 = OpPhi %int %int_10 %10 %int_20 %11 + %12 = OpPhi %int %int_10 %13 %int_20 %14 OpBranch %8 %7 = OpLabel OpBranch %8 %8 = OpLabel - %17 = OpPhi %int %int_20 %7 %14 %9 - OpReturnValue %17 + %10 = OpPhi %int %int_20 %7 %12 %9 + OpReturnValue %10 OpFunctionEnd )"); } @@ -457,17 +456,17 @@ OpSelectionMerge %8 None OpSwitch %int_42 %5 1 %5 2 %7 %5 = OpLabel - OpSelectionMerge %10 None - OpSwitch %int_42 %9 2 %9 + OpSelectionMerge %9 None + OpSwitch %int_42 %13 2 %13 + %13 = OpLabel + OpBranch %9 %9 = OpLabel - OpBranch %10 - %10 = OpLabel OpBranch %8 %7 = OpLabel OpBranch %8 %8 = OpLabel - %11 = OpPhi %int %int_20 %7 %int_10 %10 - OpReturnValue %11 + %10 = OpPhi %int %int_20 %7 %int_10 %9 + OpReturnValue %10 OpFunctionEnd )"); }
diff --git a/src/tint/lang/spirv/writer/var_test.cc b/src/tint/lang/spirv/writer/var_test.cc index 1ee6b74..71359aa 100644 --- a/src/tint/lang/spirv/writer/var_test.cc +++ b/src/tint/lang/spirv/writer/var_test.cc
@@ -333,8 +333,8 @@ OpName %foo_local_invocation_index_Input "foo_local_invocation_index_Input" ; id %4 OpName %foo_inner "foo_inner" ; id %7 OpName %tint_local_index "tint_local_index" ; id %9 - OpName %load "load" ; id %21 - OpName %add "add" ; id %22 + OpName %load "load" ; id %20 + OpName %add "add" ; id %21 OpName %foo "foo" ; id %24 ; Annotations @@ -351,10 +351,10 @@ %10 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 %int_1 = OpConstant %int 1 + %int_0 = OpConstant %int 0 %25 = OpTypeFunction %void ; Function foo_inner
diff --git a/test/tint/access/ptr.wgsl.expected.spvasm b/test/tint/access/ptr.wgsl.expected.spvasm index 4bbe212..af169c2 100644 --- a/test/tint/access/ptr.wgsl.expected.spvasm +++ b/test/tint/access/ptr.wgsl.expected.spvasm
@@ -72,10 +72,10 @@ %void = OpTypeVoid %74 = OpTypeFunction %void %uint %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_264 = OpConstant %uint 264 - %86 = OpConstantNull %S - %88 = OpConstantNull %v3float + %int_0 = OpConstant %int 0 + %85 = OpConstantNull %S + %87 = OpConstantNull %v3float %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int %105 = OpTypeFunction %int %float %float_n2_14748365e_09 = OpConstant %float -2.14748365e+09 @@ -157,23 +157,23 @@ %78 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 OpStore %v1 %int_0 - OpStore %v2 %86 - OpStore %v4 %88 + OpStore %v2 %85 + OpStore %v4 %87 %t1 = OpAtomicLoad %int %g1 %uint_2 %uint_0 - %90 = OpFunctionCall %int %accept_ptr_deref_pass_through %v1 - %91 = OpFunctionCall %int %accept_ptr_to_struct_and_access %v2 - %92 = OpIAdd %int %90 %91 - %93 = OpFunctionCall %int %accept_ptr_to_struct_and_access %v2 - %94 = OpIAdd %int %92 %93 - %95 = OpFunctionCall %int %accept_ptr_vec_access_elements %v4 - %96 = OpIAdd %int %94 %95 - %97 = OpFunctionCall %int %accept_ptr_to_struct_access_pass_ptr %v2 - %98 = OpIAdd %int %96 %97 - %99 = OpFunctionCall %int %call_builtin_with_mod_scope_ptr - %100 = OpIAdd %int %98 %99 - %101 = OpIAdd %int %100 %t1 - %102 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 - OpStore %102 %101 None + %89 = OpFunctionCall %int %accept_ptr_deref_pass_through %v1 + %90 = OpFunctionCall %int %accept_ptr_to_struct_and_access %v2 + %91 = OpIAdd %int %89 %90 + %92 = OpFunctionCall %int %accept_ptr_to_struct_and_access %v2 + %93 = OpIAdd %int %91 %92 + %94 = OpFunctionCall %int %accept_ptr_vec_access_elements %v4 + %95 = OpIAdd %int %93 %94 + %96 = OpFunctionCall %int %accept_ptr_to_struct_access_pass_ptr %v2 + %97 = OpIAdd %int %95 %96 + %98 = OpFunctionCall %int %call_builtin_with_mod_scope_ptr + %99 = OpIAdd %int %97 %98 + %100 = OpIAdd %int %99 %t1 + %101 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 + OpStore %101 %100 None OpReturn OpFunctionEnd %tint_f32_to_i32 = OpFunction %int None %105
diff --git a/test/tint/array/assign_to_function_var.wgsl.expected.spvasm b/test/tint/array/assign_to_function_var.wgsl.expected.spvasm index 8081d08..a5e90f0 100644 --- a/test/tint/array/assign_to_function_var.wgsl.expected.spvasm +++ b/test/tint/array/assign_to_function_var.wgsl.expected.spvasm
@@ -91,11 +91,11 @@ %_ptr_Function__arr__arr__arr_int_uint_2_uint_3_uint_4 = OpTypePointer Function %_arr__arr__arr_int_uint_2_uint_3_uint_4 %67 = OpConstantNull %_arr__arr__arr_int_uint_2_uint_3_uint_4 %72 = OpTypeFunction %void %uint + %uint_264 = OpConstant %uint 264 %bool = OpTypeBool %_ptr_Workgroup_v4int = OpTypePointer Workgroup %v4int - %87 = OpConstantNull %v4int + %90 = OpConstantNull %v4int %uint_1 = OpConstant %uint 1 - %uint_264 = OpConstant %uint 264 %93 = OpTypeFunction %void %98 = OpTypeFunction %_arr_v4int_uint_4 %_arr_v4int_uint_4_0 %_ptr_Function__arr_v4int_uint_4_0 = OpTypePointer Function %_arr_v4int_uint_4_0 @@ -152,21 +152,21 @@ OpLoopMerge %78 %76 None OpBranch %75 %75 = OpLabel - %81 = OpUGreaterThanEqual %bool %79 %uint_4 - OpSelectionMerge %83 None - OpBranchConditional %81 %84 %83 - %84 = OpLabel + %84 = OpUGreaterThanEqual %bool %79 %uint_4 + OpSelectionMerge %86 None + OpBranchConditional %84 %87 %86 + %87 = OpLabel OpBranch %78 - %83 = OpLabel - %85 = OpAccessChain %_ptr_Workgroup_v4int %src_workgroup %79 - OpStore %85 %87 None + %86 = OpLabel + %88 = OpAccessChain %_ptr_Workgroup_v4int %src_workgroup %79 + OpStore %88 %90 None OpBranch %76 %76 = OpLabel %80 = OpIAdd %uint %79 %uint_1 OpBranch %77 %78 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %91 = OpFunctionCall %void %foo %src_let + %83 = OpFunctionCall %void %foo %src_let OpReturn OpFunctionEnd %main = OpFunction %void None %93 @@ -189,21 +189,21 @@ OpLoopMerge %107 %105 None OpBranch %104 %104 = OpLabel - %110 = OpUGreaterThanEqual %bool %108 %uint_4 - OpSelectionMerge %111 None - OpBranchConditional %110 %112 %111 - %112 = OpLabel + %111 = OpUGreaterThanEqual %bool %108 %uint_4 + OpSelectionMerge %112 None + OpBranchConditional %111 %113 %112 + %113 = OpLabel OpBranch %107 - %111 = OpLabel - %113 = OpAccessChain %_ptr_Function_v4int %100 %108 - %115 = OpLoad %v4int %113 None - %116 = OpAccessChain %_ptr_Function_v4int %102 %108 - OpStore %116 %115 None + %112 = OpLabel + %114 = OpAccessChain %_ptr_Function_v4int %100 %108 + %116 = OpLoad %v4int %114 None + %117 = OpAccessChain %_ptr_Function_v4int %102 %108 + OpStore %117 %116 None OpBranch %105 %105 = OpLabel %109 = OpIAdd %uint %108 %uint_1 OpBranch %106 %107 = OpLabel - %117 = OpLoad %_arr_v4int_uint_4 %102 None - OpReturnValue %117 + %110 = OpLoad %_arr_v4int_uint_4 %102 None + OpReturnValue %110 OpFunctionEnd
diff --git a/test/tint/array/assign_to_private_var.wgsl.expected.spvasm b/test/tint/array/assign_to_private_var.wgsl.expected.spvasm index a49b008..fffbc1b 100644 --- a/test/tint/array/assign_to_private_var.wgsl.expected.spvasm +++ b/test/tint/array/assign_to_private_var.wgsl.expected.spvasm
@@ -94,11 +94,11 @@ %_ptr_StorageBuffer__arr_v4int_uint_4_0 = OpTypePointer StorageBuffer %_arr_v4int_uint_4_0 %_ptr_Function__arr__arr__arr_int_uint_2_uint_3_uint_4 = OpTypePointer Function %_arr__arr__arr_int_uint_2_uint_3_uint_4 %73 = OpTypeFunction %void %uint + %uint_264 = OpConstant %uint 264 %bool = OpTypeBool %_ptr_Workgroup_v4int = OpTypePointer Workgroup %v4int - %88 = OpConstantNull %v4int + %91 = OpConstantNull %v4int %uint_1 = OpConstant %uint 1 - %uint_264 = OpConstant %uint 264 %94 = OpTypeFunction %void %99 = OpTypeFunction %_arr_v4int_uint_4 %_arr_v4int_uint_4_0 %_ptr_Function__arr_v4int_uint_4_0 = OpTypePointer Function %_arr_v4int_uint_4_0 @@ -153,21 +153,21 @@ OpLoopMerge %79 %77 None OpBranch %76 %76 = OpLabel - %82 = OpUGreaterThanEqual %bool %80 %uint_4 - OpSelectionMerge %84 None - OpBranchConditional %82 %85 %84 - %85 = OpLabel + %85 = OpUGreaterThanEqual %bool %80 %uint_4 + OpSelectionMerge %87 None + OpBranchConditional %85 %88 %87 + %88 = OpLabel OpBranch %79 - %84 = OpLabel - %86 = OpAccessChain %_ptr_Workgroup_v4int %src_workgroup %80 - OpStore %86 %88 None + %87 = OpLabel + %89 = OpAccessChain %_ptr_Workgroup_v4int %src_workgroup %80 + OpStore %89 %91 None OpBranch %77 %77 = OpLabel %81 = OpIAdd %uint %80 %uint_1 OpBranch %78 %79 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %92 = OpFunctionCall %void %foo %src_let + %84 = OpFunctionCall %void %foo %src_let OpReturn OpFunctionEnd %main = OpFunction %void None %94 @@ -190,21 +190,21 @@ OpLoopMerge %108 %106 None OpBranch %105 %105 = OpLabel - %111 = OpUGreaterThanEqual %bool %109 %uint_4 - OpSelectionMerge %112 None - OpBranchConditional %111 %113 %112 - %113 = OpLabel + %112 = OpUGreaterThanEqual %bool %109 %uint_4 + OpSelectionMerge %113 None + OpBranchConditional %112 %114 %113 + %114 = OpLabel OpBranch %108 - %112 = OpLabel - %114 = OpAccessChain %_ptr_Function_v4int %101 %109 - %116 = OpLoad %v4int %114 None - %117 = OpAccessChain %_ptr_Function_v4int %103 %109 - OpStore %117 %116 None + %113 = OpLabel + %115 = OpAccessChain %_ptr_Function_v4int %101 %109 + %117 = OpLoad %v4int %115 None + %118 = OpAccessChain %_ptr_Function_v4int %103 %109 + OpStore %118 %117 None OpBranch %106 %106 = OpLabel %110 = OpIAdd %uint %109 %uint_1 OpBranch %107 %108 = OpLabel - %118 = OpLoad %_arr_v4int_uint_4 %103 None - OpReturnValue %118 + %111 = OpLoad %_arr_v4int_uint_4 %103 None + OpReturnValue %111 OpFunctionEnd
diff --git a/test/tint/array/assign_to_storage_var.wgsl.expected.spvasm b/test/tint/array/assign_to_storage_var.wgsl.expected.spvasm index df6b5a1..02c7e5d 100644 --- a/test/tint/array/assign_to_storage_var.wgsl.expected.spvasm +++ b/test/tint/array/assign_to_storage_var.wgsl.expected.spvasm
@@ -128,11 +128,11 @@ %97 = OpConstantNull %_arr__arr__arr_int_uint_2_0_uint_3_uint_4 %_ptr_StorageBuffer__arr__arr__arr_int_uint_2_uint_3_uint_4 = OpTypePointer StorageBuffer %_arr__arr__arr_int_uint_2_uint_3_uint_4 %105 = OpTypeFunction %void %uint + %uint_264 = OpConstant %uint 264 %bool = OpTypeBool %_ptr_Workgroup_v4int = OpTypePointer Workgroup %v4int - %120 = OpConstantNull %v4int + %123 = OpConstantNull %v4int %uint_1 = OpConstant %uint 1 - %uint_264 = OpConstant %uint 264 %126 = OpTypeFunction %void %131 = OpTypeFunction %_arr_v4int_uint_4 %_arr_v4int_uint_4_0 %_ptr_Function__arr_v4int_uint_4_0 = OpTypePointer Function %_arr_v4int_uint_4_0 @@ -223,21 +223,21 @@ OpLoopMerge %111 %109 None OpBranch %108 %108 = OpLabel - %114 = OpUGreaterThanEqual %bool %112 %uint_4 - OpSelectionMerge %116 None - OpBranchConditional %114 %117 %116 - %117 = OpLabel + %117 = OpUGreaterThanEqual %bool %112 %uint_4 + OpSelectionMerge %119 None + OpBranchConditional %117 %120 %119 + %120 = OpLabel OpBranch %111 - %116 = OpLabel - %118 = OpAccessChain %_ptr_Workgroup_v4int %src_workgroup %112 - OpStore %118 %120 None + %119 = OpLabel + %121 = OpAccessChain %_ptr_Workgroup_v4int %src_workgroup %112 + OpStore %121 %123 None OpBranch %109 %109 = OpLabel %113 = OpIAdd %uint %112 %uint_1 OpBranch %110 %111 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %124 = OpFunctionCall %void %foo %src_let + %116 = OpFunctionCall %void %foo %src_let OpReturn OpFunctionEnd %main = OpFunction %void None %126 @@ -260,23 +260,23 @@ OpLoopMerge %140 %138 None OpBranch %137 %137 = OpLabel - %143 = OpUGreaterThanEqual %bool %141 %uint_4 - OpSelectionMerge %144 None - OpBranchConditional %143 %145 %144 - %145 = OpLabel + %144 = OpUGreaterThanEqual %bool %141 %uint_4 + OpSelectionMerge %145 None + OpBranchConditional %144 %146 %145 + %146 = OpLabel OpBranch %140 - %144 = OpLabel - %146 = OpAccessChain %_ptr_Function_v4int %133 %141 - %148 = OpLoad %v4int %146 None - %149 = OpAccessChain %_ptr_Function_v4int %135 %141 - OpStore %149 %148 None + %145 = OpLabel + %147 = OpAccessChain %_ptr_Function_v4int %133 %141 + %149 = OpLoad %v4int %147 None + %150 = OpAccessChain %_ptr_Function_v4int %135 %141 + OpStore %150 %149 None OpBranch %138 %138 = OpLabel %142 = OpIAdd %uint %141 %uint_1 OpBranch %139 %140 = OpLabel - %150 = OpLoad %_arr_v4int_uint_4 %135 None - OpReturnValue %150 + %143 = OpLoad %_arr_v4int_uint_4 %135 None + OpReturnValue %143 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %_arr_v4int_uint_4_0 None %152 %tint_source_0 = OpFunctionParameter %_arr_v4int_uint_4 @@ -292,23 +292,23 @@ OpLoopMerge %161 %159 None OpBranch %158 %158 = OpLabel - %164 = OpUGreaterThanEqual %bool %162 %uint_4 - OpSelectionMerge %165 None - OpBranchConditional %164 %166 %165 - %166 = OpLabel + %165 = OpUGreaterThanEqual %bool %162 %uint_4 + OpSelectionMerge %166 None + OpBranchConditional %165 %167 %166 + %167 = OpLabel OpBranch %161 - %165 = OpLabel - %167 = OpAccessChain %_ptr_Function_v4int %154 %162 - %168 = OpLoad %v4int %167 None - %169 = OpAccessChain %_ptr_Function_v4int %155 %162 - OpStore %169 %168 None + %166 = OpLabel + %168 = OpAccessChain %_ptr_Function_v4int %154 %162 + %169 = OpLoad %v4int %168 None + %170 = OpAccessChain %_ptr_Function_v4int %155 %162 + OpStore %170 %169 None OpBranch %159 %159 = OpLabel %163 = OpIAdd %uint %162 %uint_1 OpBranch %160 %161 = OpLabel - %170 = OpLoad %_arr_v4int_uint_4_0 %155 None - OpReturnValue %170 + %164 = OpLoad %_arr_v4int_uint_4_0 %155 None + OpReturnValue %164 OpFunctionEnd %tint_convert_explicit_layout_1 = OpFunction %_arr__arr__arr_int_uint_2_uint_3_uint_4 None %172 %tint_source_1 = OpFunctionParameter %_arr__arr__arr_int_uint_2_0_uint_3_uint_4 @@ -324,24 +324,24 @@ OpLoopMerge %182 %180 None OpBranch %179 %179 = OpLabel - %185 = OpUGreaterThanEqual %bool %183 %uint_4 - OpSelectionMerge %186 None - OpBranchConditional %185 %187 %186 - %187 = OpLabel + %186 = OpUGreaterThanEqual %bool %183 %uint_4 + OpSelectionMerge %187 None + OpBranchConditional %186 %188 %187 + %188 = OpLabel OpBranch %182 - %186 = OpLabel - %188 = OpAccessChain %_ptr_Function__arr__arr_int_uint_2_0_uint_3 %174 %183 - %190 = OpLoad %_arr__arr_int_uint_2_0_uint_3 %188 None - %191 = OpFunctionCall %_arr__arr_int_uint_2_uint_3 %tint_convert_explicit_layout_2 %190 - %193 = OpAccessChain %_ptr_Function__arr__arr_int_uint_2_uint_3 %175 %183 - OpStore %193 %191 None + %187 = OpLabel + %189 = OpAccessChain %_ptr_Function__arr__arr_int_uint_2_0_uint_3 %174 %183 + %191 = OpLoad %_arr__arr_int_uint_2_0_uint_3 %189 None + %192 = OpFunctionCall %_arr__arr_int_uint_2_uint_3 %tint_convert_explicit_layout_2 %191 + %194 = OpAccessChain %_ptr_Function__arr__arr_int_uint_2_uint_3 %175 %183 + OpStore %194 %192 None OpBranch %180 %180 = OpLabel %184 = OpIAdd %uint %183 %uint_1 OpBranch %181 %182 = OpLabel - %195 = OpLoad %_arr__arr__arr_int_uint_2_uint_3_uint_4 %175 None - OpReturnValue %195 + %185 = OpLoad %_arr__arr__arr_int_uint_2_uint_3_uint_4 %175 None + OpReturnValue %185 OpFunctionEnd %tint_convert_explicit_layout_2 = OpFunction %_arr__arr_int_uint_2_uint_3 None %197 %tint_source_2 = OpFunctionParameter %_arr__arr_int_uint_2_0_uint_3 @@ -357,24 +357,24 @@ OpLoopMerge %206 %204 None OpBranch %203 %203 = OpLabel - %209 = OpUGreaterThanEqual %bool %207 %uint_3 - OpSelectionMerge %210 None - OpBranchConditional %209 %211 %210 - %211 = OpLabel + %210 = OpUGreaterThanEqual %bool %207 %uint_3 + OpSelectionMerge %211 None + OpBranchConditional %210 %212 %211 + %212 = OpLabel OpBranch %206 - %210 = OpLabel - %212 = OpAccessChain %_ptr_Function__arr_int_uint_2_0 %199 %207 - %214 = OpLoad %_arr_int_uint_2_0 %212 None - %215 = OpFunctionCall %_arr_int_uint_2 %tint_convert_explicit_layout_3 %214 - %217 = OpAccessChain %_ptr_Function__arr_int_uint_2 %200 %207 - OpStore %217 %215 None + %211 = OpLabel + %213 = OpAccessChain %_ptr_Function__arr_int_uint_2_0 %199 %207 + %215 = OpLoad %_arr_int_uint_2_0 %213 None + %216 = OpFunctionCall %_arr_int_uint_2 %tint_convert_explicit_layout_3 %215 + %218 = OpAccessChain %_ptr_Function__arr_int_uint_2 %200 %207 + OpStore %218 %216 None OpBranch %204 %204 = OpLabel %208 = OpIAdd %uint %207 %uint_1 OpBranch %205 %206 = OpLabel - %219 = OpLoad %_arr__arr_int_uint_2_uint_3 %200 None - OpReturnValue %219 + %209 = OpLoad %_arr__arr_int_uint_2_uint_3 %200 None + OpReturnValue %209 OpFunctionEnd %tint_convert_explicit_layout_3 = OpFunction %_arr_int_uint_2 None %221 %tint_source_3 = OpFunctionParameter %_arr_int_uint_2_0 @@ -390,21 +390,21 @@ OpLoopMerge %230 %228 None OpBranch %227 %227 = OpLabel - %233 = OpUGreaterThanEqual %bool %231 %uint_2 - OpSelectionMerge %234 None - OpBranchConditional %233 %235 %234 - %235 = OpLabel + %234 = OpUGreaterThanEqual %bool %231 %uint_2 + OpSelectionMerge %235 None + OpBranchConditional %234 %236 %235 + %236 = OpLabel OpBranch %230 - %234 = OpLabel - %236 = OpAccessChain %_ptr_Function_int %223 %231 - %238 = OpLoad %int %236 None - %239 = OpAccessChain %_ptr_Function_int %224 %231 - OpStore %239 %238 None + %235 = OpLabel + %237 = OpAccessChain %_ptr_Function_int %223 %231 + %239 = OpLoad %int %237 None + %240 = OpAccessChain %_ptr_Function_int %224 %231 + OpStore %240 %239 None OpBranch %228 %228 = OpLabel %232 = OpIAdd %uint %231 %uint_1 OpBranch %229 %230 = OpLabel - %240 = OpLoad %_arr_int_uint_2 %224 None - OpReturnValue %240 + %233 = OpLoad %_arr_int_uint_2 %224 None + OpReturnValue %233 OpFunctionEnd
diff --git a/test/tint/array/assign_to_workgroup_var.wgsl.expected.spvasm b/test/tint/array/assign_to_workgroup_var.wgsl.expected.spvasm index 7900149..2b77a2c 100644 --- a/test/tint/array/assign_to_workgroup_var.wgsl.expected.spvasm +++ b/test/tint/array/assign_to_workgroup_var.wgsl.expected.spvasm
@@ -94,15 +94,15 @@ %_ptr_Function__arr__arr__arr_int_uint_2_uint_3_uint_4 = OpTypePointer Function %_arr__arr__arr_int_uint_2_uint_3_uint_4 %69 = OpConstantNull %_arr__arr__arr_int_uint_2_uint_3_uint_4 %73 = OpTypeFunction %void %uint + %uint_264 = OpConstant %uint 264 %bool = OpTypeBool %_ptr_Workgroup_v4int = OpTypePointer Workgroup %v4int - %88 = OpConstantNull %v4int + %98 = OpConstantNull %v4int %uint_1 = OpConstant %uint 1 %uint_24 = OpConstant %uint 24 %uint_6 = OpConstant %uint 6 %_ptr_Workgroup_int = OpTypePointer Workgroup %int %int_0 = OpConstant %int 0 - %uint_264 = OpConstant %uint 264 %114 = OpTypeFunction %void %119 = OpTypeFunction %_arr_v4int_uint_4 %_arr_v4int_uint_4_0 %_ptr_Function__arr_v4int_uint_4_0 = OpTypePointer Function %_arr_v4int_uint_4_0 @@ -157,48 +157,48 @@ OpLoopMerge %79 %77 None OpBranch %76 %76 = OpLabel - %82 = OpUGreaterThanEqual %bool %80 %uint_4 - OpSelectionMerge %84 None - OpBranchConditional %82 %85 %84 - %85 = OpLabel + %92 = OpUGreaterThanEqual %bool %80 %uint_4 + OpSelectionMerge %94 None + OpBranchConditional %92 %95 %94 + %95 = OpLabel OpBranch %79 - %84 = OpLabel - %86 = OpAccessChain %_ptr_Workgroup_v4int %src_workgroup %80 - OpStore %86 %88 None - %89 = OpAccessChain %_ptr_Workgroup_v4int %dst %80 - OpStore %89 %88 None + %94 = OpLabel + %96 = OpAccessChain %_ptr_Workgroup_v4int %src_workgroup %80 + OpStore %96 %98 None + %99 = OpAccessChain %_ptr_Workgroup_v4int %dst %80 + OpStore %99 %98 None OpBranch %77 %77 = OpLabel %81 = OpIAdd %uint %80 %uint_1 OpBranch %78 %79 = OpLabel - OpBranch %91 - %91 = OpLabel - OpBranch %94 - %94 = OpLabel - %96 = OpPhi %uint %tint_local_index %91 %97 %93 - OpLoopMerge %95 %93 None - OpBranch %92 - %92 = OpLabel - %98 = OpUGreaterThanEqual %bool %96 %uint_24 - OpSelectionMerge %100 None - OpBranchConditional %98 %101 %100 - %101 = OpLabel - OpBranch %95 - %100 = OpLabel - %102 = OpUMod %uint %96 %uint_2 - %103 = OpUDiv %uint %96 %uint_2 - %104 = OpUMod %uint %103 %uint_3 - %105 = OpUDiv %uint %96 %uint_6 - %107 = OpAccessChain %_ptr_Workgroup_int %dst_nested %105 %104 %102 - OpStore %107 %int_0 None - OpBranch %93 - %93 = OpLabel - %97 = OpIAdd %uint %96 %uint_1 - OpBranch %94 - %95 = OpLabel + OpBranch %82 + %82 = OpLabel + OpBranch %85 + %85 = OpLabel + %87 = OpPhi %uint %tint_local_index %82 %88 %84 + OpLoopMerge %86 %84 None + OpBranch %83 + %83 = OpLabel + %101 = OpUGreaterThanEqual %bool %87 %uint_24 + OpSelectionMerge %103 None + OpBranchConditional %101 %104 %103 + %104 = OpLabel + OpBranch %86 + %103 = OpLabel + %105 = OpUMod %uint %87 %uint_2 + %106 = OpUDiv %uint %87 %uint_2 + %107 = OpUMod %uint %106 %uint_3 + %108 = OpUDiv %uint %87 %uint_6 + %110 = OpAccessChain %_ptr_Workgroup_int %dst_nested %108 %107 %105 + OpStore %110 %int_0 None + OpBranch %84 + %84 = OpLabel + %88 = OpIAdd %uint %87 %uint_1 + OpBranch %85 + %86 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %112 = OpFunctionCall %void %foo %src_let + %91 = OpFunctionCall %void %foo %src_let OpReturn OpFunctionEnd %main = OpFunction %void None %114 @@ -221,21 +221,21 @@ OpLoopMerge %128 %126 None OpBranch %125 %125 = OpLabel - %131 = OpUGreaterThanEqual %bool %129 %uint_4 - OpSelectionMerge %132 None - OpBranchConditional %131 %133 %132 - %133 = OpLabel + %132 = OpUGreaterThanEqual %bool %129 %uint_4 + OpSelectionMerge %133 None + OpBranchConditional %132 %134 %133 + %134 = OpLabel OpBranch %128 - %132 = OpLabel - %134 = OpAccessChain %_ptr_Function_v4int %121 %129 - %136 = OpLoad %v4int %134 None - %137 = OpAccessChain %_ptr_Function_v4int %123 %129 - OpStore %137 %136 None + %133 = OpLabel + %135 = OpAccessChain %_ptr_Function_v4int %121 %129 + %137 = OpLoad %v4int %135 None + %138 = OpAccessChain %_ptr_Function_v4int %123 %129 + OpStore %138 %137 None OpBranch %126 %126 = OpLabel %130 = OpIAdd %uint %129 %uint_1 OpBranch %127 %128 = OpLabel - %138 = OpLoad %_arr_v4int_uint_4 %123 None - OpReturnValue %138 + %131 = OpLoad %_arr_v4int_uint_4 %123 None + OpReturnValue %131 OpFunctionEnd
diff --git a/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.spvasm b/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.spvasm index 1798efa..d416ab3 100644 --- a/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.spvasm +++ b/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.spvasm
@@ -440,21 +440,21 @@ OpLoopMerge %310 %308 None OpBranch %307 %307 = OpLabel - %313 = OpUGreaterThanEqual %bool %311 %uint_2 - OpSelectionMerge %314 None - OpBranchConditional %313 %315 %314 - %315 = OpLabel + %314 = OpUGreaterThanEqual %bool %311 %uint_2 + OpSelectionMerge %315 None + OpBranchConditional %314 %316 %315 + %316 = OpLabel OpBranch %310 - %314 = OpLabel - %316 = OpAccessChain %_ptr_Function_v3float %301 %311 - %318 = OpLoad %v3float %316 None - %319 = OpAccessChain %_ptr_Function_v3float %303 %311 - OpStore %319 %318 None + %315 = OpLabel + %317 = OpAccessChain %_ptr_Function_v3float %301 %311 + %319 = OpLoad %v3float %317 None + %320 = OpAccessChain %_ptr_Function_v3float %303 %311 + OpStore %320 %319 None OpBranch %308 %308 = OpLabel %312 = OpIAdd %uint %311 %uint_1 OpBranch %309 %310 = OpLabel - %320 = OpLoad %_arr_v3float_uint_2_0 %303 None - OpReturnValue %320 + %313 = OpLoad %_arr_v3float_uint_2_0 %303 None + OpReturnValue %313 OpFunctionEnd
diff --git a/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.spvasm b/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.spvasm index e7bcfe8..4f45873 100644 --- a/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.spvasm +++ b/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.spvasm
@@ -697,23 +697,23 @@ OpLoopMerge %491 %489 None OpBranch %488 %488 = OpLabel - %494 = OpUGreaterThanEqual %bool %492 %uint_2 - OpSelectionMerge %495 None - OpBranchConditional %494 %496 %495 - %496 = OpLabel + %495 = OpUGreaterThanEqual %bool %492 %uint_2 + OpSelectionMerge %496 None + OpBranchConditional %495 %497 %496 + %497 = OpLabel OpBranch %491 - %495 = OpLabel - %497 = OpAccessChain %_ptr_Function_v3float %482 %492 - %499 = OpLoad %v3float %497 None - %500 = OpAccessChain %_ptr_Function_v3float %484 %492 - OpStore %500 %499 None + %496 = OpLabel + %498 = OpAccessChain %_ptr_Function_v3float %482 %492 + %500 = OpLoad %v3float %498 None + %501 = OpAccessChain %_ptr_Function_v3float %484 %492 + OpStore %501 %500 None OpBranch %489 %489 = OpLabel %493 = OpIAdd %uint %492 %uint_1 OpBranch %490 %491 = OpLabel - %501 = OpLoad %_arr_v3float_uint_2_0 %484 None - OpReturnValue %501 + %494 = OpLoad %_arr_v3float_uint_2_0 %484 None + OpReturnValue %494 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %_arr_mat4v2half_uint_2_0 None %503 %tint_source_0 = OpFunctionParameter %_arr_mat4v2half_uint_2 @@ -729,21 +729,21 @@ OpLoopMerge %514 %512 None OpBranch %511 %511 = OpLabel - %517 = OpUGreaterThanEqual %bool %515 %uint_2 - OpSelectionMerge %518 None - OpBranchConditional %517 %519 %518 - %519 = OpLabel + %518 = OpUGreaterThanEqual %bool %515 %uint_2 + OpSelectionMerge %519 None + OpBranchConditional %518 %520 %519 + %520 = OpLabel OpBranch %514 - %518 = OpLabel - %520 = OpAccessChain %_ptr_Function_mat4v2half %505 %515 - %522 = OpLoad %mat4v2half %520 None - %523 = OpAccessChain %_ptr_Function_mat4v2half %507 %515 - OpStore %523 %522 None + %519 = OpLabel + %521 = OpAccessChain %_ptr_Function_mat4v2half %505 %515 + %523 = OpLoad %mat4v2half %521 None + %524 = OpAccessChain %_ptr_Function_mat4v2half %507 %515 + OpStore %524 %523 None OpBranch %512 %512 = OpLabel %516 = OpIAdd %uint %515 %uint_1 OpBranch %513 %514 = OpLabel - %524 = OpLoad %_arr_mat4v2half_uint_2_0 %507 None - OpReturnValue %524 + %517 = OpLoad %_arr_mat4v2half_uint_2_0 %507 None + OpReturnValue %517 OpFunctionEnd
diff --git a/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.spvasm b/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.spvasm index 2acc0d6..14c1348 100644 --- a/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.spvasm +++ b/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.spvasm
@@ -696,21 +696,21 @@ OpLoopMerge %455 %453 None OpBranch %452 %452 = OpLabel - %458 = OpUGreaterThanEqual %bool %456 %uint_2 - OpSelectionMerge %459 None - OpBranchConditional %458 %460 %459 - %460 = OpLabel + %459 = OpUGreaterThanEqual %bool %456 %uint_2 + OpSelectionMerge %460 None + OpBranchConditional %459 %461 %460 + %461 = OpLabel OpBranch %455 - %459 = OpLabel - %461 = OpAccessChain %_ptr_Function_mat4v2half %446 %456 - %463 = OpLoad %mat4v2half %461 None - %464 = OpAccessChain %_ptr_Function_mat4v2half %448 %456 - OpStore %464 %463 None + %460 = OpLabel + %462 = OpAccessChain %_ptr_Function_mat4v2half %446 %456 + %464 = OpLoad %mat4v2half %462 None + %465 = OpAccessChain %_ptr_Function_mat4v2half %448 %456 + OpStore %465 %464 None OpBranch %453 %453 = OpLabel %457 = OpIAdd %uint %456 %uint_1 OpBranch %454 %455 = OpLabel - %465 = OpLoad %_arr_mat4v2half_uint_2 %448 None - OpReturnValue %465 + %458 = OpLoad %_arr_mat4v2half_uint_2 %448 None + OpReturnValue %458 OpFunctionEnd
diff --git a/test/tint/buffer/storage/static_index/read.wgsl.expected.spvasm b/test/tint/buffer/storage/static_index/read.wgsl.expected.spvasm index c649172..5b297f8 100644 --- a/test/tint/buffer/storage/static_index/read.wgsl.expected.spvasm +++ b/test/tint/buffer/storage/static_index/read.wgsl.expected.spvasm
@@ -368,23 +368,23 @@ OpLoopMerge %228 %226 None OpBranch %225 %225 = OpLabel - %231 = OpUGreaterThanEqual %bool %229 %uint_2 - OpSelectionMerge %232 None - OpBranchConditional %231 %233 %232 - %233 = OpLabel + %232 = OpUGreaterThanEqual %bool %229 %uint_2 + OpSelectionMerge %233 None + OpBranchConditional %232 %234 %233 + %234 = OpLabel OpBranch %228 - %232 = OpLabel - %234 = OpAccessChain %_ptr_Function_v3float %219 %229 - %236 = OpLoad %v3float %234 None - %237 = OpAccessChain %_ptr_Function_v3float %221 %229 - OpStore %237 %236 None + %233 = OpLabel + %235 = OpAccessChain %_ptr_Function_v3float %219 %229 + %237 = OpLoad %v3float %235 None + %238 = OpAccessChain %_ptr_Function_v3float %221 %229 + OpStore %238 %237 None OpBranch %226 %226 = OpLabel %230 = OpIAdd %uint %229 %uint_1 OpBranch %227 %228 = OpLabel - %238 = OpLoad %_arr_v3float_uint_2_0 %221 None - OpReturnValue %238 + %231 = OpLoad %_arr_v3float_uint_2_0 %221 None + OpReturnValue %231 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %_arr_Inner_uint_4_0 None %240 %tint_source_0 = OpFunctionParameter %_arr_Inner_uint_4 @@ -400,21 +400,21 @@ OpLoopMerge %251 %249 None OpBranch %248 %248 = OpLabel - %254 = OpUGreaterThanEqual %bool %252 %uint_4 - OpSelectionMerge %255 None - OpBranchConditional %254 %256 %255 - %256 = OpLabel + %255 = OpUGreaterThanEqual %bool %252 %uint_4 + OpSelectionMerge %256 None + OpBranchConditional %255 %257 %256 + %257 = OpLabel OpBranch %251 - %255 = OpLabel - %257 = OpAccessChain %_ptr_Function_Inner %242 %252 - %259 = OpLoad %Inner %257 None - %260 = OpAccessChain %_ptr_Function_Inner %244 %252 - OpStore %260 %259 None + %256 = OpLabel + %258 = OpAccessChain %_ptr_Function_Inner %242 %252 + %260 = OpLoad %Inner %258 None + %261 = OpAccessChain %_ptr_Function_Inner %244 %252 + OpStore %261 %260 None OpBranch %249 %249 = OpLabel %253 = OpIAdd %uint %252 %uint_1 OpBranch %250 %251 = OpLabel - %261 = OpLoad %_arr_Inner_uint_4_0 %244 None - OpReturnValue %261 + %254 = OpLoad %_arr_Inner_uint_4_0 %244 None + OpReturnValue %254 OpFunctionEnd
diff --git a/test/tint/buffer/storage/static_index/read_f16.wgsl.expected.spvasm b/test/tint/buffer/storage/static_index/read_f16.wgsl.expected.spvasm index a72a9c4..0d1f737 100644 --- a/test/tint/buffer/storage/static_index/read_f16.wgsl.expected.spvasm +++ b/test/tint/buffer/storage/static_index/read_f16.wgsl.expected.spvasm
@@ -571,23 +571,23 @@ OpLoopMerge %353 %351 None OpBranch %350 %350 = OpLabel - %356 = OpUGreaterThanEqual %bool %354 %uint_2 - OpSelectionMerge %357 None - OpBranchConditional %356 %358 %357 - %358 = OpLabel + %357 = OpUGreaterThanEqual %bool %354 %uint_2 + OpSelectionMerge %358 None + OpBranchConditional %357 %359 %358 + %359 = OpLabel OpBranch %353 - %357 = OpLabel - %359 = OpAccessChain %_ptr_Function_v3float %344 %354 - %361 = OpLoad %v3float %359 None - %362 = OpAccessChain %_ptr_Function_v3float %346 %354 - OpStore %362 %361 None + %358 = OpLabel + %360 = OpAccessChain %_ptr_Function_v3float %344 %354 + %362 = OpLoad %v3float %360 None + %363 = OpAccessChain %_ptr_Function_v3float %346 %354 + OpStore %363 %362 None OpBranch %351 %351 = OpLabel %355 = OpIAdd %uint %354 %uint_1 OpBranch %352 %353 = OpLabel - %363 = OpLoad %_arr_v3float_uint_2_0 %346 None - OpReturnValue %363 + %356 = OpLoad %_arr_v3float_uint_2_0 %346 None + OpReturnValue %356 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %_arr_mat4v2half_uint_2_0 None %365 %tint_source_0 = OpFunctionParameter %_arr_mat4v2half_uint_2 @@ -603,23 +603,23 @@ OpLoopMerge %376 %374 None OpBranch %373 %373 = OpLabel - %379 = OpUGreaterThanEqual %bool %377 %uint_2 - OpSelectionMerge %380 None - OpBranchConditional %379 %381 %380 - %381 = OpLabel + %380 = OpUGreaterThanEqual %bool %377 %uint_2 + OpSelectionMerge %381 None + OpBranchConditional %380 %382 %381 + %382 = OpLabel OpBranch %376 - %380 = OpLabel - %382 = OpAccessChain %_ptr_Function_mat4v2half %367 %377 - %384 = OpLoad %mat4v2half %382 None - %385 = OpAccessChain %_ptr_Function_mat4v2half %369 %377 - OpStore %385 %384 None + %381 = OpLabel + %383 = OpAccessChain %_ptr_Function_mat4v2half %367 %377 + %385 = OpLoad %mat4v2half %383 None + %386 = OpAccessChain %_ptr_Function_mat4v2half %369 %377 + OpStore %386 %385 None OpBranch %374 %374 = OpLabel %378 = OpIAdd %uint %377 %uint_1 OpBranch %375 %376 = OpLabel - %386 = OpLoad %_arr_mat4v2half_uint_2_0 %369 None - OpReturnValue %386 + %379 = OpLoad %_arr_mat4v2half_uint_2_0 %369 None + OpReturnValue %379 OpFunctionEnd %tint_convert_explicit_layout_1 = OpFunction %_arr_Inner_uint_4_0 None %388 %tint_source_1 = OpFunctionParameter %_arr_Inner_uint_4 @@ -635,21 +635,21 @@ OpLoopMerge %399 %397 None OpBranch %396 %396 = OpLabel - %402 = OpUGreaterThanEqual %bool %400 %uint_4 - OpSelectionMerge %403 None - OpBranchConditional %402 %404 %403 - %404 = OpLabel + %403 = OpUGreaterThanEqual %bool %400 %uint_4 + OpSelectionMerge %404 None + OpBranchConditional %403 %405 %404 + %405 = OpLabel OpBranch %399 - %403 = OpLabel - %405 = OpAccessChain %_ptr_Function_Inner %390 %400 - %407 = OpLoad %Inner %405 None - %408 = OpAccessChain %_ptr_Function_Inner %392 %400 - OpStore %408 %407 None + %404 = OpLabel + %406 = OpAccessChain %_ptr_Function_Inner %390 %400 + %408 = OpLoad %Inner %406 None + %409 = OpAccessChain %_ptr_Function_Inner %392 %400 + OpStore %409 %408 None OpBranch %397 %397 = OpLabel %401 = OpIAdd %uint %400 %uint_1 OpBranch %398 %399 = OpLabel - %409 = OpLoad %_arr_Inner_uint_4_0 %392 None - OpReturnValue %409 + %402 = OpLoad %_arr_Inner_uint_4_0 %392 None + OpReturnValue %402 OpFunctionEnd
diff --git a/test/tint/buffer/storage/static_index/write.wgsl.expected.spvasm b/test/tint/buffer/storage/static_index/write.wgsl.expected.spvasm index baf4cf8..d6c1af9 100644 --- a/test/tint/buffer/storage/static_index/write.wgsl.expected.spvasm +++ b/test/tint/buffer/storage/static_index/write.wgsl.expected.spvasm
@@ -345,21 +345,21 @@ OpLoopMerge %191 %189 None OpBranch %188 %188 = OpLabel - %194 = OpUGreaterThanEqual %bool %192 %uint_4 - OpSelectionMerge %195 None - OpBranchConditional %194 %196 %195 - %196 = OpLabel + %195 = OpUGreaterThanEqual %bool %192 %uint_4 + OpSelectionMerge %196 None + OpBranchConditional %195 %197 %196 + %197 = OpLabel OpBranch %191 - %195 = OpLabel - %197 = OpAccessChain %_ptr_Function_Inner %182 %192 - %199 = OpLoad %Inner %197 None - %200 = OpAccessChain %_ptr_Function_Inner %184 %192 - OpStore %200 %199 None + %196 = OpLabel + %198 = OpAccessChain %_ptr_Function_Inner %182 %192 + %200 = OpLoad %Inner %198 None + %201 = OpAccessChain %_ptr_Function_Inner %184 %192 + OpStore %201 %200 None OpBranch %189 %189 = OpLabel %193 = OpIAdd %uint %192 %uint_1 OpBranch %190 %191 = OpLabel - %201 = OpLoad %_arr_Inner_uint_4 %184 None - OpReturnValue %201 + %194 = OpLoad %_arr_Inner_uint_4 %184 None + OpReturnValue %194 OpFunctionEnd
diff --git a/test/tint/buffer/storage/static_index/write_f16.wgsl.expected.spvasm b/test/tint/buffer/storage/static_index/write_f16.wgsl.expected.spvasm index 0cde0ae..22f371c 100644 --- a/test/tint/buffer/storage/static_index/write_f16.wgsl.expected.spvasm +++ b/test/tint/buffer/storage/static_index/write_f16.wgsl.expected.spvasm
@@ -598,21 +598,21 @@ OpLoopMerge %331 %329 None OpBranch %328 %328 = OpLabel - %334 = OpUGreaterThanEqual %bool %332 %uint_2 - OpSelectionMerge %335 None - OpBranchConditional %334 %336 %335 - %336 = OpLabel + %335 = OpUGreaterThanEqual %bool %332 %uint_2 + OpSelectionMerge %336 None + OpBranchConditional %335 %337 %336 + %337 = OpLabel OpBranch %331 - %335 = OpLabel - %337 = OpAccessChain %_ptr_Function_mat4v2half %322 %332 - %339 = OpLoad %mat4v2half %337 None - %340 = OpAccessChain %_ptr_Function_mat4v2half %324 %332 - OpStore %340 %339 None + %336 = OpLabel + %338 = OpAccessChain %_ptr_Function_mat4v2half %322 %332 + %340 = OpLoad %mat4v2half %338 None + %341 = OpAccessChain %_ptr_Function_mat4v2half %324 %332 + OpStore %341 %340 None OpBranch %329 %329 = OpLabel %333 = OpIAdd %uint %332 %uint_1 OpBranch %330 %331 = OpLabel - %341 = OpLoad %_arr_mat4v2half_uint_2 %324 None - OpReturnValue %341 + %334 = OpLoad %_arr_mat4v2half_uint_2 %324 None + OpReturnValue %334 OpFunctionEnd
diff --git a/test/tint/buffer/storage/types/array4_f16.wgsl.expected.spvasm b/test/tint/buffer/storage/types/array4_f16.wgsl.expected.spvasm index 5309f9c..b112db7 100644 --- a/test/tint/buffer/storage/types/array4_f16.wgsl.expected.spvasm +++ b/test/tint/buffer/storage/types/array4_f16.wgsl.expected.spvasm
@@ -79,23 +79,23 @@ OpLoopMerge %38 %36 None OpBranch %35 %35 = OpLabel - %41 = OpUGreaterThanEqual %bool %39 %uint_4 - OpSelectionMerge %43 None - OpBranchConditional %41 %44 %43 - %44 = OpLabel + %42 = OpUGreaterThanEqual %bool %39 %uint_4 + OpSelectionMerge %44 None + OpBranchConditional %42 %45 %44 + %45 = OpLabel OpBranch %38 - %43 = OpLabel - %45 = OpAccessChain %_ptr_Function_half %29 %39 - %47 = OpLoad %half %45 None - %48 = OpAccessChain %_ptr_Function_half %31 %39 - OpStore %48 %47 None + %44 = OpLabel + %46 = OpAccessChain %_ptr_Function_half %29 %39 + %48 = OpLoad %half %46 None + %49 = OpAccessChain %_ptr_Function_half %31 %39 + OpStore %49 %48 None OpBranch %36 %36 = OpLabel %40 = OpIAdd %uint %39 %uint_1 OpBranch %37 %38 = OpLabel - %50 = OpLoad %_arr_half_uint_4_0 %31 None - OpReturnValue %50 + %41 = OpLoad %_arr_half_uint_4_0 %31 None + OpReturnValue %41 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %_arr_half_uint_4 None %52 %tint_source_0 = OpFunctionParameter %_arr_half_uint_4_0 @@ -111,21 +111,21 @@ OpLoopMerge %61 %59 None OpBranch %58 %58 = OpLabel - %64 = OpUGreaterThanEqual %bool %62 %uint_4 - OpSelectionMerge %65 None - OpBranchConditional %64 %66 %65 - %66 = OpLabel + %65 = OpUGreaterThanEqual %bool %62 %uint_4 + OpSelectionMerge %66 None + OpBranchConditional %65 %67 %66 + %67 = OpLabel OpBranch %61 - %65 = OpLabel - %67 = OpAccessChain %_ptr_Function_half %54 %62 - %68 = OpLoad %half %67 None - %69 = OpAccessChain %_ptr_Function_half %55 %62 - OpStore %69 %68 None + %66 = OpLabel + %68 = OpAccessChain %_ptr_Function_half %54 %62 + %69 = OpLoad %half %68 None + %70 = OpAccessChain %_ptr_Function_half %55 %62 + OpStore %70 %69 None OpBranch %59 %59 = OpLabel %63 = OpIAdd %uint %62 %uint_1 OpBranch %60 %61 = OpLabel - %70 = OpLoad %_arr_half_uint_4 %55 None - OpReturnValue %70 + %64 = OpLoad %_arr_half_uint_4 %55 None + OpReturnValue %64 OpFunctionEnd
diff --git a/test/tint/buffer/storage/types/array4_f32.wgsl.expected.spvasm b/test/tint/buffer/storage/types/array4_f32.wgsl.expected.spvasm index 8fb0b46..a1cc66c 100644 --- a/test/tint/buffer/storage/types/array4_f32.wgsl.expected.spvasm +++ b/test/tint/buffer/storage/types/array4_f32.wgsl.expected.spvasm
@@ -76,23 +76,23 @@ OpLoopMerge %38 %36 None OpBranch %35 %35 = OpLabel - %41 = OpUGreaterThanEqual %bool %39 %uint_4 - OpSelectionMerge %43 None - OpBranchConditional %41 %44 %43 - %44 = OpLabel + %42 = OpUGreaterThanEqual %bool %39 %uint_4 + OpSelectionMerge %44 None + OpBranchConditional %42 %45 %44 + %45 = OpLabel OpBranch %38 - %43 = OpLabel - %45 = OpAccessChain %_ptr_Function_float %29 %39 - %47 = OpLoad %float %45 None - %48 = OpAccessChain %_ptr_Function_float %31 %39 - OpStore %48 %47 None + %44 = OpLabel + %46 = OpAccessChain %_ptr_Function_float %29 %39 + %48 = OpLoad %float %46 None + %49 = OpAccessChain %_ptr_Function_float %31 %39 + OpStore %49 %48 None OpBranch %36 %36 = OpLabel %40 = OpIAdd %uint %39 %uint_1 OpBranch %37 %38 = OpLabel - %50 = OpLoad %_arr_float_uint_4_0 %31 None - OpReturnValue %50 + %41 = OpLoad %_arr_float_uint_4_0 %31 None + OpReturnValue %41 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %_arr_float_uint_4 None %52 %tint_source_0 = OpFunctionParameter %_arr_float_uint_4_0 @@ -108,21 +108,21 @@ OpLoopMerge %61 %59 None OpBranch %58 %58 = OpLabel - %64 = OpUGreaterThanEqual %bool %62 %uint_4 - OpSelectionMerge %65 None - OpBranchConditional %64 %66 %65 - %66 = OpLabel + %65 = OpUGreaterThanEqual %bool %62 %uint_4 + OpSelectionMerge %66 None + OpBranchConditional %65 %67 %66 + %67 = OpLabel OpBranch %61 - %65 = OpLabel - %67 = OpAccessChain %_ptr_Function_float %54 %62 - %68 = OpLoad %float %67 None - %69 = OpAccessChain %_ptr_Function_float %55 %62 - OpStore %69 %68 None + %66 = OpLabel + %68 = OpAccessChain %_ptr_Function_float %54 %62 + %69 = OpLoad %float %68 None + %70 = OpAccessChain %_ptr_Function_float %55 %62 + OpStore %70 %69 None OpBranch %59 %59 = OpLabel %63 = OpIAdd %uint %62 %uint_1 OpBranch %60 %61 = OpLabel - %70 = OpLoad %_arr_float_uint_4 %55 None - OpReturnValue %70 + %64 = OpLoad %_arr_float_uint_4 %55 None + OpReturnValue %64 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/dynamic_index/read.wgsl.expected.spvasm b/test/tint/buffer/uniform/dynamic_index/read.wgsl.expected.spvasm index 6dcd018..fc93d8c 100644 --- a/test/tint/buffer/uniform/dynamic_index/read.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/dynamic_index/read.wgsl.expected.spvasm
@@ -424,21 +424,21 @@ OpLoopMerge %280 %278 None OpBranch %277 %277 = OpLabel - %283 = OpUGreaterThanEqual %bool %281 %uint_2 - OpSelectionMerge %284 None - OpBranchConditional %283 %285 %284 - %285 = OpLabel + %284 = OpUGreaterThanEqual %bool %281 %uint_2 + OpSelectionMerge %285 None + OpBranchConditional %284 %286 %285 + %286 = OpLabel OpBranch %280 - %284 = OpLabel - %286 = OpAccessChain %_ptr_Function_v3float %271 %281 - %288 = OpLoad %v3float %286 None - %289 = OpAccessChain %_ptr_Function_v3float %273 %281 - OpStore %289 %288 None + %285 = OpLabel + %287 = OpAccessChain %_ptr_Function_v3float %271 %281 + %289 = OpLoad %v3float %287 None + %290 = OpAccessChain %_ptr_Function_v3float %273 %281 + OpStore %290 %289 None OpBranch %278 %278 = OpLabel %282 = OpIAdd %uint %281 %uint_1 OpBranch %279 %280 = OpLabel - %290 = OpLoad %_arr_v3float_uint_2_0 %273 None - OpReturnValue %290 + %283 = OpLoad %_arr_v3float_uint_2_0 %273 None + OpReturnValue %283 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/dynamic_index/read_f16.wgsl.expected.spvasm b/test/tint/buffer/uniform/dynamic_index/read_f16.wgsl.expected.spvasm index fdfdbca..e9bfc83 100644 --- a/test/tint/buffer/uniform/dynamic_index/read_f16.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/dynamic_index/read_f16.wgsl.expected.spvasm
@@ -371,10 +371,10 @@ %_arr_mat4v2half_uint_2 = OpTypeArray %mat4v2half %uint_2 %_ptr_Function__arr_mat4v2half_uint_2 = OpTypePointer Function %_arr_mat4v2half_uint_2 %336 = OpConstantNull %_arr_mat4v2half_uint_2 +%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int %bool = OpTypeBool %_ptr_Function_mat4v2half = OpTypePointer Function %mat4v2half %_ptr_Function_mat4x2_f16_std140 = OpTypePointer Function %mat4x2_f16_std140 -%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int %463 = OpTypeFunction %int %float %float_n2_14748365e_09 = OpConstant %float -2.14748365e+09 %int_n2147483648 = OpConstant %int -2147483648 @@ -591,128 +591,128 @@ OpLoopMerge %341 %339 None OpBranch %338 %338 = OpLabel - %344 = OpUGreaterThanEqual %bool %342 %uint_2 - OpSelectionMerge %346 None - OpBranchConditional %344 %347 %346 - %347 = OpLabel + %448 = OpUGreaterThanEqual %bool %342 %uint_2 + OpSelectionMerge %450 None + OpBranchConditional %448 %451 %450 + %451 = OpLabel OpBranch %341 - %346 = OpLabel - %348 = OpAccessChain %_ptr_Function_mat4v2half %333 %342 - %350 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %331 %342 - %352 = OpLoad %mat4x2_f16_std140 %350 None - %353 = OpCompositeExtract %v2half %352 0 - %354 = OpCompositeExtract %v2half %352 1 - %355 = OpCompositeExtract %v2half %352 2 - %356 = OpCompositeExtract %v2half %352 3 - %357 = OpCompositeConstruct %mat4v2half %353 %354 %355 %356 - OpStore %348 %357 None + %450 = OpLabel + %452 = OpAccessChain %_ptr_Function_mat4v2half %333 %342 + %454 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %331 %342 + %456 = OpLoad %mat4x2_f16_std140 %454 None + %457 = OpCompositeExtract %v2half %456 0 + %458 = OpCompositeExtract %v2half %456 1 + %459 = OpCompositeExtract %v2half %456 2 + %460 = OpCompositeExtract %v2half %456 3 + %461 = OpCompositeConstruct %mat4v2half %457 %458 %459 %460 + OpStore %452 %461 None OpBranch %339 %339 = OpLabel %343 = OpIAdd %uint %342 %uint_1 OpBranch %340 %341 = OpLabel %arr2_mat4x2_f16 = OpLoad %_arr_mat4v2half_uint_2 %333 None - %359 = OpFunctionCall %int %tint_f32_to_i32 %scalar_f32 - %361 = OpIAdd %int %359 %scalar_i32 - %362 = OpBitcast %int %scalar_u32 - %363 = OpIAdd %int %361 %362 - %364 = OpFunctionCall %int %tint_f16_to_i32 %scalar_f16 - %366 = OpIAdd %int %363 %364 - %367 = OpCompositeExtract %float %vec2_f32 0 - %368 = OpFunctionCall %int %tint_f32_to_i32 %367 - %369 = OpIAdd %int %366 %368 - %370 = OpCompositeExtract %int %vec2_i32 0 - %371 = OpIAdd %int %369 %370 - %372 = OpCompositeExtract %uint %vec2_u32 0 - %373 = OpBitcast %int %372 + %345 = OpFunctionCall %int %tint_f32_to_i32 %scalar_f32 + %347 = OpIAdd %int %345 %scalar_i32 + %348 = OpBitcast %int %scalar_u32 + %349 = OpIAdd %int %347 %348 + %350 = OpFunctionCall %int %tint_f16_to_i32 %scalar_f16 + %352 = OpIAdd %int %349 %350 + %353 = OpCompositeExtract %float %vec2_f32 0 + %354 = OpFunctionCall %int %tint_f32_to_i32 %353 + %355 = OpIAdd %int %352 %354 + %356 = OpCompositeExtract %int %vec2_i32 0 + %357 = OpIAdd %int %355 %356 + %358 = OpCompositeExtract %uint %vec2_u32 0 + %359 = OpBitcast %int %358 + %360 = OpIAdd %int %357 %359 + %361 = OpCompositeExtract %half %vec2_f16 0 + %362 = OpFunctionCall %int %tint_f16_to_i32 %361 + %363 = OpIAdd %int %360 %362 + %364 = OpCompositeExtract %float %vec3_f32 1 + %365 = OpFunctionCall %int %tint_f32_to_i32 %364 + %366 = OpIAdd %int %363 %365 + %367 = OpCompositeExtract %int %vec3_i32 1 + %368 = OpIAdd %int %366 %367 + %369 = OpCompositeExtract %uint %vec3_u32 1 + %370 = OpBitcast %int %369 + %371 = OpIAdd %int %368 %370 + %372 = OpCompositeExtract %half %vec3_f16 1 + %373 = OpFunctionCall %int %tint_f16_to_i32 %372 %374 = OpIAdd %int %371 %373 - %375 = OpCompositeExtract %half %vec2_f16 0 - %376 = OpFunctionCall %int %tint_f16_to_i32 %375 + %375 = OpCompositeExtract %float %vec4_f32 2 + %376 = OpFunctionCall %int %tint_f32_to_i32 %375 %377 = OpIAdd %int %374 %376 - %378 = OpCompositeExtract %float %vec3_f32 1 - %379 = OpFunctionCall %int %tint_f32_to_i32 %378 - %380 = OpIAdd %int %377 %379 - %381 = OpCompositeExtract %int %vec3_i32 1 - %382 = OpIAdd %int %380 %381 - %383 = OpCompositeExtract %uint %vec3_u32 1 - %384 = OpBitcast %int %383 + %378 = OpCompositeExtract %int %vec4_i32 2 + %379 = OpIAdd %int %377 %378 + %380 = OpCompositeExtract %uint %vec4_u32 2 + %381 = OpBitcast %int %380 + %382 = OpIAdd %int %379 %381 + %383 = OpCompositeExtract %half %vec4_f16 2 + %384 = OpFunctionCall %int %tint_f16_to_i32 %383 %385 = OpIAdd %int %382 %384 - %386 = OpCompositeExtract %half %vec3_f16 1 - %387 = OpFunctionCall %int %tint_f16_to_i32 %386 + %386 = OpCompositeExtract %float %mat2x2_f32 0 0 + %387 = OpFunctionCall %int %tint_f32_to_i32 %386 %388 = OpIAdd %int %385 %387 - %389 = OpCompositeExtract %float %vec4_f32 2 + %389 = OpCompositeExtract %float %mat2x3_f32 0 0 %390 = OpFunctionCall %int %tint_f32_to_i32 %389 %391 = OpIAdd %int %388 %390 - %392 = OpCompositeExtract %int %vec4_i32 2 - %393 = OpIAdd %int %391 %392 - %394 = OpCompositeExtract %uint %vec4_u32 2 - %395 = OpBitcast %int %394 - %396 = OpIAdd %int %393 %395 - %397 = OpCompositeExtract %half %vec4_f16 2 - %398 = OpFunctionCall %int %tint_f16_to_i32 %397 - %399 = OpIAdd %int %396 %398 - %400 = OpCompositeExtract %float %mat2x2_f32 0 0 - %401 = OpFunctionCall %int %tint_f32_to_i32 %400 - %402 = OpIAdd %int %399 %401 - %403 = OpCompositeExtract %float %mat2x3_f32 0 0 - %404 = OpFunctionCall %int %tint_f32_to_i32 %403 - %405 = OpIAdd %int %402 %404 - %406 = OpCompositeExtract %float %mat2x4_f32 0 0 - %407 = OpFunctionCall %int %tint_f32_to_i32 %406 - %408 = OpIAdd %int %405 %407 - %409 = OpCompositeExtract %float %mat3x2_f32 0 0 - %410 = OpFunctionCall %int %tint_f32_to_i32 %409 - %411 = OpIAdd %int %408 %410 - %412 = OpCompositeExtract %float %mat3x3_f32 0 0 - %413 = OpFunctionCall %int %tint_f32_to_i32 %412 - %414 = OpIAdd %int %411 %413 - %415 = OpCompositeExtract %float %mat3x4_f32 0 0 - %416 = OpFunctionCall %int %tint_f32_to_i32 %415 - %417 = OpIAdd %int %414 %416 - %418 = OpCompositeExtract %float %mat4x2_f32 0 0 - %419 = OpFunctionCall %int %tint_f32_to_i32 %418 - %420 = OpIAdd %int %417 %419 - %421 = OpCompositeExtract %float %mat4x3_f32 0 0 - %422 = OpFunctionCall %int %tint_f32_to_i32 %421 - %423 = OpIAdd %int %420 %422 - %424 = OpCompositeExtract %float %mat4x4_f32 0 0 - %425 = OpFunctionCall %int %tint_f32_to_i32 %424 - %426 = OpIAdd %int %423 %425 - %427 = OpCompositeExtract %half %mat2x2_f16 0 0 - %428 = OpFunctionCall %int %tint_f16_to_i32 %427 - %429 = OpIAdd %int %426 %428 - %430 = OpCompositeExtract %half %mat2x3_f16 0 0 - %431 = OpFunctionCall %int %tint_f16_to_i32 %430 - %432 = OpIAdd %int %429 %431 - %433 = OpCompositeExtract %half %mat2x4_f16 0 0 - %434 = OpFunctionCall %int %tint_f16_to_i32 %433 - %435 = OpIAdd %int %432 %434 - %436 = OpCompositeExtract %half %mat3x2_f16 0 0 - %437 = OpFunctionCall %int %tint_f16_to_i32 %436 - %438 = OpIAdd %int %435 %437 - %439 = OpCompositeExtract %half %mat3x3_f16 0 0 - %440 = OpFunctionCall %int %tint_f16_to_i32 %439 - %441 = OpIAdd %int %438 %440 - %442 = OpCompositeExtract %half %mat3x4_f16 0 0 - %443 = OpFunctionCall %int %tint_f16_to_i32 %442 - %444 = OpIAdd %int %441 %443 - %445 = OpCompositeExtract %half %mat4x2_f16 0 0 - %446 = OpFunctionCall %int %tint_f16_to_i32 %445 - %447 = OpIAdd %int %444 %446 - %448 = OpCompositeExtract %half %mat4x3_f16 0 0 - %449 = OpFunctionCall %int %tint_f16_to_i32 %448 - %450 = OpIAdd %int %447 %449 - %451 = OpCompositeExtract %half %mat4x4_f16 0 0 - %452 = OpFunctionCall %int %tint_f16_to_i32 %451 - %453 = OpIAdd %int %450 %452 - %454 = OpCompositeExtract %float %arr2_vec3_f32 0 0 - %455 = OpFunctionCall %int %tint_f32_to_i32 %454 - %456 = OpIAdd %int %453 %455 - %457 = OpCompositeExtract %half %arr2_mat4x2_f16 0 0 0 - %458 = OpFunctionCall %int %tint_f16_to_i32 %457 - %459 = OpIAdd %int %456 %458 - %460 = OpAccessChain %_ptr_StorageBuffer_int %31 %uint_0 - OpStore %460 %459 None + %392 = OpCompositeExtract %float %mat2x4_f32 0 0 + %393 = OpFunctionCall %int %tint_f32_to_i32 %392 + %394 = OpIAdd %int %391 %393 + %395 = OpCompositeExtract %float %mat3x2_f32 0 0 + %396 = OpFunctionCall %int %tint_f32_to_i32 %395 + %397 = OpIAdd %int %394 %396 + %398 = OpCompositeExtract %float %mat3x3_f32 0 0 + %399 = OpFunctionCall %int %tint_f32_to_i32 %398 + %400 = OpIAdd %int %397 %399 + %401 = OpCompositeExtract %float %mat3x4_f32 0 0 + %402 = OpFunctionCall %int %tint_f32_to_i32 %401 + %403 = OpIAdd %int %400 %402 + %404 = OpCompositeExtract %float %mat4x2_f32 0 0 + %405 = OpFunctionCall %int %tint_f32_to_i32 %404 + %406 = OpIAdd %int %403 %405 + %407 = OpCompositeExtract %float %mat4x3_f32 0 0 + %408 = OpFunctionCall %int %tint_f32_to_i32 %407 + %409 = OpIAdd %int %406 %408 + %410 = OpCompositeExtract %float %mat4x4_f32 0 0 + %411 = OpFunctionCall %int %tint_f32_to_i32 %410 + %412 = OpIAdd %int %409 %411 + %413 = OpCompositeExtract %half %mat2x2_f16 0 0 + %414 = OpFunctionCall %int %tint_f16_to_i32 %413 + %415 = OpIAdd %int %412 %414 + %416 = OpCompositeExtract %half %mat2x3_f16 0 0 + %417 = OpFunctionCall %int %tint_f16_to_i32 %416 + %418 = OpIAdd %int %415 %417 + %419 = OpCompositeExtract %half %mat2x4_f16 0 0 + %420 = OpFunctionCall %int %tint_f16_to_i32 %419 + %421 = OpIAdd %int %418 %420 + %422 = OpCompositeExtract %half %mat3x2_f16 0 0 + %423 = OpFunctionCall %int %tint_f16_to_i32 %422 + %424 = OpIAdd %int %421 %423 + %425 = OpCompositeExtract %half %mat3x3_f16 0 0 + %426 = OpFunctionCall %int %tint_f16_to_i32 %425 + %427 = OpIAdd %int %424 %426 + %428 = OpCompositeExtract %half %mat3x4_f16 0 0 + %429 = OpFunctionCall %int %tint_f16_to_i32 %428 + %430 = OpIAdd %int %427 %429 + %431 = OpCompositeExtract %half %mat4x2_f16 0 0 + %432 = OpFunctionCall %int %tint_f16_to_i32 %431 + %433 = OpIAdd %int %430 %432 + %434 = OpCompositeExtract %half %mat4x3_f16 0 0 + %435 = OpFunctionCall %int %tint_f16_to_i32 %434 + %436 = OpIAdd %int %433 %435 + %437 = OpCompositeExtract %half %mat4x4_f16 0 0 + %438 = OpFunctionCall %int %tint_f16_to_i32 %437 + %439 = OpIAdd %int %436 %438 + %440 = OpCompositeExtract %float %arr2_vec3_f32 0 0 + %441 = OpFunctionCall %int %tint_f32_to_i32 %440 + %442 = OpIAdd %int %439 %441 + %443 = OpCompositeExtract %half %arr2_mat4x2_f16 0 0 0 + %444 = OpFunctionCall %int %tint_f16_to_i32 %443 + %445 = OpIAdd %int %442 %444 + %446 = OpAccessChain %_ptr_StorageBuffer_int %31 %uint_0 + OpStore %446 %445 None OpReturn OpFunctionEnd %tint_f32_to_i32 = OpFunction %int None %463 @@ -755,23 +755,23 @@ OpLoopMerge %501 %499 None OpBranch %498 %498 = OpLabel - %504 = OpUGreaterThanEqual %bool %502 %uint_2 - OpSelectionMerge %505 None - OpBranchConditional %504 %506 %505 - %506 = OpLabel + %505 = OpUGreaterThanEqual %bool %502 %uint_2 + OpSelectionMerge %506 None + OpBranchConditional %505 %507 %506 + %507 = OpLabel OpBranch %501 - %505 = OpLabel - %507 = OpAccessChain %_ptr_Function_v3float %492 %502 - %509 = OpLoad %v3float %507 None - %510 = OpAccessChain %_ptr_Function_v3float %494 %502 - OpStore %510 %509 None + %506 = OpLabel + %508 = OpAccessChain %_ptr_Function_v3float %492 %502 + %510 = OpLoad %v3float %508 None + %511 = OpAccessChain %_ptr_Function_v3float %494 %502 + OpStore %511 %510 None OpBranch %499 %499 = OpLabel %503 = OpIAdd %uint %502 %uint_1 OpBranch %500 %501 = OpLabel - %511 = OpLoad %_arr_v3float_uint_2_0 %494 None - OpReturnValue %511 + %504 = OpLoad %_arr_v3float_uint_2_0 %494 None + OpReturnValue %504 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %_arr_mat4x2_f16_std140_uint_2_0 None %513 %tint_source_0 = OpFunctionParameter %_arr_mat4x2_f16_std140_uint_2 @@ -787,21 +787,21 @@ OpLoopMerge %523 %521 None OpBranch %520 %520 = OpLabel - %526 = OpUGreaterThanEqual %bool %524 %uint_2 - OpSelectionMerge %527 None - OpBranchConditional %526 %528 %527 - %528 = OpLabel + %527 = OpUGreaterThanEqual %bool %524 %uint_2 + OpSelectionMerge %528 None + OpBranchConditional %527 %529 %528 + %529 = OpLabel OpBranch %523 - %527 = OpLabel - %529 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %515 %524 - %530 = OpLoad %mat4x2_f16_std140 %529 None - %531 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %517 %524 - OpStore %531 %530 None + %528 = OpLabel + %530 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %515 %524 + %531 = OpLoad %mat4x2_f16_std140 %530 None + %532 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %517 %524 + OpStore %532 %531 None OpBranch %521 %521 = OpLabel %525 = OpIAdd %uint %524 %uint_1 OpBranch %522 %523 = OpLabel - %532 = OpLoad %_arr_mat4x2_f16_std140_uint_2_0 %517 None - OpReturnValue %532 + %526 = OpLoad %_arr_mat4x2_f16_std140_uint_2_0 %517 None + OpReturnValue %526 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/static_index/read.wgsl.expected.spvasm b/test/tint/buffer/uniform/static_index/read.wgsl.expected.spvasm index bc14567..9d51d05 100644 --- a/test/tint/buffer/uniform/static_index/read.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/static_index/read.wgsl.expected.spvasm
@@ -416,23 +416,23 @@ OpLoopMerge %264 %262 None OpBranch %261 %261 = OpLabel - %267 = OpUGreaterThanEqual %bool %265 %uint_2 - OpSelectionMerge %268 None - OpBranchConditional %267 %269 %268 - %269 = OpLabel + %268 = OpUGreaterThanEqual %bool %265 %uint_2 + OpSelectionMerge %269 None + OpBranchConditional %268 %270 %269 + %270 = OpLabel OpBranch %264 - %268 = OpLabel - %270 = OpAccessChain %_ptr_Function_v3float %255 %265 - %272 = OpLoad %v3float %270 None - %273 = OpAccessChain %_ptr_Function_v3float %257 %265 - OpStore %273 %272 None + %269 = OpLabel + %271 = OpAccessChain %_ptr_Function_v3float %255 %265 + %273 = OpLoad %v3float %271 None + %274 = OpAccessChain %_ptr_Function_v3float %257 %265 + OpStore %274 %273 None OpBranch %262 %262 = OpLabel %266 = OpIAdd %uint %265 %uint_1 OpBranch %263 %264 = OpLabel - %274 = OpLoad %_arr_v3float_uint_2_0 %257 None - OpReturnValue %274 + %267 = OpLoad %_arr_v3float_uint_2_0 %257 None + OpReturnValue %267 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %_arr_Inner_uint_4_0 None %276 %tint_source_0 = OpFunctionParameter %_arr_Inner_uint_4 @@ -448,21 +448,21 @@ OpLoopMerge %287 %285 None OpBranch %284 %284 = OpLabel - %290 = OpUGreaterThanEqual %bool %288 %uint_4 - OpSelectionMerge %291 None - OpBranchConditional %290 %292 %291 - %292 = OpLabel + %291 = OpUGreaterThanEqual %bool %288 %uint_4 + OpSelectionMerge %292 None + OpBranchConditional %291 %293 %292 + %293 = OpLabel OpBranch %287 - %291 = OpLabel - %293 = OpAccessChain %_ptr_Function_Inner %278 %288 - %295 = OpLoad %Inner %293 None - %296 = OpAccessChain %_ptr_Function_Inner %280 %288 - OpStore %296 %295 None + %292 = OpLabel + %294 = OpAccessChain %_ptr_Function_Inner %278 %288 + %296 = OpLoad %Inner %294 None + %297 = OpAccessChain %_ptr_Function_Inner %280 %288 + OpStore %297 %296 None OpBranch %285 %285 = OpLabel %289 = OpIAdd %uint %288 %uint_1 OpBranch %286 %287 = OpLabel - %297 = OpLoad %_arr_Inner_uint_4_0 %280 None - OpReturnValue %297 + %290 = OpLoad %_arr_Inner_uint_4_0 %280 None + OpReturnValue %290 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/static_index/read_f16.wgsl.expected.spvasm b/test/tint/buffer/uniform/static_index/read_f16.wgsl.expected.spvasm index 2770477..ec2fd0c 100644 --- a/test/tint/buffer/uniform/static_index/read_f16.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/static_index/read_f16.wgsl.expected.spvasm
@@ -376,15 +376,15 @@ %_arr_mat4v2half_uint_2 = OpTypeArray %mat4v2half %uint_2 %_ptr_Function__arr_mat4v2half_uint_2 = OpTypePointer Function %_arr_mat4v2half_uint_2 %296 = OpConstantNull %_arr_mat4v2half_uint_2 - %bool = OpTypeBool -%_ptr_Function_mat4v2half = OpTypePointer Function %mat4v2half -%_ptr_Function_mat4x2_f16_std140 = OpTypePointer Function %mat4x2_f16_std140 %_ptr_Uniform_Inner = OpTypePointer Uniform %Inner %uint_66 = OpConstant %uint 66 %_ptr_Uniform__arr_Inner_uint_4 = OpTypePointer Uniform %_arr_Inner_uint_4 %uint_67 = OpConstant %uint 67 %_arr_Inner_uint_4_0 = OpTypeArray %Inner %uint_4 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %bool = OpTypeBool +%_ptr_Function_mat4v2half = OpTypePointer Function %mat4v2half +%_ptr_Function_mat4x2_f16_std140 = OpTypePointer Function %mat4x2_f16_std140 %438 = OpTypeFunction %int %float %float_n2_14748365e_09 = OpConstant %float -2.14748365e+09 %int_n2147483648 = OpConstant %int -2147483648 @@ -568,137 +568,137 @@ OpLoopMerge %301 %299 None OpBranch %298 %298 = OpLabel - %304 = OpUGreaterThanEqual %bool %302 %uint_2 - OpSelectionMerge %306 None - OpBranchConditional %304 %307 %306 - %307 = OpLabel + %423 = OpUGreaterThanEqual %bool %302 %uint_2 + OpSelectionMerge %425 None + OpBranchConditional %423 %426 %425 + %426 = OpLabel OpBranch %301 - %306 = OpLabel - %308 = OpAccessChain %_ptr_Function_mat4v2half %293 %302 - %310 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %291 %302 - %312 = OpLoad %mat4x2_f16_std140 %310 None - %313 = OpCompositeExtract %v2half %312 0 - %314 = OpCompositeExtract %v2half %312 1 - %315 = OpCompositeExtract %v2half %312 2 - %316 = OpCompositeExtract %v2half %312 3 - %317 = OpCompositeConstruct %mat4v2half %313 %314 %315 %316 - OpStore %308 %317 None + %425 = OpLabel + %427 = OpAccessChain %_ptr_Function_mat4v2half %293 %302 + %429 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %291 %302 + %431 = OpLoad %mat4x2_f16_std140 %429 None + %432 = OpCompositeExtract %v2half %431 0 + %433 = OpCompositeExtract %v2half %431 1 + %434 = OpCompositeExtract %v2half %431 2 + %435 = OpCompositeExtract %v2half %431 3 + %436 = OpCompositeConstruct %mat4v2half %432 %433 %434 %435 + OpStore %427 %436 None OpBranch %299 %299 = OpLabel %303 = OpIAdd %uint %302 %uint_1 OpBranch %300 %301 = OpLabel %arr2_mat4x2_f16 = OpLoad %_arr_mat4v2half_uint_2 %293 None - %319 = OpAccessChain %_ptr_Uniform_Inner %1 %uint_0 %uint_66 -%struct_inner = OpLoad %Inner %319 None - %323 = OpAccessChain %_ptr_Uniform__arr_Inner_uint_4 %1 %uint_0 %uint_67 - %326 = OpLoad %_arr_Inner_uint_4 %323 None -%array_struct_inner = OpFunctionCall %_arr_Inner_uint_4_0 %tint_convert_explicit_layout_1 %326 - %330 = OpFunctionCall %int %tint_f32_to_i32 %scalar_f32 - %332 = OpIAdd %int %330 %scalar_i32 - %333 = OpBitcast %int %scalar_u32 - %334 = OpIAdd %int %332 %333 - %335 = OpFunctionCall %int %tint_f16_to_i32 %scalar_f16 - %337 = OpIAdd %int %334 %335 - %338 = OpCompositeExtract %float %vec2_f32 0 - %339 = OpFunctionCall %int %tint_f32_to_i32 %338 - %340 = OpIAdd %int %337 %339 - %341 = OpCompositeExtract %int %vec2_i32 0 - %342 = OpIAdd %int %340 %341 - %343 = OpCompositeExtract %uint %vec2_u32 0 - %344 = OpBitcast %int %343 + %305 = OpAccessChain %_ptr_Uniform_Inner %1 %uint_0 %uint_66 +%struct_inner = OpLoad %Inner %305 None + %309 = OpAccessChain %_ptr_Uniform__arr_Inner_uint_4 %1 %uint_0 %uint_67 + %312 = OpLoad %_arr_Inner_uint_4 %309 None +%array_struct_inner = OpFunctionCall %_arr_Inner_uint_4_0 %tint_convert_explicit_layout_1 %312 + %316 = OpFunctionCall %int %tint_f32_to_i32 %scalar_f32 + %318 = OpIAdd %int %316 %scalar_i32 + %319 = OpBitcast %int %scalar_u32 + %320 = OpIAdd %int %318 %319 + %321 = OpFunctionCall %int %tint_f16_to_i32 %scalar_f16 + %323 = OpIAdd %int %320 %321 + %324 = OpCompositeExtract %float %vec2_f32 0 + %325 = OpFunctionCall %int %tint_f32_to_i32 %324 + %326 = OpIAdd %int %323 %325 + %327 = OpCompositeExtract %int %vec2_i32 0 + %328 = OpIAdd %int %326 %327 + %329 = OpCompositeExtract %uint %vec2_u32 0 + %330 = OpBitcast %int %329 + %331 = OpIAdd %int %328 %330 + %332 = OpCompositeExtract %half %vec2_f16 0 + %333 = OpFunctionCall %int %tint_f16_to_i32 %332 + %334 = OpIAdd %int %331 %333 + %335 = OpCompositeExtract %float %vec3_f32 1 + %336 = OpFunctionCall %int %tint_f32_to_i32 %335 + %337 = OpIAdd %int %334 %336 + %338 = OpCompositeExtract %int %vec3_i32 1 + %339 = OpIAdd %int %337 %338 + %340 = OpCompositeExtract %uint %vec3_u32 1 + %341 = OpBitcast %int %340 + %342 = OpIAdd %int %339 %341 + %343 = OpCompositeExtract %half %vec3_f16 1 + %344 = OpFunctionCall %int %tint_f16_to_i32 %343 %345 = OpIAdd %int %342 %344 - %346 = OpCompositeExtract %half %vec2_f16 0 - %347 = OpFunctionCall %int %tint_f16_to_i32 %346 + %346 = OpCompositeExtract %float %vec4_f32 2 + %347 = OpFunctionCall %int %tint_f32_to_i32 %346 %348 = OpIAdd %int %345 %347 - %349 = OpCompositeExtract %float %vec3_f32 1 - %350 = OpFunctionCall %int %tint_f32_to_i32 %349 - %351 = OpIAdd %int %348 %350 - %352 = OpCompositeExtract %int %vec3_i32 1 - %353 = OpIAdd %int %351 %352 - %354 = OpCompositeExtract %uint %vec3_u32 1 - %355 = OpBitcast %int %354 + %349 = OpCompositeExtract %int %vec4_i32 2 + %350 = OpIAdd %int %348 %349 + %351 = OpCompositeExtract %uint %vec4_u32 2 + %352 = OpBitcast %int %351 + %353 = OpIAdd %int %350 %352 + %354 = OpCompositeExtract %half %vec4_f16 2 + %355 = OpFunctionCall %int %tint_f16_to_i32 %354 %356 = OpIAdd %int %353 %355 - %357 = OpCompositeExtract %half %vec3_f16 1 - %358 = OpFunctionCall %int %tint_f16_to_i32 %357 + %357 = OpCompositeExtract %float %mat2x2_f32 0 0 + %358 = OpFunctionCall %int %tint_f32_to_i32 %357 %359 = OpIAdd %int %356 %358 - %360 = OpCompositeExtract %float %vec4_f32 2 + %360 = OpCompositeExtract %float %mat2x3_f32 0 0 %361 = OpFunctionCall %int %tint_f32_to_i32 %360 %362 = OpIAdd %int %359 %361 - %363 = OpCompositeExtract %int %vec4_i32 2 - %364 = OpIAdd %int %362 %363 - %365 = OpCompositeExtract %uint %vec4_u32 2 - %366 = OpBitcast %int %365 - %367 = OpIAdd %int %364 %366 - %368 = OpCompositeExtract %half %vec4_f16 2 - %369 = OpFunctionCall %int %tint_f16_to_i32 %368 - %370 = OpIAdd %int %367 %369 - %371 = OpCompositeExtract %float %mat2x2_f32 0 0 - %372 = OpFunctionCall %int %tint_f32_to_i32 %371 - %373 = OpIAdd %int %370 %372 - %374 = OpCompositeExtract %float %mat2x3_f32 0 0 - %375 = OpFunctionCall %int %tint_f32_to_i32 %374 - %376 = OpIAdd %int %373 %375 - %377 = OpCompositeExtract %float %mat2x4_f32 0 0 - %378 = OpFunctionCall %int %tint_f32_to_i32 %377 - %379 = OpIAdd %int %376 %378 - %380 = OpCompositeExtract %float %mat3x2_f32 0 0 - %381 = OpFunctionCall %int %tint_f32_to_i32 %380 - %382 = OpIAdd %int %379 %381 - %383 = OpCompositeExtract %float %mat3x3_f32 0 0 - %384 = OpFunctionCall %int %tint_f32_to_i32 %383 - %385 = OpIAdd %int %382 %384 - %386 = OpCompositeExtract %float %mat3x4_f32 0 0 - %387 = OpFunctionCall %int %tint_f32_to_i32 %386 - %388 = OpIAdd %int %385 %387 - %389 = OpCompositeExtract %float %mat4x2_f32 0 0 - %390 = OpFunctionCall %int %tint_f32_to_i32 %389 - %391 = OpIAdd %int %388 %390 - %392 = OpCompositeExtract %float %mat4x3_f32 0 0 - %393 = OpFunctionCall %int %tint_f32_to_i32 %392 - %394 = OpIAdd %int %391 %393 - %395 = OpCompositeExtract %float %mat4x4_f32 0 0 - %396 = OpFunctionCall %int %tint_f32_to_i32 %395 - %397 = OpIAdd %int %394 %396 - %398 = OpCompositeExtract %half %mat2x2_f16 0 0 - %399 = OpFunctionCall %int %tint_f16_to_i32 %398 - %400 = OpIAdd %int %397 %399 - %401 = OpCompositeExtract %half %mat2x3_f16 0 0 - %402 = OpFunctionCall %int %tint_f16_to_i32 %401 - %403 = OpIAdd %int %400 %402 - %404 = OpCompositeExtract %half %mat2x4_f16 0 0 - %405 = OpFunctionCall %int %tint_f16_to_i32 %404 - %406 = OpIAdd %int %403 %405 - %407 = OpCompositeExtract %half %mat3x2_f16 0 0 - %408 = OpFunctionCall %int %tint_f16_to_i32 %407 - %409 = OpIAdd %int %406 %408 - %410 = OpCompositeExtract %half %mat3x3_f16 0 0 - %411 = OpFunctionCall %int %tint_f16_to_i32 %410 - %412 = OpIAdd %int %409 %411 - %413 = OpCompositeExtract %half %mat3x4_f16 0 0 - %414 = OpFunctionCall %int %tint_f16_to_i32 %413 - %415 = OpIAdd %int %412 %414 - %416 = OpCompositeExtract %half %mat4x2_f16 0 0 - %417 = OpFunctionCall %int %tint_f16_to_i32 %416 - %418 = OpIAdd %int %415 %417 - %419 = OpCompositeExtract %half %mat4x3_f16 0 0 - %420 = OpFunctionCall %int %tint_f16_to_i32 %419 - %421 = OpIAdd %int %418 %420 - %422 = OpCompositeExtract %half %mat4x4_f16 0 0 - %423 = OpFunctionCall %int %tint_f16_to_i32 %422 - %424 = OpIAdd %int %421 %423 - %425 = OpCompositeExtract %float %arr2_vec3_f32 0 0 - %426 = OpFunctionCall %int %tint_f32_to_i32 %425 - %427 = OpIAdd %int %424 %426 - %428 = OpCompositeExtract %half %arr2_mat4x2_f16 0 0 0 - %429 = OpFunctionCall %int %tint_f16_to_i32 %428 - %430 = OpIAdd %int %427 %429 - %431 = OpCompositeExtract %int %struct_inner 0 - %432 = OpIAdd %int %430 %431 - %433 = OpCompositeExtract %int %array_struct_inner 0 0 - %434 = OpIAdd %int %432 %433 - %435 = OpAccessChain %_ptr_StorageBuffer_int %31 %uint_0 - OpStore %435 %434 None + %363 = OpCompositeExtract %float %mat2x4_f32 0 0 + %364 = OpFunctionCall %int %tint_f32_to_i32 %363 + %365 = OpIAdd %int %362 %364 + %366 = OpCompositeExtract %float %mat3x2_f32 0 0 + %367 = OpFunctionCall %int %tint_f32_to_i32 %366 + %368 = OpIAdd %int %365 %367 + %369 = OpCompositeExtract %float %mat3x3_f32 0 0 + %370 = OpFunctionCall %int %tint_f32_to_i32 %369 + %371 = OpIAdd %int %368 %370 + %372 = OpCompositeExtract %float %mat3x4_f32 0 0 + %373 = OpFunctionCall %int %tint_f32_to_i32 %372 + %374 = OpIAdd %int %371 %373 + %375 = OpCompositeExtract %float %mat4x2_f32 0 0 + %376 = OpFunctionCall %int %tint_f32_to_i32 %375 + %377 = OpIAdd %int %374 %376 + %378 = OpCompositeExtract %float %mat4x3_f32 0 0 + %379 = OpFunctionCall %int %tint_f32_to_i32 %378 + %380 = OpIAdd %int %377 %379 + %381 = OpCompositeExtract %float %mat4x4_f32 0 0 + %382 = OpFunctionCall %int %tint_f32_to_i32 %381 + %383 = OpIAdd %int %380 %382 + %384 = OpCompositeExtract %half %mat2x2_f16 0 0 + %385 = OpFunctionCall %int %tint_f16_to_i32 %384 + %386 = OpIAdd %int %383 %385 + %387 = OpCompositeExtract %half %mat2x3_f16 0 0 + %388 = OpFunctionCall %int %tint_f16_to_i32 %387 + %389 = OpIAdd %int %386 %388 + %390 = OpCompositeExtract %half %mat2x4_f16 0 0 + %391 = OpFunctionCall %int %tint_f16_to_i32 %390 + %392 = OpIAdd %int %389 %391 + %393 = OpCompositeExtract %half %mat3x2_f16 0 0 + %394 = OpFunctionCall %int %tint_f16_to_i32 %393 + %395 = OpIAdd %int %392 %394 + %396 = OpCompositeExtract %half %mat3x3_f16 0 0 + %397 = OpFunctionCall %int %tint_f16_to_i32 %396 + %398 = OpIAdd %int %395 %397 + %399 = OpCompositeExtract %half %mat3x4_f16 0 0 + %400 = OpFunctionCall %int %tint_f16_to_i32 %399 + %401 = OpIAdd %int %398 %400 + %402 = OpCompositeExtract %half %mat4x2_f16 0 0 + %403 = OpFunctionCall %int %tint_f16_to_i32 %402 + %404 = OpIAdd %int %401 %403 + %405 = OpCompositeExtract %half %mat4x3_f16 0 0 + %406 = OpFunctionCall %int %tint_f16_to_i32 %405 + %407 = OpIAdd %int %404 %406 + %408 = OpCompositeExtract %half %mat4x4_f16 0 0 + %409 = OpFunctionCall %int %tint_f16_to_i32 %408 + %410 = OpIAdd %int %407 %409 + %411 = OpCompositeExtract %float %arr2_vec3_f32 0 0 + %412 = OpFunctionCall %int %tint_f32_to_i32 %411 + %413 = OpIAdd %int %410 %412 + %414 = OpCompositeExtract %half %arr2_mat4x2_f16 0 0 0 + %415 = OpFunctionCall %int %tint_f16_to_i32 %414 + %416 = OpIAdd %int %413 %415 + %417 = OpCompositeExtract %int %struct_inner 0 + %418 = OpIAdd %int %416 %417 + %419 = OpCompositeExtract %int %array_struct_inner 0 0 + %420 = OpIAdd %int %418 %419 + %421 = OpAccessChain %_ptr_StorageBuffer_int %31 %uint_0 + OpStore %421 %420 None OpReturn OpFunctionEnd %tint_f32_to_i32 = OpFunction %int None %438 @@ -735,23 +735,23 @@ OpLoopMerge %471 %469 None OpBranch %468 %468 = OpLabel - %474 = OpUGreaterThanEqual %bool %472 %uint_2 - OpSelectionMerge %475 None - OpBranchConditional %474 %476 %475 - %476 = OpLabel + %475 = OpUGreaterThanEqual %bool %472 %uint_2 + OpSelectionMerge %476 None + OpBranchConditional %475 %477 %476 + %477 = OpLabel OpBranch %471 - %475 = OpLabel - %477 = OpAccessChain %_ptr_Function_v3float %462 %472 - %479 = OpLoad %v3float %477 None - %480 = OpAccessChain %_ptr_Function_v3float %464 %472 - OpStore %480 %479 None + %476 = OpLabel + %478 = OpAccessChain %_ptr_Function_v3float %462 %472 + %480 = OpLoad %v3float %478 None + %481 = OpAccessChain %_ptr_Function_v3float %464 %472 + OpStore %481 %480 None OpBranch %469 %469 = OpLabel %473 = OpIAdd %uint %472 %uint_1 OpBranch %470 %471 = OpLabel - %481 = OpLoad %_arr_v3float_uint_2_0 %464 None - OpReturnValue %481 + %474 = OpLoad %_arr_v3float_uint_2_0 %464 None + OpReturnValue %474 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %_arr_mat4x2_f16_std140_uint_2_0 None %483 %tint_source_0 = OpFunctionParameter %_arr_mat4x2_f16_std140_uint_2 @@ -767,23 +767,23 @@ OpLoopMerge %493 %491 None OpBranch %490 %490 = OpLabel - %496 = OpUGreaterThanEqual %bool %494 %uint_2 - OpSelectionMerge %497 None - OpBranchConditional %496 %498 %497 - %498 = OpLabel + %497 = OpUGreaterThanEqual %bool %494 %uint_2 + OpSelectionMerge %498 None + OpBranchConditional %497 %499 %498 + %499 = OpLabel OpBranch %493 - %497 = OpLabel - %499 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %485 %494 - %500 = OpLoad %mat4x2_f16_std140 %499 None - %501 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %487 %494 - OpStore %501 %500 None + %498 = OpLabel + %500 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %485 %494 + %501 = OpLoad %mat4x2_f16_std140 %500 None + %502 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %487 %494 + OpStore %502 %501 None OpBranch %491 %491 = OpLabel %495 = OpIAdd %uint %494 %uint_1 OpBranch %492 %493 = OpLabel - %502 = OpLoad %_arr_mat4x2_f16_std140_uint_2_0 %487 None - OpReturnValue %502 + %496 = OpLoad %_arr_mat4x2_f16_std140_uint_2_0 %487 None + OpReturnValue %496 OpFunctionEnd %tint_convert_explicit_layout_1 = OpFunction %_arr_Inner_uint_4_0 None %504 %tint_source_1 = OpFunctionParameter %_arr_Inner_uint_4 @@ -799,21 +799,21 @@ OpLoopMerge %515 %513 None OpBranch %512 %512 = OpLabel - %518 = OpUGreaterThanEqual %bool %516 %uint_4 - OpSelectionMerge %519 None - OpBranchConditional %518 %520 %519 - %520 = OpLabel + %519 = OpUGreaterThanEqual %bool %516 %uint_4 + OpSelectionMerge %520 None + OpBranchConditional %519 %521 %520 + %521 = OpLabel OpBranch %515 - %519 = OpLabel - %521 = OpAccessChain %_ptr_Function_Inner %506 %516 - %523 = OpLoad %Inner %521 None - %524 = OpAccessChain %_ptr_Function_Inner %508 %516 - OpStore %524 %523 None + %520 = OpLabel + %522 = OpAccessChain %_ptr_Function_Inner %506 %516 + %524 = OpLoad %Inner %522 None + %525 = OpAccessChain %_ptr_Function_Inner %508 %516 + OpStore %525 %524 None OpBranch %513 %513 = OpLabel %517 = OpIAdd %uint %516 %uint_1 OpBranch %514 %515 = OpLabel - %525 = OpLoad %_arr_Inner_uint_4_0 %508 None - OpReturnValue %525 + %518 = OpLoad %_arr_Inner_uint_4_0 %508 None + OpReturnValue %518 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.spvasm index 58a7a84..a6da27c 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -69,9 +69,9 @@ %_arr_mat2v2float_uint_4 = OpTypeArray %mat2v2float %uint_4 %_ptr_Function__arr_mat2v2float_uint_4 = OpTypePointer Function %_arr_mat2v2float_uint_4 %61 = OpConstantNull %_arr_mat2v2float_uint_4 +%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %bool = OpTypeBool %_ptr_Function_mat2x2_f32_std140 = OpTypePointer Function %mat2x2_f32_std140 -%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %91 = OpTypeFunction %_arr_mat2x2_f32_std140_uint_4_0 %_arr_mat2x2_f32_std140_uint_4 %_ptr_Function__arr_mat2x2_f32_std140_uint_4 = OpTypePointer Function %_arr_mat2x2_f32_std140_uint_4 %96 = OpConstantNull %_arr_mat2x2_f32_std140_uint_4_0 @@ -114,34 +114,34 @@ OpLoopMerge %66 %64 None OpBranch %63 %63 = OpLabel - %69 = OpUGreaterThanEqual %bool %67 %uint_4 - OpSelectionMerge %71 None - OpBranchConditional %69 %72 %71 - %72 = OpLabel + %79 = OpUGreaterThanEqual %bool %67 %uint_4 + OpSelectionMerge %81 None + OpBranchConditional %79 %82 %81 + %82 = OpLabel OpBranch %66 - %71 = OpLabel - %73 = OpAccessChain %_ptr_Function_mat2v2float %58 %67 - %74 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %56 %67 - %76 = OpLoad %mat2x2_f32_std140 %74 None - %77 = OpCompositeExtract %v2float %76 0 - %78 = OpCompositeExtract %v2float %76 1 - %79 = OpCompositeConstruct %mat2v2float %77 %78 - OpStore %73 %79 None + %81 = OpLabel + %83 = OpAccessChain %_ptr_Function_mat2v2float %58 %67 + %84 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %56 %67 + %86 = OpLoad %mat2x2_f32_std140 %84 None + %87 = OpCompositeExtract %v2float %86 0 + %88 = OpCompositeExtract %v2float %86 1 + %89 = OpCompositeConstruct %mat2v2float %87 %88 + OpStore %83 %89 None OpBranch %64 %64 = OpLabel %68 = OpIAdd %uint %67 %uint_1 OpBranch %65 %66 = OpLabel %l_a = OpLoad %_arr_mat2v2float_uint_4 %58 None - %81 = OpCompositeExtract %float %l_a_i_i 0 - %82 = OpCompositeExtract %float %l_a 0 0 0 - %83 = OpFAdd %float %81 %82 - %84 = OpCompositeExtract %float %l_a_i 0 0 - %85 = OpFAdd %float %83 %84 - %86 = OpCompositeExtract %float %l_a_i_i 0 - %87 = OpFAdd %float %85 %86 - %88 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 - OpStore %88 %87 None + %70 = OpCompositeExtract %float %l_a_i_i 0 + %71 = OpCompositeExtract %float %l_a 0 0 0 + %72 = OpFAdd %float %70 %71 + %73 = OpCompositeExtract %float %l_a_i 0 0 + %74 = OpFAdd %float %72 %73 + %75 = OpCompositeExtract %float %l_a_i_i 0 + %76 = OpFAdd %float %74 %75 + %77 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 + OpStore %77 %76 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat2x2_f32_std140_uint_4_0 None %91 @@ -158,21 +158,21 @@ OpLoopMerge %101 %99 None OpBranch %98 %98 = OpLabel - %104 = OpUGreaterThanEqual %bool %102 %uint_4 - OpSelectionMerge %105 None - OpBranchConditional %104 %106 %105 - %106 = OpLabel + %105 = OpUGreaterThanEqual %bool %102 %uint_4 + OpSelectionMerge %106 None + OpBranchConditional %105 %107 %106 + %107 = OpLabel OpBranch %101 - %105 = OpLabel - %107 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %93 %102 - %108 = OpLoad %mat2x2_f32_std140 %107 None - %109 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %95 %102 - OpStore %109 %108 None + %106 = OpLabel + %108 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %93 %102 + %109 = OpLoad %mat2x2_f32_std140 %108 None + %110 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %95 %102 + OpStore %110 %109 None OpBranch %99 %99 = OpLabel %103 = OpIAdd %uint %102 %uint_1 OpBranch %100 %101 = OpLabel - %110 = OpLoad %_arr_mat2x2_f32_std140_uint_4_0 %95 None - OpReturnValue %110 + %104 = OpLoad %_arr_mat2x2_f32_std140_uint_4_0 %95 None + OpReturnValue %104 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.spvasm index 62ca647..e38511a 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.spvasm
@@ -58,10 +58,10 @@ %_arr_mat2v2float_uint_4 = OpTypeArray %mat2v2float %uint_4 %_ptr_Function__arr_mat2v2float_uint_4 = OpTypePointer Function %_arr_mat2v2float_uint_4 %39 = OpConstantNull %_arr_mat2v2float_uint_4 +%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %bool = OpTypeBool %_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float %_ptr_Function_mat2x2_f32_std140 = OpTypePointer Function %mat2x2_f32_std140 -%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %70 = OpTypeFunction %_arr_mat2x2_f32_std140_uint_4_0 %_arr_mat2x2_f32_std140_uint_4 %_ptr_Function__arr_mat2x2_f32_std140_uint_4 = OpTypePointer Function %_arr_mat2x2_f32_std140_uint_4 %75 = OpConstantNull %_arr_mat2x2_f32_std140_uint_4_0 @@ -87,34 +87,34 @@ OpLoopMerge %44 %42 None OpBranch %41 %41 = OpLabel - %47 = OpUGreaterThanEqual %bool %45 %uint_4 - OpSelectionMerge %49 None - OpBranchConditional %47 %50 %49 - %50 = OpLabel + %57 = OpUGreaterThanEqual %bool %45 %uint_4 + OpSelectionMerge %59 None + OpBranchConditional %57 %60 %59 + %60 = OpLabel OpBranch %44 - %49 = OpLabel - %51 = OpAccessChain %_ptr_Function_mat2v2float %36 %45 - %53 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %34 %45 - %55 = OpLoad %mat2x2_f32_std140 %53 None - %56 = OpCompositeExtract %v2float %55 0 - %57 = OpCompositeExtract %v2float %55 1 - %58 = OpCompositeConstruct %mat2v2float %56 %57 - OpStore %51 %58 None + %59 = OpLabel + %61 = OpAccessChain %_ptr_Function_mat2v2float %36 %45 + %63 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %34 %45 + %65 = OpLoad %mat2x2_f32_std140 %63 None + %66 = OpCompositeExtract %v2float %65 0 + %67 = OpCompositeExtract %v2float %65 1 + %68 = OpCompositeConstruct %mat2v2float %66 %67 + OpStore %61 %68 None OpBranch %42 %42 = OpLabel %46 = OpIAdd %uint %45 %uint_1 OpBranch %43 %44 = OpLabel %l_a = OpLoad %_arr_mat2v2float_uint_4 %36 None - %60 = OpCompositeExtract %float %l_a_i_i 0 - %61 = OpCompositeExtract %float %l_a 0 0 0 - %62 = OpFAdd %float %60 %61 - %63 = OpCompositeExtract %float %l_a_i 0 0 - %64 = OpFAdd %float %62 %63 - %65 = OpCompositeExtract %float %l_a_i_i 0 - %66 = OpFAdd %float %64 %65 - %67 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 - OpStore %67 %66 None + %48 = OpCompositeExtract %float %l_a_i_i 0 + %49 = OpCompositeExtract %float %l_a 0 0 0 + %50 = OpFAdd %float %48 %49 + %51 = OpCompositeExtract %float %l_a_i 0 0 + %52 = OpFAdd %float %50 %51 + %53 = OpCompositeExtract %float %l_a_i_i 0 + %54 = OpFAdd %float %52 %53 + %55 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 + OpStore %55 %54 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat2x2_f32_std140_uint_4_0 None %70 @@ -131,21 +131,21 @@ OpLoopMerge %80 %78 None OpBranch %77 %77 = OpLabel - %83 = OpUGreaterThanEqual %bool %81 %uint_4 - OpSelectionMerge %84 None - OpBranchConditional %83 %85 %84 - %85 = OpLabel + %84 = OpUGreaterThanEqual %bool %81 %uint_4 + OpSelectionMerge %85 None + OpBranchConditional %84 %86 %85 + %86 = OpLabel OpBranch %80 - %84 = OpLabel - %86 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %72 %81 - %87 = OpLoad %mat2x2_f32_std140 %86 None - %88 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %74 %81 - OpStore %88 %87 None + %85 = OpLabel + %87 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %72 %81 + %88 = OpLoad %mat2x2_f32_std140 %87 None + %89 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %74 %81 + OpStore %89 %88 None OpBranch %78 %78 = OpLabel %82 = OpIAdd %uint %81 %uint_1 OpBranch %79 %80 = OpLabel - %89 = OpLoad %_arr_mat2x2_f32_std140_uint_4_0 %74 None - OpReturnValue %89 + %83 = OpLoad %_arr_mat2x2_f32_std140_uint_4_0 %74 None + OpReturnValue %83 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_fn.wgsl.expected.spvasm index 4b40156..690bab4 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_fn.wgsl.expected.spvasm
@@ -64,12 +64,12 @@ %_ptr_Function__arr_mat2x2_f32_std140_uint_4_0 = OpTypePointer Function %_arr_mat2x2_f32_std140_uint_4_0 %_ptr_Function__arr_mat2v2float_uint_4 = OpTypePointer Function %_arr_mat2v2float_uint_4 %49 = OpConstantNull %_arr_mat2v2float_uint_4 +%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float + %uint_1 = OpConstant %uint 1 +%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %bool = OpTypeBool %_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float %_ptr_Function_mat2x2_f32_std140 = OpTypePointer Function %mat2x2_f32_std140 - %uint_1 = OpConstant %uint 1 -%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float -%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %94 = OpTypeFunction %_arr_mat2x2_f32_std140_uint_4_0 %_arr_mat2x2_f32_std140_uint_4 %_ptr_Function__arr_mat2x2_f32_std140_uint_4 = OpTypePointer Function %_arr_mat2x2_f32_std140_uint_4 %99 = OpConstantNull %_arr_mat2x2_f32_std140_uint_4_0 @@ -112,46 +112,46 @@ OpLoopMerge %54 %52 None OpBranch %51 %51 = OpLabel - %57 = OpUGreaterThanEqual %bool %55 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel + %81 = OpUGreaterThanEqual %bool %55 %uint_4 + OpSelectionMerge %83 None + OpBranchConditional %81 %84 %83 + %84 = OpLabel OpBranch %54 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_mat2v2float %47 %55 - %63 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %45 %55 - %65 = OpLoad %mat2x2_f32_std140 %63 None - %66 = OpCompositeExtract %v2float %65 0 - %67 = OpCompositeExtract %v2float %65 1 - %68 = OpCompositeConstruct %mat2v2float %66 %67 - OpStore %61 %68 None + %83 = OpLabel + %85 = OpAccessChain %_ptr_Function_mat2v2float %47 %55 + %87 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %45 %55 + %89 = OpLoad %mat2x2_f32_std140 %87 None + %90 = OpCompositeExtract %v2float %89 0 + %91 = OpCompositeExtract %v2float %89 1 + %92 = OpCompositeConstruct %mat2v2float %90 %91 + OpStore %85 %92 None OpBranch %52 %52 = OpLabel %56 = OpIAdd %uint %55 %uint_1 OpBranch %53 %54 = OpLabel - %70 = OpLoad %_arr_mat2v2float_uint_4 %47 None - %71 = OpFunctionCall %float %a %70 - %72 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_1 %uint_0 - %74 = OpLoad %v2float %72 None - %75 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_1 %uint_1 - %76 = OpLoad %v2float %75 None - %77 = OpCompositeConstruct %mat2v2float %74 %76 - %78 = OpFunctionCall %float %b %77 - %79 = OpFAdd %float %71 %78 - %80 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_1 %uint_0 - %81 = OpLoad %v2float %80 None - %82 = OpVectorShuffle %v2float %81 %81 1 0 - %83 = OpFunctionCall %float %c %82 - %84 = OpFAdd %float %79 %83 - %85 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_1 %uint_0 - %86 = OpLoad %v2float %85 None - %87 = OpVectorShuffle %v2float %86 %86 1 0 - %88 = OpCompositeExtract %float %87 0 - %89 = OpFunctionCall %float %d %88 - %90 = OpFAdd %float %84 %89 - %91 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 - OpStore %91 %90 None + %57 = OpLoad %_arr_mat2v2float_uint_4 %47 None + %58 = OpFunctionCall %float %a %57 + %59 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_1 %uint_0 + %62 = OpLoad %v2float %59 None + %63 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_1 %uint_1 + %64 = OpLoad %v2float %63 None + %65 = OpCompositeConstruct %mat2v2float %62 %64 + %66 = OpFunctionCall %float %b %65 + %67 = OpFAdd %float %58 %66 + %68 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_1 %uint_0 + %69 = OpLoad %v2float %68 None + %70 = OpVectorShuffle %v2float %69 %69 1 0 + %71 = OpFunctionCall %float %c %70 + %72 = OpFAdd %float %67 %71 + %73 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_1 %uint_0 + %74 = OpLoad %v2float %73 None + %75 = OpVectorShuffle %v2float %74 %74 1 0 + %76 = OpCompositeExtract %float %75 0 + %77 = OpFunctionCall %float %d %76 + %78 = OpFAdd %float %72 %77 + %79 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 + OpStore %79 %78 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat2x2_f32_std140_uint_4_0 None %94 @@ -168,21 +168,21 @@ OpLoopMerge %104 %102 None OpBranch %101 %101 = OpLabel - %107 = OpUGreaterThanEqual %bool %105 %uint_4 - OpSelectionMerge %108 None - OpBranchConditional %107 %109 %108 - %109 = OpLabel + %108 = OpUGreaterThanEqual %bool %105 %uint_4 + OpSelectionMerge %109 None + OpBranchConditional %108 %110 %109 + %110 = OpLabel OpBranch %104 - %108 = OpLabel - %110 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %96 %105 - %111 = OpLoad %mat2x2_f32_std140 %110 None - %112 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %98 %105 - OpStore %112 %111 None + %109 = OpLabel + %111 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %96 %105 + %112 = OpLoad %mat2x2_f32_std140 %111 None + %113 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %98 %105 + OpStore %113 %112 None OpBranch %102 %102 = OpLabel %106 = OpIAdd %uint %105 %uint_1 OpBranch %103 %104 = OpLabel - %113 = OpLoad %_arr_mat2x2_f32_std140_uint_4_0 %98 None - OpReturnValue %113 + %107 = OpLoad %_arr_mat2x2_f32_std140_uint_4_0 %98 None + OpReturnValue %107 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_private.wgsl.expected.spvasm index 057acd6..551c6f9 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_private.wgsl.expected.spvasm
@@ -55,17 +55,17 @@ %_arr_mat2x2_f32_std140_uint_4_0 = OpTypeArray %mat2x2_f32_std140 %uint_4 %_ptr_Function__arr_mat2x2_f32_std140_uint_4_0 = OpTypePointer Function %_arr_mat2x2_f32_std140_uint_4_0 %_ptr_Function__arr_mat2v2float_uint_4 = OpTypePointer Function %_arr_mat2v2float_uint_4 - %bool = OpTypeBool -%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float -%_ptr_Function_mat2x2_f32_std140 = OpTypePointer Function %mat2x2_f32_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Private_mat2v2float = OpTypePointer Private %mat2v2float + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float %uint_2 = OpConstant %uint 2 %_ptr_Private_v2float = OpTypePointer Private %v2float %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Private_float = OpTypePointer Private %float %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float + %bool = OpTypeBool +%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float +%_ptr_Function_mat2x2_f32_std140 = OpTypePointer Function %mat2x2_f32_std140 %81 = OpTypeFunction %_arr_mat2x2_f32_std140_uint_4_0 %_arr_mat2x2_f32_std140_uint_4 %_ptr_Function__arr_mat2x2_f32_std140_uint_4 = OpTypePointer Function %_arr_mat2x2_f32_std140_uint_4 %86 = OpConstantNull %_arr_mat2x2_f32_std140_uint_4_0 @@ -85,49 +85,49 @@ OpLoopMerge %37 %35 None OpBranch %34 %34 = OpLabel - %40 = OpUGreaterThanEqual %bool %38 %uint_4 - OpSelectionMerge %42 None - OpBranchConditional %40 %43 %42 - %43 = OpLabel + %68 = OpUGreaterThanEqual %bool %38 %uint_4 + OpSelectionMerge %70 None + OpBranchConditional %68 %71 %70 + %71 = OpLabel OpBranch %37 - %42 = OpLabel - %44 = OpAccessChain %_ptr_Function_mat2v2float %31 %38 - %46 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %29 %38 - %48 = OpLoad %mat2x2_f32_std140 %46 None - %49 = OpCompositeExtract %v2float %48 0 - %50 = OpCompositeExtract %v2float %48 1 - %51 = OpCompositeConstruct %mat2v2float %49 %50 - OpStore %44 %51 None + %70 = OpLabel + %72 = OpAccessChain %_ptr_Function_mat2v2float %31 %38 + %74 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %29 %38 + %76 = OpLoad %mat2x2_f32_std140 %74 None + %77 = OpCompositeExtract %v2float %76 0 + %78 = OpCompositeExtract %v2float %76 1 + %79 = OpCompositeConstruct %mat2v2float %77 %78 + OpStore %72 %79 None OpBranch %35 %35 = OpLabel %39 = OpIAdd %uint %38 %uint_1 OpBranch %36 %37 = OpLabel - %53 = OpLoad %_arr_mat2v2float_uint_4 %31 None - OpStore %p %53 None - %54 = OpAccessChain %_ptr_Private_mat2v2float %p %uint_1 - %56 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_0 - %59 = OpLoad %v2float %56 None - %60 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 - %61 = OpLoad %v2float %60 None - %62 = OpCompositeConstruct %mat2v2float %59 %61 - OpStore %54 %62 None + %40 = OpLoad %_arr_mat2v2float_uint_4 %31 None + OpStore %p %40 None + %41 = OpAccessChain %_ptr_Private_mat2v2float %p %uint_1 + %44 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_0 + %47 = OpLoad %v2float %44 None + %48 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 + %49 = OpLoad %v2float %48 None + %50 = OpCompositeConstruct %mat2v2float %47 %49 + OpStore %41 %50 None + %51 = OpAccessChain %_ptr_Private_v2float %p %uint_1 %uint_0 + %53 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_1 + %54 = OpLoad %v2float %53 None + %55 = OpVectorShuffle %v2float %54 %54 1 0 + OpStore %51 %55 None + %56 = OpAccessChain %_ptr_Private_v2float %p %uint_1 %uint_0 + %57 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_1 + %58 = OpAccessChain %_ptr_Uniform_float %57 %uint_0 + %60 = OpLoad %float %58 None + %61 = OpAccessChain %_ptr_Private_float %56 %uint_0 + OpStore %61 %60 None %63 = OpAccessChain %_ptr_Private_v2float %p %uint_1 %uint_0 - %65 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_1 - %66 = OpLoad %v2float %65 None - %67 = OpVectorShuffle %v2float %66 %66 1 0 - OpStore %63 %67 None - %68 = OpAccessChain %_ptr_Private_v2float %p %uint_1 %uint_0 - %69 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_1 - %70 = OpAccessChain %_ptr_Uniform_float %69 %uint_0 - %72 = OpLoad %float %70 None - %73 = OpAccessChain %_ptr_Private_float %68 %uint_0 - OpStore %73 %72 None - %75 = OpAccessChain %_ptr_Private_v2float %p %uint_1 %uint_0 - %76 = OpAccessChain %_ptr_Private_float %75 %uint_0 - %77 = OpLoad %float %76 None - %78 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 - OpStore %78 %77 None + %64 = OpAccessChain %_ptr_Private_float %63 %uint_0 + %65 = OpLoad %float %64 None + %66 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 + OpStore %66 %65 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat2x2_f32_std140_uint_4_0 None %81 @@ -144,21 +144,21 @@ OpLoopMerge %91 %89 None OpBranch %88 %88 = OpLabel - %94 = OpUGreaterThanEqual %bool %92 %uint_4 - OpSelectionMerge %95 None - OpBranchConditional %94 %96 %95 - %96 = OpLabel + %95 = OpUGreaterThanEqual %bool %92 %uint_4 + OpSelectionMerge %96 None + OpBranchConditional %95 %97 %96 + %97 = OpLabel OpBranch %91 - %95 = OpLabel - %97 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %83 %92 - %98 = OpLoad %mat2x2_f32_std140 %97 None - %99 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %85 %92 - OpStore %99 %98 None + %96 = OpLabel + %98 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %83 %92 + %99 = OpLoad %mat2x2_f32_std140 %98 None + %100 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %85 %92 + OpStore %100 %99 None OpBranch %89 %89 = OpLabel %93 = OpIAdd %uint %92 %uint_1 OpBranch %90 %91 = OpLabel - %100 = OpLoad %_arr_mat2x2_f32_std140_uint_4_0 %85 None - OpReturnValue %100 + %94 = OpLoad %_arr_mat2x2_f32_std140_uint_4_0 %85 None + OpReturnValue %94 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_storage.wgsl.expected.spvasm index b60352d..b19d40e 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_storage.wgsl.expected.spvasm
@@ -58,17 +58,17 @@ %_arr_mat2v2float_uint_4_0 = OpTypeArray %mat2v2float %uint_4 %_ptr_Function__arr_mat2v2float_uint_4_0 = OpTypePointer Function %_arr_mat2v2float_uint_4_0 %31 = OpConstantNull %_arr_mat2v2float_uint_4_0 - %bool = OpTypeBool -%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float -%_ptr_Function_mat2x2_f32_std140 = OpTypePointer Function %mat2x2_f32_std140 - %uint_1 = OpConstant %uint 1 %_ptr_StorageBuffer__arr_mat2v2float_uint_4 = OpTypePointer StorageBuffer %_arr_mat2v2float_uint_4 %_ptr_StorageBuffer_mat2v2float = OpTypePointer StorageBuffer %mat2v2float + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float %uint_2 = OpConstant %uint 2 %_ptr_StorageBuffer_v2float = OpTypePointer StorageBuffer %v2float %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float + %bool = OpTypeBool +%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float +%_ptr_Function_mat2x2_f32_std140 = OpTypePointer Function %mat2x2_f32_std140 %79 = OpTypeFunction %_arr_mat2v2float_uint_4 %_arr_mat2v2float_uint_4_0 %_ptr_Function__arr_mat2v2float_uint_4 = OpTypePointer Function %_arr_mat2v2float_uint_4 %84 = OpConstantNull %_arr_mat2v2float_uint_4 @@ -91,46 +91,46 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_4 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %66 = OpUGreaterThanEqual %bool %37 %uint_4 + OpSelectionMerge %68 None + OpBranchConditional %66 %69 %68 + %69 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Function_mat2v2float %28 %37 - %45 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %26 %37 - %47 = OpLoad %mat2x2_f32_std140 %45 None - %48 = OpCompositeExtract %v2float %47 0 - %49 = OpCompositeExtract %v2float %47 1 - %50 = OpCompositeConstruct %mat2v2float %48 %49 - OpStore %43 %50 None + %68 = OpLabel + %70 = OpAccessChain %_ptr_Function_mat2v2float %28 %37 + %72 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %26 %37 + %74 = OpLoad %mat2x2_f32_std140 %72 None + %75 = OpCompositeExtract %v2float %74 0 + %76 = OpCompositeExtract %v2float %74 1 + %77 = OpCompositeConstruct %mat2v2float %75 %76 + OpStore %70 %77 None OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel - %52 = OpLoad %_arr_mat2v2float_uint_4_0 %28 None - %53 = OpAccessChain %_ptr_StorageBuffer__arr_mat2v2float_uint_4 %10 %uint_0 - %55 = OpFunctionCall %_arr_mat2v2float_uint_4 %tint_convert_explicit_layout %52 - OpStore %53 %55 None - %57 = OpAccessChain %_ptr_StorageBuffer_mat2v2float %10 %uint_0 %uint_1 - %59 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_0 - %62 = OpLoad %v2float %59 None - %63 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 - %64 = OpLoad %v2float %63 None - %65 = OpCompositeConstruct %mat2v2float %62 %64 - OpStore %57 %65 None - %66 = OpAccessChain %_ptr_StorageBuffer_v2float %10 %uint_0 %uint_1 %uint_0 - %68 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_1 - %69 = OpLoad %v2float %68 None - %70 = OpVectorShuffle %v2float %69 %69 1 0 - OpStore %66 %70 None - %71 = OpAccessChain %_ptr_StorageBuffer_v2float %10 %uint_0 %uint_1 %uint_0 - %72 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_1 - %73 = OpAccessChain %_ptr_Uniform_float %72 %uint_0 - %75 = OpLoad %float %73 None - %76 = OpAccessChain %_ptr_StorageBuffer_float %71 %uint_0 - OpStore %76 %75 None + %39 = OpLoad %_arr_mat2v2float_uint_4_0 %28 None + %40 = OpAccessChain %_ptr_StorageBuffer__arr_mat2v2float_uint_4 %10 %uint_0 + %42 = OpFunctionCall %_arr_mat2v2float_uint_4 %tint_convert_explicit_layout %39 + OpStore %40 %42 None + %44 = OpAccessChain %_ptr_StorageBuffer_mat2v2float %10 %uint_0 %uint_1 + %47 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_0 + %50 = OpLoad %v2float %47 None + %51 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 + %52 = OpLoad %v2float %51 None + %53 = OpCompositeConstruct %mat2v2float %50 %52 + OpStore %44 %53 None + %54 = OpAccessChain %_ptr_StorageBuffer_v2float %10 %uint_0 %uint_1 %uint_0 + %56 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_1 + %57 = OpLoad %v2float %56 None + %58 = OpVectorShuffle %v2float %57 %57 1 0 + OpStore %54 %58 None + %59 = OpAccessChain %_ptr_StorageBuffer_v2float %10 %uint_0 %uint_1 %uint_0 + %60 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_1 + %61 = OpAccessChain %_ptr_Uniform_float %60 %uint_0 + %63 = OpLoad %float %61 None + %64 = OpAccessChain %_ptr_StorageBuffer_float %59 %uint_0 + OpStore %64 %63 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat2v2float_uint_4 None %79 @@ -147,23 +147,23 @@ OpLoopMerge %89 %87 None OpBranch %86 %86 = OpLabel - %92 = OpUGreaterThanEqual %bool %90 %uint_4 - OpSelectionMerge %93 None - OpBranchConditional %92 %94 %93 - %94 = OpLabel + %93 = OpUGreaterThanEqual %bool %90 %uint_4 + OpSelectionMerge %94 None + OpBranchConditional %93 %95 %94 + %95 = OpLabel OpBranch %89 - %93 = OpLabel - %95 = OpAccessChain %_ptr_Function_mat2v2float %81 %90 - %96 = OpLoad %mat2v2float %95 None - %97 = OpAccessChain %_ptr_Function_mat2v2float %82 %90 - OpStore %97 %96 None + %94 = OpLabel + %96 = OpAccessChain %_ptr_Function_mat2v2float %81 %90 + %97 = OpLoad %mat2v2float %96 None + %98 = OpAccessChain %_ptr_Function_mat2v2float %82 %90 + OpStore %98 %97 None OpBranch %87 %87 = OpLabel %91 = OpIAdd %uint %90 %uint_1 OpBranch %88 %89 = OpLabel - %98 = OpLoad %_arr_mat2v2float_uint_4 %82 None - OpReturnValue %98 + %92 = OpLoad %_arr_mat2v2float_uint_4 %82 None + OpReturnValue %92 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %_arr_mat2x2_f32_std140_uint_4_0 None %100 %tint_source_0 = OpFunctionParameter %_arr_mat2x2_f32_std140_uint_4 @@ -179,21 +179,21 @@ OpLoopMerge %110 %108 None OpBranch %107 %107 = OpLabel - %113 = OpUGreaterThanEqual %bool %111 %uint_4 - OpSelectionMerge %114 None - OpBranchConditional %113 %115 %114 - %115 = OpLabel + %114 = OpUGreaterThanEqual %bool %111 %uint_4 + OpSelectionMerge %115 None + OpBranchConditional %114 %116 %115 + %116 = OpLabel OpBranch %110 - %114 = OpLabel - %116 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %102 %111 - %117 = OpLoad %mat2x2_f32_std140 %116 None - %118 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %104 %111 - OpStore %118 %117 None + %115 = OpLabel + %117 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %102 %111 + %118 = OpLoad %mat2x2_f32_std140 %117 None + %119 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %104 %111 + OpStore %119 %118 None OpBranch %108 %108 = OpLabel %112 = OpIAdd %uint %111 %uint_1 OpBranch %109 %110 = OpLabel - %119 = OpLoad %_arr_mat2x2_f32_std140_uint_4_0 %104 None - OpReturnValue %119 + %113 = OpLoad %_arr_mat2x2_f32_std140_uint_4_0 %104 None + OpReturnValue %113 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_workgroup.wgsl.expected.spvasm index 53da835f..a390396 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_workgroup.wgsl.expected.spvasm
@@ -45,10 +45,6 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %19 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_mat2v2float = OpTypePointer Workgroup %mat2v2float - %34 = OpConstantNull %mat2v2float - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_mat2x2_f32_std140_uint_4 = OpTypePointer Uniform %_arr_mat2x2_f32_std140_uint_4 @@ -56,13 +52,17 @@ %_arr_mat2x2_f32_std140_uint_4_0 = OpTypeArray %mat2x2_f32_std140 %uint_4 %_ptr_Function__arr_mat2x2_f32_std140_uint_4_0 = OpTypePointer Function %_arr_mat2x2_f32_std140_uint_4_0 %_ptr_Function__arr_mat2v2float_uint_4 = OpTypePointer Function %_arr_mat2v2float_uint_4 - %50 = OpConstantNull %_arr_mat2v2float_uint_4 -%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float -%_ptr_Function_mat2x2_f32_std140 = OpTypePointer Function %mat2x2_f32_std140 + %42 = OpConstantNull %_arr_mat2v2float_uint_4 +%_ptr_Workgroup_mat2v2float = OpTypePointer Workgroup %mat2v2float + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float %_ptr_Workgroup_v2float = OpTypePointer Workgroup %v2float %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Workgroup_float = OpTypePointer Workgroup %float + %bool = OpTypeBool + %77 = OpConstantNull %mat2v2float +%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float +%_ptr_Function_mat2x2_f32_std140 = OpTypePointer Function %mat2x2_f32_std140 %90 = OpTypeFunction %void %95 = OpTypeFunction %_arr_mat2x2_f32_std140_uint_4_0 %_arr_mat2x2_f32_std140_uint_4 %_ptr_Function__arr_mat2x2_f32_std140_uint_4 = OpTypePointer Function %_arr_mat2x2_f32_std140_uint_4 @@ -70,8 +70,8 @@ %f_inner = OpFunction %void None %19 %tint_local_index = OpFunctionParameter %uint %20 = OpLabel - %46 = OpVariable %_ptr_Function__arr_mat2x2_f32_std140_uint_4_0 Function - %48 = OpVariable %_ptr_Function__arr_mat2v2float_uint_4 Function %50 + %38 = OpVariable %_ptr_Function__arr_mat2x2_f32_std140_uint_4_0 Function + %40 = OpVariable %_ptr_Function__arr_mat2v2float_uint_4 Function %42 OpBranch %21 %21 = OpLabel OpBranch %24 @@ -80,70 +80,70 @@ OpLoopMerge %25 %23 None OpBranch %22 %22 = OpLabel - %28 = OpUGreaterThanEqual %bool %26 %uint_4 - OpSelectionMerge %30 None - OpBranchConditional %28 %31 %30 - %31 = OpLabel + %72 = OpUGreaterThanEqual %bool %26 %uint_4 + OpSelectionMerge %74 None + OpBranchConditional %72 %75 %74 + %75 = OpLabel OpBranch %25 - %30 = OpLabel - %32 = OpAccessChain %_ptr_Workgroup_mat2v2float %w %26 - OpStore %32 %34 None + %74 = OpLabel + %76 = OpAccessChain %_ptr_Workgroup_mat2v2float %w %26 + OpStore %76 %77 None OpBranch %23 %23 = OpLabel %27 = OpIAdd %uint %26 %uint_1 OpBranch %24 %25 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %39 = OpAccessChain %_ptr_Uniform__arr_mat2x2_f32_std140_uint_4 %1 %uint_0 - %42 = OpLoad %_arr_mat2x2_f32_std140_uint_4 %39 None - %43 = OpFunctionCall %_arr_mat2x2_f32_std140_uint_4_0 %tint_convert_explicit_layout %42 - OpStore %46 %43 - OpBranch %51 - %51 = OpLabel - OpBranch %54 - %54 = OpLabel - %56 = OpPhi %uint %uint_0 %51 %57 %53 - OpLoopMerge %55 %53 None - OpBranch %52 - %52 = OpLabel - %58 = OpUGreaterThanEqual %bool %56 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %58 %60 %59 - %60 = OpLabel - OpBranch %55 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_mat2v2float %48 %56 - %63 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %46 %56 - %65 = OpLoad %mat2x2_f32_std140 %63 None - %66 = OpCompositeExtract %v2float %65 0 - %67 = OpCompositeExtract %v2float %65 1 - %68 = OpCompositeConstruct %mat2v2float %66 %67 - OpStore %61 %68 None - OpBranch %53 - %53 = OpLabel - %57 = OpIAdd %uint %56 %uint_1 - OpBranch %54 - %55 = OpLabel - %69 = OpLoad %_arr_mat2v2float_uint_4 %48 None - OpStore %w %69 None - %70 = OpAccessChain %_ptr_Workgroup_mat2v2float %w %uint_1 - %71 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_0 - %73 = OpLoad %v2float %71 None - %74 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 - %75 = OpLoad %v2float %74 None - %76 = OpCompositeConstruct %mat2v2float %73 %75 - OpStore %70 %76 None - %77 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_1 %uint_0 - %79 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_1 - %80 = OpLoad %v2float %79 None - %81 = OpVectorShuffle %v2float %80 %80 1 0 - OpStore %77 %81 None - %82 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_1 %uint_0 - %83 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_1 - %84 = OpAccessChain %_ptr_Uniform_float %83 %uint_0 - %86 = OpLoad %float %84 None - %87 = OpAccessChain %_ptr_Workgroup_float %82 %uint_0 - OpStore %87 %86 None + %31 = OpAccessChain %_ptr_Uniform__arr_mat2x2_f32_std140_uint_4 %1 %uint_0 + %34 = OpLoad %_arr_mat2x2_f32_std140_uint_4 %31 None + %35 = OpFunctionCall %_arr_mat2x2_f32_std140_uint_4_0 %tint_convert_explicit_layout %34 + OpStore %38 %35 + OpBranch %43 + %43 = OpLabel + OpBranch %46 + %46 = OpLabel + %48 = OpPhi %uint %uint_0 %43 %49 %45 + OpLoopMerge %47 %45 None + OpBranch %44 + %44 = OpLabel + %78 = OpUGreaterThanEqual %bool %48 %uint_4 + OpSelectionMerge %79 None + OpBranchConditional %78 %80 %79 + %80 = OpLabel + OpBranch %47 + %79 = OpLabel + %81 = OpAccessChain %_ptr_Function_mat2v2float %40 %48 + %83 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %38 %48 + %85 = OpLoad %mat2x2_f32_std140 %83 None + %86 = OpCompositeExtract %v2float %85 0 + %87 = OpCompositeExtract %v2float %85 1 + %88 = OpCompositeConstruct %mat2v2float %86 %87 + OpStore %81 %88 None + OpBranch %45 + %45 = OpLabel + %49 = OpIAdd %uint %48 %uint_1 + OpBranch %46 + %47 = OpLabel + %50 = OpLoad %_arr_mat2v2float_uint_4 %40 None + OpStore %w %50 None + %51 = OpAccessChain %_ptr_Workgroup_mat2v2float %w %uint_1 + %54 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_0 + %56 = OpLoad %v2float %54 None + %57 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 + %58 = OpLoad %v2float %57 None + %59 = OpCompositeConstruct %mat2v2float %56 %58 + OpStore %51 %59 None + %60 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_1 %uint_0 + %62 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_1 + %63 = OpLoad %v2float %62 None + %64 = OpVectorShuffle %v2float %63 %63 1 0 + OpStore %60 %64 None + %65 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_1 %uint_0 + %66 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_1 + %67 = OpAccessChain %_ptr_Uniform_float %66 %uint_0 + %69 = OpLoad %float %67 None + %70 = OpAccessChain %_ptr_Workgroup_float %65 %uint_0 + OpStore %70 %69 None OpReturn OpFunctionEnd %f = OpFunction %void None %90 @@ -166,21 +166,21 @@ OpLoopMerge %105 %103 None OpBranch %102 %102 = OpLabel - %108 = OpUGreaterThanEqual %bool %106 %uint_4 - OpSelectionMerge %109 None - OpBranchConditional %108 %110 %109 - %110 = OpLabel + %109 = OpUGreaterThanEqual %bool %106 %uint_4 + OpSelectionMerge %110 None + OpBranchConditional %109 %111 %110 + %111 = OpLabel OpBranch %105 - %109 = OpLabel - %111 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %97 %106 - %112 = OpLoad %mat2x2_f32_std140 %111 None - %113 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %99 %106 - OpStore %113 %112 None + %110 = OpLabel + %112 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %97 %106 + %113 = OpLoad %mat2x2_f32_std140 %112 None + %114 = OpAccessChain %_ptr_Function_mat2x2_f32_std140 %99 %106 + OpStore %114 %113 None OpBranch %103 %103 = OpLabel %107 = OpIAdd %uint %106 %uint_1 OpBranch %104 %105 = OpLabel - %114 = OpLoad %_arr_mat2x2_f32_std140_uint_4_0 %99 None - OpReturnValue %114 + %108 = OpLoad %_arr_mat2x2_f32_std140_uint_4_0 %99 None + OpReturnValue %108 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.spvasm index da5b3ac..1a04df5 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -72,9 +72,9 @@ %_arr_mat2v3half_uint_4 = OpTypeArray %mat2v3half %uint_4 %_ptr_Function__arr_mat2v3half_uint_4 = OpTypePointer Function %_arr_mat2v3half_uint_4 %61 = OpConstantNull %_arr_mat2v3half_uint_4 +%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half %bool = OpTypeBool %_ptr_Function_mat2x3_f16_std140 = OpTypePointer Function %mat2x3_f16_std140 -%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half %91 = OpTypeFunction %_arr_mat2x3_f16_std140_uint_4_0 %_arr_mat2x3_f16_std140_uint_4 %_ptr_Function__arr_mat2x3_f16_std140_uint_4 = OpTypePointer Function %_arr_mat2x3_f16_std140_uint_4 %96 = OpConstantNull %_arr_mat2x3_f16_std140_uint_4_0 @@ -117,34 +117,34 @@ OpLoopMerge %66 %64 None OpBranch %63 %63 = OpLabel - %69 = OpUGreaterThanEqual %bool %67 %uint_4 - OpSelectionMerge %71 None - OpBranchConditional %69 %72 %71 - %72 = OpLabel + %79 = OpUGreaterThanEqual %bool %67 %uint_4 + OpSelectionMerge %81 None + OpBranchConditional %79 %82 %81 + %82 = OpLabel OpBranch %66 - %71 = OpLabel - %73 = OpAccessChain %_ptr_Function_mat2v3half %58 %67 - %74 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %56 %67 - %76 = OpLoad %mat2x3_f16_std140 %74 None - %77 = OpCompositeExtract %v3half %76 0 - %78 = OpCompositeExtract %v3half %76 1 - %79 = OpCompositeConstruct %mat2v3half %77 %78 - OpStore %73 %79 None + %81 = OpLabel + %83 = OpAccessChain %_ptr_Function_mat2v3half %58 %67 + %84 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %56 %67 + %86 = OpLoad %mat2x3_f16_std140 %84 None + %87 = OpCompositeExtract %v3half %86 0 + %88 = OpCompositeExtract %v3half %86 1 + %89 = OpCompositeConstruct %mat2v3half %87 %88 + OpStore %83 %89 None OpBranch %64 %64 = OpLabel %68 = OpIAdd %uint %67 %uint_1 OpBranch %65 %66 = OpLabel %l_a = OpLoad %_arr_mat2v3half_uint_4 %58 None - %81 = OpCompositeExtract %half %l_a_i_i 0 - %82 = OpCompositeExtract %half %l_a 0 0 0 - %83 = OpFAdd %half %81 %82 - %84 = OpCompositeExtract %half %l_a_i 0 0 - %85 = OpFAdd %half %83 %84 - %86 = OpCompositeExtract %half %l_a_i_i 0 - %87 = OpFAdd %half %85 %86 - %88 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 - OpStore %88 %87 None + %70 = OpCompositeExtract %half %l_a_i_i 0 + %71 = OpCompositeExtract %half %l_a 0 0 0 + %72 = OpFAdd %half %70 %71 + %73 = OpCompositeExtract %half %l_a_i 0 0 + %74 = OpFAdd %half %72 %73 + %75 = OpCompositeExtract %half %l_a_i_i 0 + %76 = OpFAdd %half %74 %75 + %77 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 + OpStore %77 %76 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat2x3_f16_std140_uint_4_0 None %91 @@ -161,21 +161,21 @@ OpLoopMerge %101 %99 None OpBranch %98 %98 = OpLabel - %104 = OpUGreaterThanEqual %bool %102 %uint_4 - OpSelectionMerge %105 None - OpBranchConditional %104 %106 %105 - %106 = OpLabel + %105 = OpUGreaterThanEqual %bool %102 %uint_4 + OpSelectionMerge %106 None + OpBranchConditional %105 %107 %106 + %107 = OpLabel OpBranch %101 - %105 = OpLabel - %107 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %93 %102 - %108 = OpLoad %mat2x3_f16_std140 %107 None - %109 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %95 %102 - OpStore %109 %108 None + %106 = OpLabel + %108 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %93 %102 + %109 = OpLoad %mat2x3_f16_std140 %108 None + %110 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %95 %102 + OpStore %110 %109 None OpBranch %99 %99 = OpLabel %103 = OpIAdd %uint %102 %uint_1 OpBranch %100 %101 = OpLabel - %110 = OpLoad %_arr_mat2x3_f16_std140_uint_4_0 %95 None - OpReturnValue %110 + %104 = OpLoad %_arr_mat2x3_f16_std140_uint_4_0 %95 None + OpReturnValue %104 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.spvasm index 4a6d13e..d83bb71 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.spvasm
@@ -61,10 +61,10 @@ %_arr_mat2v3half_uint_4 = OpTypeArray %mat2v3half %uint_4 %_ptr_Function__arr_mat2v3half_uint_4 = OpTypePointer Function %_arr_mat2v3half_uint_4 %39 = OpConstantNull %_arr_mat2v3half_uint_4 +%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half %bool = OpTypeBool %_ptr_Function_mat2v3half = OpTypePointer Function %mat2v3half %_ptr_Function_mat2x3_f16_std140 = OpTypePointer Function %mat2x3_f16_std140 -%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half %70 = OpTypeFunction %_arr_mat2x3_f16_std140_uint_4_0 %_arr_mat2x3_f16_std140_uint_4 %_ptr_Function__arr_mat2x3_f16_std140_uint_4 = OpTypePointer Function %_arr_mat2x3_f16_std140_uint_4 %75 = OpConstantNull %_arr_mat2x3_f16_std140_uint_4_0 @@ -90,34 +90,34 @@ OpLoopMerge %44 %42 None OpBranch %41 %41 = OpLabel - %47 = OpUGreaterThanEqual %bool %45 %uint_4 - OpSelectionMerge %49 None - OpBranchConditional %47 %50 %49 - %50 = OpLabel + %57 = OpUGreaterThanEqual %bool %45 %uint_4 + OpSelectionMerge %59 None + OpBranchConditional %57 %60 %59 + %60 = OpLabel OpBranch %44 - %49 = OpLabel - %51 = OpAccessChain %_ptr_Function_mat2v3half %36 %45 - %53 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %34 %45 - %55 = OpLoad %mat2x3_f16_std140 %53 None - %56 = OpCompositeExtract %v3half %55 0 - %57 = OpCompositeExtract %v3half %55 1 - %58 = OpCompositeConstruct %mat2v3half %56 %57 - OpStore %51 %58 None + %59 = OpLabel + %61 = OpAccessChain %_ptr_Function_mat2v3half %36 %45 + %63 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %34 %45 + %65 = OpLoad %mat2x3_f16_std140 %63 None + %66 = OpCompositeExtract %v3half %65 0 + %67 = OpCompositeExtract %v3half %65 1 + %68 = OpCompositeConstruct %mat2v3half %66 %67 + OpStore %61 %68 None OpBranch %42 %42 = OpLabel %46 = OpIAdd %uint %45 %uint_1 OpBranch %43 %44 = OpLabel %l_a = OpLoad %_arr_mat2v3half_uint_4 %36 None - %60 = OpCompositeExtract %half %l_a_i_i 0 - %61 = OpCompositeExtract %half %l_a 0 0 0 - %62 = OpFAdd %half %60 %61 - %63 = OpCompositeExtract %half %l_a_i 0 0 - %64 = OpFAdd %half %62 %63 - %65 = OpCompositeExtract %half %l_a_i_i 0 - %66 = OpFAdd %half %64 %65 - %67 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 - OpStore %67 %66 None + %48 = OpCompositeExtract %half %l_a_i_i 0 + %49 = OpCompositeExtract %half %l_a 0 0 0 + %50 = OpFAdd %half %48 %49 + %51 = OpCompositeExtract %half %l_a_i 0 0 + %52 = OpFAdd %half %50 %51 + %53 = OpCompositeExtract %half %l_a_i_i 0 + %54 = OpFAdd %half %52 %53 + %55 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 + OpStore %55 %54 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat2x3_f16_std140_uint_4_0 None %70 @@ -134,21 +134,21 @@ OpLoopMerge %80 %78 None OpBranch %77 %77 = OpLabel - %83 = OpUGreaterThanEqual %bool %81 %uint_4 - OpSelectionMerge %84 None - OpBranchConditional %83 %85 %84 - %85 = OpLabel + %84 = OpUGreaterThanEqual %bool %81 %uint_4 + OpSelectionMerge %85 None + OpBranchConditional %84 %86 %85 + %86 = OpLabel OpBranch %80 - %84 = OpLabel - %86 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %72 %81 - %87 = OpLoad %mat2x3_f16_std140 %86 None - %88 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %74 %81 - OpStore %88 %87 None + %85 = OpLabel + %87 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %72 %81 + %88 = OpLoad %mat2x3_f16_std140 %87 None + %89 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %74 %81 + OpStore %89 %88 None OpBranch %78 %78 = OpLabel %82 = OpIAdd %uint %81 %uint_1 OpBranch %79 %80 = OpLabel - %89 = OpLoad %_arr_mat2x3_f16_std140_uint_4_0 %74 None - OpReturnValue %89 + %83 = OpLoad %_arr_mat2x3_f16_std140_uint_4_0 %74 None + OpReturnValue %83 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_fn.wgsl.expected.spvasm index aaeb265..446e373 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_fn.wgsl.expected.spvasm
@@ -67,12 +67,12 @@ %_ptr_Function__arr_mat2x3_f16_std140_uint_4_0 = OpTypePointer Function %_arr_mat2x3_f16_std140_uint_4_0 %_ptr_Function__arr_mat2v3half_uint_4 = OpTypePointer Function %_arr_mat2v3half_uint_4 %49 = OpConstantNull %_arr_mat2v3half_uint_4 +%_ptr_Uniform_v3half = OpTypePointer Uniform %v3half + %uint_1 = OpConstant %uint 1 +%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half %bool = OpTypeBool %_ptr_Function_mat2v3half = OpTypePointer Function %mat2v3half %_ptr_Function_mat2x3_f16_std140 = OpTypePointer Function %mat2x3_f16_std140 - %uint_1 = OpConstant %uint 1 -%_ptr_Uniform_v3half = OpTypePointer Uniform %v3half -%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half %94 = OpTypeFunction %_arr_mat2x3_f16_std140_uint_4_0 %_arr_mat2x3_f16_std140_uint_4 %_ptr_Function__arr_mat2x3_f16_std140_uint_4 = OpTypePointer Function %_arr_mat2x3_f16_std140_uint_4 %99 = OpConstantNull %_arr_mat2x3_f16_std140_uint_4_0 @@ -115,46 +115,46 @@ OpLoopMerge %54 %52 None OpBranch %51 %51 = OpLabel - %57 = OpUGreaterThanEqual %bool %55 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel + %81 = OpUGreaterThanEqual %bool %55 %uint_4 + OpSelectionMerge %83 None + OpBranchConditional %81 %84 %83 + %84 = OpLabel OpBranch %54 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_mat2v3half %47 %55 - %63 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %45 %55 - %65 = OpLoad %mat2x3_f16_std140 %63 None - %66 = OpCompositeExtract %v3half %65 0 - %67 = OpCompositeExtract %v3half %65 1 - %68 = OpCompositeConstruct %mat2v3half %66 %67 - OpStore %61 %68 None + %83 = OpLabel + %85 = OpAccessChain %_ptr_Function_mat2v3half %47 %55 + %87 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %45 %55 + %89 = OpLoad %mat2x3_f16_std140 %87 None + %90 = OpCompositeExtract %v3half %89 0 + %91 = OpCompositeExtract %v3half %89 1 + %92 = OpCompositeConstruct %mat2v3half %90 %91 + OpStore %85 %92 None OpBranch %52 %52 = OpLabel %56 = OpIAdd %uint %55 %uint_1 OpBranch %53 %54 = OpLabel - %70 = OpLoad %_arr_mat2v3half_uint_4 %47 None - %71 = OpFunctionCall %half %a %70 - %72 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_1 %uint_0 - %74 = OpLoad %v3half %72 None - %75 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_1 %uint_1 - %76 = OpLoad %v3half %75 None - %77 = OpCompositeConstruct %mat2v3half %74 %76 - %78 = OpFunctionCall %half %b %77 - %79 = OpFAdd %half %71 %78 - %80 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_1 %uint_0 - %81 = OpLoad %v3half %80 None - %82 = OpVectorShuffle %v3half %81 %81 2 0 1 - %83 = OpFunctionCall %half %c %82 - %84 = OpFAdd %half %79 %83 - %85 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_1 %uint_0 - %86 = OpLoad %v3half %85 None - %87 = OpVectorShuffle %v3half %86 %86 2 0 1 - %88 = OpCompositeExtract %half %87 0 - %89 = OpFunctionCall %half %d %88 - %90 = OpFAdd %half %84 %89 - %91 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 - OpStore %91 %90 None + %57 = OpLoad %_arr_mat2v3half_uint_4 %47 None + %58 = OpFunctionCall %half %a %57 + %59 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_1 %uint_0 + %62 = OpLoad %v3half %59 None + %63 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_1 %uint_1 + %64 = OpLoad %v3half %63 None + %65 = OpCompositeConstruct %mat2v3half %62 %64 + %66 = OpFunctionCall %half %b %65 + %67 = OpFAdd %half %58 %66 + %68 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_1 %uint_0 + %69 = OpLoad %v3half %68 None + %70 = OpVectorShuffle %v3half %69 %69 2 0 1 + %71 = OpFunctionCall %half %c %70 + %72 = OpFAdd %half %67 %71 + %73 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_1 %uint_0 + %74 = OpLoad %v3half %73 None + %75 = OpVectorShuffle %v3half %74 %74 2 0 1 + %76 = OpCompositeExtract %half %75 0 + %77 = OpFunctionCall %half %d %76 + %78 = OpFAdd %half %72 %77 + %79 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 + OpStore %79 %78 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat2x3_f16_std140_uint_4_0 None %94 @@ -171,21 +171,21 @@ OpLoopMerge %104 %102 None OpBranch %101 %101 = OpLabel - %107 = OpUGreaterThanEqual %bool %105 %uint_4 - OpSelectionMerge %108 None - OpBranchConditional %107 %109 %108 - %109 = OpLabel + %108 = OpUGreaterThanEqual %bool %105 %uint_4 + OpSelectionMerge %109 None + OpBranchConditional %108 %110 %109 + %110 = OpLabel OpBranch %104 - %108 = OpLabel - %110 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %96 %105 - %111 = OpLoad %mat2x3_f16_std140 %110 None - %112 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %98 %105 - OpStore %112 %111 None + %109 = OpLabel + %111 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %96 %105 + %112 = OpLoad %mat2x3_f16_std140 %111 None + %113 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %98 %105 + OpStore %113 %112 None OpBranch %102 %102 = OpLabel %106 = OpIAdd %uint %105 %uint_1 OpBranch %103 %104 = OpLabel - %113 = OpLoad %_arr_mat2x3_f16_std140_uint_4_0 %98 None - OpReturnValue %113 + %107 = OpLoad %_arr_mat2x3_f16_std140_uint_4_0 %98 None + OpReturnValue %107 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_private.wgsl.expected.spvasm index 04c45ca..e7255e5 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_private.wgsl.expected.spvasm
@@ -58,17 +58,17 @@ %_arr_mat2x3_f16_std140_uint_4_0 = OpTypeArray %mat2x3_f16_std140 %uint_4 %_ptr_Function__arr_mat2x3_f16_std140_uint_4_0 = OpTypePointer Function %_arr_mat2x3_f16_std140_uint_4_0 %_ptr_Function__arr_mat2v3half_uint_4 = OpTypePointer Function %_arr_mat2v3half_uint_4 - %bool = OpTypeBool -%_ptr_Function_mat2v3half = OpTypePointer Function %mat2v3half -%_ptr_Function_mat2x3_f16_std140 = OpTypePointer Function %mat2x3_f16_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Private_mat2v3half = OpTypePointer Private %mat2v3half + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v3half = OpTypePointer Uniform %v3half %uint_2 = OpConstant %uint 2 %_ptr_Private_v3half = OpTypePointer Private %v3half %_ptr_Uniform_half = OpTypePointer Uniform %half %_ptr_Private_half = OpTypePointer Private %half %_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half + %bool = OpTypeBool +%_ptr_Function_mat2v3half = OpTypePointer Function %mat2v3half +%_ptr_Function_mat2x3_f16_std140 = OpTypePointer Function %mat2x3_f16_std140 %81 = OpTypeFunction %_arr_mat2x3_f16_std140_uint_4_0 %_arr_mat2x3_f16_std140_uint_4 %_ptr_Function__arr_mat2x3_f16_std140_uint_4 = OpTypePointer Function %_arr_mat2x3_f16_std140_uint_4 %86 = OpConstantNull %_arr_mat2x3_f16_std140_uint_4_0 @@ -88,49 +88,49 @@ OpLoopMerge %37 %35 None OpBranch %34 %34 = OpLabel - %40 = OpUGreaterThanEqual %bool %38 %uint_4 - OpSelectionMerge %42 None - OpBranchConditional %40 %43 %42 - %43 = OpLabel + %68 = OpUGreaterThanEqual %bool %38 %uint_4 + OpSelectionMerge %70 None + OpBranchConditional %68 %71 %70 + %71 = OpLabel OpBranch %37 - %42 = OpLabel - %44 = OpAccessChain %_ptr_Function_mat2v3half %31 %38 - %46 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %29 %38 - %48 = OpLoad %mat2x3_f16_std140 %46 None - %49 = OpCompositeExtract %v3half %48 0 - %50 = OpCompositeExtract %v3half %48 1 - %51 = OpCompositeConstruct %mat2v3half %49 %50 - OpStore %44 %51 None + %70 = OpLabel + %72 = OpAccessChain %_ptr_Function_mat2v3half %31 %38 + %74 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %29 %38 + %76 = OpLoad %mat2x3_f16_std140 %74 None + %77 = OpCompositeExtract %v3half %76 0 + %78 = OpCompositeExtract %v3half %76 1 + %79 = OpCompositeConstruct %mat2v3half %77 %78 + OpStore %72 %79 None OpBranch %35 %35 = OpLabel %39 = OpIAdd %uint %38 %uint_1 OpBranch %36 %37 = OpLabel - %53 = OpLoad %_arr_mat2v3half_uint_4 %31 None - OpStore %p %53 None - %54 = OpAccessChain %_ptr_Private_mat2v3half %p %uint_1 - %56 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_0 - %59 = OpLoad %v3half %56 None - %60 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 - %61 = OpLoad %v3half %60 None - %62 = OpCompositeConstruct %mat2v3half %59 %61 - OpStore %54 %62 None + %40 = OpLoad %_arr_mat2v3half_uint_4 %31 None + OpStore %p %40 None + %41 = OpAccessChain %_ptr_Private_mat2v3half %p %uint_1 + %44 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_0 + %47 = OpLoad %v3half %44 None + %48 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 + %49 = OpLoad %v3half %48 None + %50 = OpCompositeConstruct %mat2v3half %47 %49 + OpStore %41 %50 None + %51 = OpAccessChain %_ptr_Private_v3half %p %uint_1 %uint_0 + %53 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_1 + %54 = OpLoad %v3half %53 None + %55 = OpVectorShuffle %v3half %54 %54 2 0 1 + OpStore %51 %55 None + %56 = OpAccessChain %_ptr_Private_v3half %p %uint_1 %uint_0 + %57 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_1 + %58 = OpAccessChain %_ptr_Uniform_half %57 %uint_0 + %60 = OpLoad %half %58 None + %61 = OpAccessChain %_ptr_Private_half %56 %uint_0 + OpStore %61 %60 None %63 = OpAccessChain %_ptr_Private_v3half %p %uint_1 %uint_0 - %65 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_1 - %66 = OpLoad %v3half %65 None - %67 = OpVectorShuffle %v3half %66 %66 2 0 1 - OpStore %63 %67 None - %68 = OpAccessChain %_ptr_Private_v3half %p %uint_1 %uint_0 - %69 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_1 - %70 = OpAccessChain %_ptr_Uniform_half %69 %uint_0 - %72 = OpLoad %half %70 None - %73 = OpAccessChain %_ptr_Private_half %68 %uint_0 - OpStore %73 %72 None - %75 = OpAccessChain %_ptr_Private_v3half %p %uint_1 %uint_0 - %76 = OpAccessChain %_ptr_Private_half %75 %uint_0 - %77 = OpLoad %half %76 None - %78 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 - OpStore %78 %77 None + %64 = OpAccessChain %_ptr_Private_half %63 %uint_0 + %65 = OpLoad %half %64 None + %66 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 + OpStore %66 %65 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat2x3_f16_std140_uint_4_0 None %81 @@ -147,21 +147,21 @@ OpLoopMerge %91 %89 None OpBranch %88 %88 = OpLabel - %94 = OpUGreaterThanEqual %bool %92 %uint_4 - OpSelectionMerge %95 None - OpBranchConditional %94 %96 %95 - %96 = OpLabel + %95 = OpUGreaterThanEqual %bool %92 %uint_4 + OpSelectionMerge %96 None + OpBranchConditional %95 %97 %96 + %97 = OpLabel OpBranch %91 - %95 = OpLabel - %97 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %83 %92 - %98 = OpLoad %mat2x3_f16_std140 %97 None - %99 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %85 %92 - OpStore %99 %98 None + %96 = OpLabel + %98 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %83 %92 + %99 = OpLoad %mat2x3_f16_std140 %98 None + %100 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %85 %92 + OpStore %100 %99 None OpBranch %89 %89 = OpLabel %93 = OpIAdd %uint %92 %uint_1 OpBranch %90 %91 = OpLabel - %100 = OpLoad %_arr_mat2x3_f16_std140_uint_4_0 %85 None - OpReturnValue %100 + %94 = OpLoad %_arr_mat2x3_f16_std140_uint_4_0 %85 None + OpReturnValue %94 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_storage.wgsl.expected.spvasm index 0922e58..5a5479f 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_storage.wgsl.expected.spvasm
@@ -64,16 +64,16 @@ %_arr_mat2v3half_uint_4_0 = OpTypeArray %mat2v3half %uint_4 %_ptr_Function__arr_mat2v3half_uint_4_0 = OpTypePointer Function %_arr_mat2v3half_uint_4_0 %31 = OpConstantNull %_arr_mat2v3half_uint_4_0 - %bool = OpTypeBool -%_ptr_Function_mat2v3half = OpTypePointer Function %mat2v3half -%_ptr_Function_mat2x3_f16_std140 = OpTypePointer Function %mat2x3_f16_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v3half = OpTypePointer Uniform %v3half %uint_2 = OpConstant %uint 2 + %uint_1 = OpConstant %uint 1 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1 %_ptr_StorageBuffer_v3half = OpTypePointer StorageBuffer %v3half %_ptr_Uniform_half = OpTypePointer Uniform %half %_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half + %bool = OpTypeBool +%_ptr_Function_mat2v3half = OpTypePointer Function %mat2v3half +%_ptr_Function_mat2x3_f16_std140 = OpTypePointer Function %mat2x3_f16_std140 %79 = OpTypeFunction %void %_arr_mat2v3half_uint_4_0 %98 = OpTypeFunction %void %_arr_uint_uint_1 %mat2v3half %106 = OpTypeFunction %_arr_mat2x3_f16_std140_uint_4_0 %_arr_mat2x3_f16_std140_uint_4 @@ -95,44 +95,44 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_4 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %66 = OpUGreaterThanEqual %bool %37 %uint_4 + OpSelectionMerge %68 None + OpBranchConditional %66 %69 %68 + %69 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Function_mat2v3half %28 %37 - %45 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %26 %37 - %47 = OpLoad %mat2x3_f16_std140 %45 None - %48 = OpCompositeExtract %v3half %47 0 - %49 = OpCompositeExtract %v3half %47 1 - %50 = OpCompositeConstruct %mat2v3half %48 %49 - OpStore %43 %50 None + %68 = OpLabel + %70 = OpAccessChain %_ptr_Function_mat2v3half %28 %37 + %72 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %26 %37 + %74 = OpLoad %mat2x3_f16_std140 %72 None + %75 = OpCompositeExtract %v3half %74 0 + %76 = OpCompositeExtract %v3half %74 1 + %77 = OpCompositeConstruct %mat2v3half %75 %76 + OpStore %70 %77 None OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel - %52 = OpLoad %_arr_mat2v3half_uint_4_0 %28 None - %53 = OpFunctionCall %void %tint_store_and_preserve_padding %52 - %55 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_0 - %58 = OpLoad %v3half %55 None - %59 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 - %60 = OpLoad %v3half %59 None - %61 = OpCompositeConstruct %mat2v3half %58 %60 - %63 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 - %64 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %63 %61 - %66 = OpAccessChain %_ptr_StorageBuffer_v3half %10 %uint_0 %uint_1 %uint_0 - %68 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_1 - %69 = OpLoad %v3half %68 None - %70 = OpVectorShuffle %v3half %69 %69 2 0 1 - OpStore %66 %70 None - %71 = OpAccessChain %_ptr_StorageBuffer_v3half %10 %uint_0 %uint_1 %uint_0 - %72 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_1 - %73 = OpAccessChain %_ptr_Uniform_half %72 %uint_0 - %75 = OpLoad %half %73 None - %76 = OpAccessChain %_ptr_StorageBuffer_half %71 %uint_0 - OpStore %76 %75 None + %39 = OpLoad %_arr_mat2v3half_uint_4_0 %28 None + %40 = OpFunctionCall %void %tint_store_and_preserve_padding %39 + %42 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_0 + %45 = OpLoad %v3half %42 None + %46 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 + %48 = OpLoad %v3half %46 None + %49 = OpCompositeConstruct %mat2v3half %45 %48 + %51 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 + %52 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %51 %49 + %54 = OpAccessChain %_ptr_StorageBuffer_v3half %10 %uint_0 %uint_1 %uint_0 + %56 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_1 + %57 = OpLoad %v3half %56 None + %58 = OpVectorShuffle %v3half %57 %57 2 0 1 + OpStore %54 %58 None + %59 = OpAccessChain %_ptr_StorageBuffer_v3half %10 %uint_0 %uint_1 %uint_0 + %60 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_1 + %61 = OpAccessChain %_ptr_Uniform_half %60 %uint_0 + %63 = OpLoad %half %61 None + %64 = OpAccessChain %_ptr_StorageBuffer_half %59 %uint_0 + OpStore %64 %63 None OpReturn OpFunctionEnd %tint_store_and_preserve_padding = OpFunction %void None %79 @@ -192,21 +192,21 @@ OpLoopMerge %116 %114 None OpBranch %113 %113 = OpLabel - %119 = OpUGreaterThanEqual %bool %117 %uint_4 - OpSelectionMerge %120 None - OpBranchConditional %119 %121 %120 - %121 = OpLabel + %120 = OpUGreaterThanEqual %bool %117 %uint_4 + OpSelectionMerge %121 None + OpBranchConditional %120 %122 %121 + %122 = OpLabel OpBranch %116 - %120 = OpLabel - %122 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %108 %117 - %123 = OpLoad %mat2x3_f16_std140 %122 None - %124 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %110 %117 - OpStore %124 %123 None + %121 = OpLabel + %123 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %108 %117 + %124 = OpLoad %mat2x3_f16_std140 %123 None + %125 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %110 %117 + OpStore %125 %124 None OpBranch %114 %114 = OpLabel %118 = OpIAdd %uint %117 %uint_1 OpBranch %115 %116 = OpLabel - %125 = OpLoad %_arr_mat2x3_f16_std140_uint_4_0 %110 None - OpReturnValue %125 + %119 = OpLoad %_arr_mat2x3_f16_std140_uint_4_0 %110 None + OpReturnValue %119 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_workgroup.wgsl.expected.spvasm index 0df88f0..e118d97 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_workgroup.wgsl.expected.spvasm
@@ -58,10 +58,6 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %22 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_mat2v3half = OpTypePointer Workgroup %mat2v3half - %37 = OpConstantNull %mat2v3half - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_mat2x3_f16_std140_uint_4 = OpTypePointer Uniform %_arr_mat2x3_f16_std140_uint_4 @@ -69,14 +65,18 @@ %_arr_mat2x3_f16_std140_uint_4_0 = OpTypeArray %mat2x3_f16_std140 %uint_4 %_ptr_Function__arr_mat2x3_f16_std140_uint_4_0 = OpTypePointer Function %_arr_mat2x3_f16_std140_uint_4_0 %_ptr_Function__arr_mat2v3half_uint_4 = OpTypePointer Function %_arr_mat2v3half_uint_4 - %53 = OpConstantNull %_arr_mat2v3half_uint_4 -%_ptr_Function_mat2v3half = OpTypePointer Function %mat2v3half -%_ptr_Function_mat2x3_f16_std140 = OpTypePointer Function %mat2x3_f16_std140 + %45 = OpConstantNull %_arr_mat2v3half_uint_4 +%_ptr_Workgroup_mat2v3half = OpTypePointer Workgroup %mat2v3half + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v3half = OpTypePointer Uniform %v3half %_ptr_Workgroup_v3half = OpTypePointer Workgroup %v3half %_ptr_Uniform_half = OpTypePointer Uniform %half %_ptr_Workgroup_half = OpTypePointer Workgroup %half %_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half + %bool = OpTypeBool + %85 = OpConstantNull %mat2v3half +%_ptr_Function_mat2v3half = OpTypePointer Function %mat2v3half +%_ptr_Function_mat2x3_f16_std140 = OpTypePointer Function %mat2x3_f16_std140 %98 = OpTypeFunction %void %103 = OpTypeFunction %_arr_mat2x3_f16_std140_uint_4_0 %_arr_mat2x3_f16_std140_uint_4 %_ptr_Function__arr_mat2x3_f16_std140_uint_4 = OpTypePointer Function %_arr_mat2x3_f16_std140_uint_4 @@ -84,8 +84,8 @@ %f_inner = OpFunction %void None %22 %tint_local_index = OpFunctionParameter %uint %23 = OpLabel - %49 = OpVariable %_ptr_Function__arr_mat2x3_f16_std140_uint_4_0 Function - %51 = OpVariable %_ptr_Function__arr_mat2v3half_uint_4 Function %53 + %41 = OpVariable %_ptr_Function__arr_mat2x3_f16_std140_uint_4_0 Function + %43 = OpVariable %_ptr_Function__arr_mat2v3half_uint_4 Function %45 OpBranch %24 %24 = OpLabel OpBranch %27 @@ -94,75 +94,75 @@ OpLoopMerge %28 %26 None OpBranch %25 %25 = OpLabel - %31 = OpUGreaterThanEqual %bool %29 %uint_4 - OpSelectionMerge %33 None - OpBranchConditional %31 %34 %33 - %34 = OpLabel + %80 = OpUGreaterThanEqual %bool %29 %uint_4 + OpSelectionMerge %82 None + OpBranchConditional %80 %83 %82 + %83 = OpLabel OpBranch %28 - %33 = OpLabel - %35 = OpAccessChain %_ptr_Workgroup_mat2v3half %w %29 - OpStore %35 %37 None + %82 = OpLabel + %84 = OpAccessChain %_ptr_Workgroup_mat2v3half %w %29 + OpStore %84 %85 None OpBranch %26 %26 = OpLabel %30 = OpIAdd %uint %29 %uint_1 OpBranch %27 %28 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %42 = OpAccessChain %_ptr_Uniform__arr_mat2x3_f16_std140_uint_4 %1 %uint_0 - %45 = OpLoad %_arr_mat2x3_f16_std140_uint_4 %42 None - %46 = OpFunctionCall %_arr_mat2x3_f16_std140_uint_4_0 %tint_convert_explicit_layout %45 - OpStore %49 %46 - OpBranch %54 - %54 = OpLabel - OpBranch %57 - %57 = OpLabel - %59 = OpPhi %uint %uint_0 %54 %60 %56 - OpLoopMerge %58 %56 None - OpBranch %55 - %55 = OpLabel - %61 = OpUGreaterThanEqual %bool %59 %uint_4 - OpSelectionMerge %62 None - OpBranchConditional %61 %63 %62 - %63 = OpLabel - OpBranch %58 - %62 = OpLabel - %64 = OpAccessChain %_ptr_Function_mat2v3half %51 %59 - %66 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %49 %59 - %68 = OpLoad %mat2x3_f16_std140 %66 None - %69 = OpCompositeExtract %v3half %68 0 - %70 = OpCompositeExtract %v3half %68 1 - %71 = OpCompositeConstruct %mat2v3half %69 %70 - OpStore %64 %71 None - OpBranch %56 - %56 = OpLabel - %60 = OpIAdd %uint %59 %uint_1 - OpBranch %57 - %58 = OpLabel - %72 = OpLoad %_arr_mat2v3half_uint_4 %51 None - OpStore %w %72 None - %73 = OpAccessChain %_ptr_Workgroup_mat2v3half %w %uint_1 - %74 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_0 - %76 = OpLoad %v3half %74 None - %77 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 - %78 = OpLoad %v3half %77 None - %79 = OpCompositeConstruct %mat2v3half %76 %78 - OpStore %73 %79 None - %80 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 %uint_0 - %82 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_1 - %83 = OpLoad %v3half %82 None - %84 = OpVectorShuffle %v3half %83 %83 2 0 1 - OpStore %80 %84 None - %85 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 %uint_0 - %86 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_1 - %87 = OpAccessChain %_ptr_Uniform_half %86 %uint_0 - %89 = OpLoad %half %87 None - %90 = OpAccessChain %_ptr_Workgroup_half %85 %uint_0 - OpStore %90 %89 None - %92 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 %uint_0 - %93 = OpAccessChain %_ptr_Workgroup_half %92 %uint_0 - %94 = OpLoad %half %93 None - %95 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 - OpStore %95 %94 None + %34 = OpAccessChain %_ptr_Uniform__arr_mat2x3_f16_std140_uint_4 %1 %uint_0 + %37 = OpLoad %_arr_mat2x3_f16_std140_uint_4 %34 None + %38 = OpFunctionCall %_arr_mat2x3_f16_std140_uint_4_0 %tint_convert_explicit_layout %37 + OpStore %41 %38 + OpBranch %46 + %46 = OpLabel + OpBranch %49 + %49 = OpLabel + %51 = OpPhi %uint %uint_0 %46 %52 %48 + OpLoopMerge %50 %48 None + OpBranch %47 + %47 = OpLabel + %86 = OpUGreaterThanEqual %bool %51 %uint_4 + OpSelectionMerge %87 None + OpBranchConditional %86 %88 %87 + %88 = OpLabel + OpBranch %50 + %87 = OpLabel + %89 = OpAccessChain %_ptr_Function_mat2v3half %43 %51 + %91 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %41 %51 + %93 = OpLoad %mat2x3_f16_std140 %91 None + %94 = OpCompositeExtract %v3half %93 0 + %95 = OpCompositeExtract %v3half %93 1 + %96 = OpCompositeConstruct %mat2v3half %94 %95 + OpStore %89 %96 None + OpBranch %48 + %48 = OpLabel + %52 = OpIAdd %uint %51 %uint_1 + OpBranch %49 + %50 = OpLabel + %53 = OpLoad %_arr_mat2v3half_uint_4 %43 None + OpStore %w %53 None + %54 = OpAccessChain %_ptr_Workgroup_mat2v3half %w %uint_1 + %57 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_0 + %59 = OpLoad %v3half %57 None + %60 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 + %61 = OpLoad %v3half %60 None + %62 = OpCompositeConstruct %mat2v3half %59 %61 + OpStore %54 %62 None + %63 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 %uint_0 + %65 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_1 + %66 = OpLoad %v3half %65 None + %67 = OpVectorShuffle %v3half %66 %66 2 0 1 + OpStore %63 %67 None + %68 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 %uint_0 + %69 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_1 + %70 = OpAccessChain %_ptr_Uniform_half %69 %uint_0 + %72 = OpLoad %half %70 None + %73 = OpAccessChain %_ptr_Workgroup_half %68 %uint_0 + OpStore %73 %72 None + %75 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 %uint_0 + %76 = OpAccessChain %_ptr_Workgroup_half %75 %uint_0 + %77 = OpLoad %half %76 None + %78 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 + OpStore %78 %77 None OpReturn OpFunctionEnd %f = OpFunction %void None %98 @@ -185,21 +185,21 @@ OpLoopMerge %113 %111 None OpBranch %110 %110 = OpLabel - %116 = OpUGreaterThanEqual %bool %114 %uint_4 - OpSelectionMerge %117 None - OpBranchConditional %116 %118 %117 - %118 = OpLabel + %117 = OpUGreaterThanEqual %bool %114 %uint_4 + OpSelectionMerge %118 None + OpBranchConditional %117 %119 %118 + %119 = OpLabel OpBranch %113 - %117 = OpLabel - %119 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %105 %114 - %120 = OpLoad %mat2x3_f16_std140 %119 None - %121 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %107 %114 - OpStore %121 %120 None + %118 = OpLabel + %120 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %105 %114 + %121 = OpLoad %mat2x3_f16_std140 %120 None + %122 = OpAccessChain %_ptr_Function_mat2x3_f16_std140 %107 %114 + OpStore %122 %121 None OpBranch %111 %111 = OpLabel %115 = OpIAdd %uint %114 %uint_1 OpBranch %112 %113 = OpLabel - %122 = OpLoad %_arr_mat2x3_f16_std140_uint_4_0 %107 None - OpReturnValue %122 + %116 = OpLoad %_arr_mat2x3_f16_std140_uint_4_0 %107 None + OpReturnValue %116 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.spvasm index ec57429..805dc2f 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -69,9 +69,9 @@ %_arr_mat2v3float_uint_4 = OpTypeArray %mat2v3float %uint_4 %_ptr_Function__arr_mat2v3float_uint_4 = OpTypePointer Function %_arr_mat2v3float_uint_4 %61 = OpConstantNull %_arr_mat2v3float_uint_4 +%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %bool = OpTypeBool %_ptr_Function_mat2x3_f32_std140 = OpTypePointer Function %mat2x3_f32_std140 -%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %91 = OpTypeFunction %_arr_mat2x3_f32_std140_uint_4_0 %_arr_mat2x3_f32_std140_uint_4 %_ptr_Function__arr_mat2x3_f32_std140_uint_4 = OpTypePointer Function %_arr_mat2x3_f32_std140_uint_4 %96 = OpConstantNull %_arr_mat2x3_f32_std140_uint_4_0 @@ -114,34 +114,34 @@ OpLoopMerge %66 %64 None OpBranch %63 %63 = OpLabel - %69 = OpUGreaterThanEqual %bool %67 %uint_4 - OpSelectionMerge %71 None - OpBranchConditional %69 %72 %71 - %72 = OpLabel + %79 = OpUGreaterThanEqual %bool %67 %uint_4 + OpSelectionMerge %81 None + OpBranchConditional %79 %82 %81 + %82 = OpLabel OpBranch %66 - %71 = OpLabel - %73 = OpAccessChain %_ptr_Function_mat2v3float %58 %67 - %74 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %56 %67 - %76 = OpLoad %mat2x3_f32_std140 %74 None - %77 = OpCompositeExtract %v3float %76 0 - %78 = OpCompositeExtract %v3float %76 1 - %79 = OpCompositeConstruct %mat2v3float %77 %78 - OpStore %73 %79 None + %81 = OpLabel + %83 = OpAccessChain %_ptr_Function_mat2v3float %58 %67 + %84 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %56 %67 + %86 = OpLoad %mat2x3_f32_std140 %84 None + %87 = OpCompositeExtract %v3float %86 0 + %88 = OpCompositeExtract %v3float %86 1 + %89 = OpCompositeConstruct %mat2v3float %87 %88 + OpStore %83 %89 None OpBranch %64 %64 = OpLabel %68 = OpIAdd %uint %67 %uint_1 OpBranch %65 %66 = OpLabel %l_a = OpLoad %_arr_mat2v3float_uint_4 %58 None - %81 = OpCompositeExtract %float %l_a_i_i 0 - %82 = OpCompositeExtract %float %l_a 0 0 0 - %83 = OpFAdd %float %81 %82 - %84 = OpCompositeExtract %float %l_a_i 0 0 - %85 = OpFAdd %float %83 %84 - %86 = OpCompositeExtract %float %l_a_i_i 0 - %87 = OpFAdd %float %85 %86 - %88 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 - OpStore %88 %87 None + %70 = OpCompositeExtract %float %l_a_i_i 0 + %71 = OpCompositeExtract %float %l_a 0 0 0 + %72 = OpFAdd %float %70 %71 + %73 = OpCompositeExtract %float %l_a_i 0 0 + %74 = OpFAdd %float %72 %73 + %75 = OpCompositeExtract %float %l_a_i_i 0 + %76 = OpFAdd %float %74 %75 + %77 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 + OpStore %77 %76 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat2x3_f32_std140_uint_4_0 None %91 @@ -158,21 +158,21 @@ OpLoopMerge %101 %99 None OpBranch %98 %98 = OpLabel - %104 = OpUGreaterThanEqual %bool %102 %uint_4 - OpSelectionMerge %105 None - OpBranchConditional %104 %106 %105 - %106 = OpLabel + %105 = OpUGreaterThanEqual %bool %102 %uint_4 + OpSelectionMerge %106 None + OpBranchConditional %105 %107 %106 + %107 = OpLabel OpBranch %101 - %105 = OpLabel - %107 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %93 %102 - %108 = OpLoad %mat2x3_f32_std140 %107 None - %109 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %95 %102 - OpStore %109 %108 None + %106 = OpLabel + %108 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %93 %102 + %109 = OpLoad %mat2x3_f32_std140 %108 None + %110 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %95 %102 + OpStore %110 %109 None OpBranch %99 %99 = OpLabel %103 = OpIAdd %uint %102 %uint_1 OpBranch %100 %101 = OpLabel - %110 = OpLoad %_arr_mat2x3_f32_std140_uint_4_0 %95 None - OpReturnValue %110 + %104 = OpLoad %_arr_mat2x3_f32_std140_uint_4_0 %95 None + OpReturnValue %104 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.spvasm index 6016eeb..202c5c2 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.spvasm
@@ -58,10 +58,10 @@ %_arr_mat2v3float_uint_4 = OpTypeArray %mat2v3float %uint_4 %_ptr_Function__arr_mat2v3float_uint_4 = OpTypePointer Function %_arr_mat2v3float_uint_4 %39 = OpConstantNull %_arr_mat2v3float_uint_4 +%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %bool = OpTypeBool %_ptr_Function_mat2v3float = OpTypePointer Function %mat2v3float %_ptr_Function_mat2x3_f32_std140 = OpTypePointer Function %mat2x3_f32_std140 -%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %70 = OpTypeFunction %_arr_mat2x3_f32_std140_uint_4_0 %_arr_mat2x3_f32_std140_uint_4 %_ptr_Function__arr_mat2x3_f32_std140_uint_4 = OpTypePointer Function %_arr_mat2x3_f32_std140_uint_4 %75 = OpConstantNull %_arr_mat2x3_f32_std140_uint_4_0 @@ -87,34 +87,34 @@ OpLoopMerge %44 %42 None OpBranch %41 %41 = OpLabel - %47 = OpUGreaterThanEqual %bool %45 %uint_4 - OpSelectionMerge %49 None - OpBranchConditional %47 %50 %49 - %50 = OpLabel + %57 = OpUGreaterThanEqual %bool %45 %uint_4 + OpSelectionMerge %59 None + OpBranchConditional %57 %60 %59 + %60 = OpLabel OpBranch %44 - %49 = OpLabel - %51 = OpAccessChain %_ptr_Function_mat2v3float %36 %45 - %53 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %34 %45 - %55 = OpLoad %mat2x3_f32_std140 %53 None - %56 = OpCompositeExtract %v3float %55 0 - %57 = OpCompositeExtract %v3float %55 1 - %58 = OpCompositeConstruct %mat2v3float %56 %57 - OpStore %51 %58 None + %59 = OpLabel + %61 = OpAccessChain %_ptr_Function_mat2v3float %36 %45 + %63 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %34 %45 + %65 = OpLoad %mat2x3_f32_std140 %63 None + %66 = OpCompositeExtract %v3float %65 0 + %67 = OpCompositeExtract %v3float %65 1 + %68 = OpCompositeConstruct %mat2v3float %66 %67 + OpStore %61 %68 None OpBranch %42 %42 = OpLabel %46 = OpIAdd %uint %45 %uint_1 OpBranch %43 %44 = OpLabel %l_a = OpLoad %_arr_mat2v3float_uint_4 %36 None - %60 = OpCompositeExtract %float %l_a_i_i 0 - %61 = OpCompositeExtract %float %l_a 0 0 0 - %62 = OpFAdd %float %60 %61 - %63 = OpCompositeExtract %float %l_a_i 0 0 - %64 = OpFAdd %float %62 %63 - %65 = OpCompositeExtract %float %l_a_i_i 0 - %66 = OpFAdd %float %64 %65 - %67 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 - OpStore %67 %66 None + %48 = OpCompositeExtract %float %l_a_i_i 0 + %49 = OpCompositeExtract %float %l_a 0 0 0 + %50 = OpFAdd %float %48 %49 + %51 = OpCompositeExtract %float %l_a_i 0 0 + %52 = OpFAdd %float %50 %51 + %53 = OpCompositeExtract %float %l_a_i_i 0 + %54 = OpFAdd %float %52 %53 + %55 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 + OpStore %55 %54 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat2x3_f32_std140_uint_4_0 None %70 @@ -131,21 +131,21 @@ OpLoopMerge %80 %78 None OpBranch %77 %77 = OpLabel - %83 = OpUGreaterThanEqual %bool %81 %uint_4 - OpSelectionMerge %84 None - OpBranchConditional %83 %85 %84 - %85 = OpLabel + %84 = OpUGreaterThanEqual %bool %81 %uint_4 + OpSelectionMerge %85 None + OpBranchConditional %84 %86 %85 + %86 = OpLabel OpBranch %80 - %84 = OpLabel - %86 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %72 %81 - %87 = OpLoad %mat2x3_f32_std140 %86 None - %88 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %74 %81 - OpStore %88 %87 None + %85 = OpLabel + %87 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %72 %81 + %88 = OpLoad %mat2x3_f32_std140 %87 None + %89 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %74 %81 + OpStore %89 %88 None OpBranch %78 %78 = OpLabel %82 = OpIAdd %uint %81 %uint_1 OpBranch %79 %80 = OpLabel - %89 = OpLoad %_arr_mat2x3_f32_std140_uint_4_0 %74 None - OpReturnValue %89 + %83 = OpLoad %_arr_mat2x3_f32_std140_uint_4_0 %74 None + OpReturnValue %83 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_fn.wgsl.expected.spvasm index e28fa6c..5de8d09 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_fn.wgsl.expected.spvasm
@@ -64,12 +64,12 @@ %_ptr_Function__arr_mat2x3_f32_std140_uint_4_0 = OpTypePointer Function %_arr_mat2x3_f32_std140_uint_4_0 %_ptr_Function__arr_mat2v3float_uint_4 = OpTypePointer Function %_arr_mat2v3float_uint_4 %49 = OpConstantNull %_arr_mat2v3float_uint_4 +%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float + %uint_1 = OpConstant %uint 1 +%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %bool = OpTypeBool %_ptr_Function_mat2v3float = OpTypePointer Function %mat2v3float %_ptr_Function_mat2x3_f32_std140 = OpTypePointer Function %mat2x3_f32_std140 - %uint_1 = OpConstant %uint 1 -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float -%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %94 = OpTypeFunction %_arr_mat2x3_f32_std140_uint_4_0 %_arr_mat2x3_f32_std140_uint_4 %_ptr_Function__arr_mat2x3_f32_std140_uint_4 = OpTypePointer Function %_arr_mat2x3_f32_std140_uint_4 %99 = OpConstantNull %_arr_mat2x3_f32_std140_uint_4_0 @@ -112,46 +112,46 @@ OpLoopMerge %54 %52 None OpBranch %51 %51 = OpLabel - %57 = OpUGreaterThanEqual %bool %55 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel + %81 = OpUGreaterThanEqual %bool %55 %uint_4 + OpSelectionMerge %83 None + OpBranchConditional %81 %84 %83 + %84 = OpLabel OpBranch %54 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_mat2v3float %47 %55 - %63 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %45 %55 - %65 = OpLoad %mat2x3_f32_std140 %63 None - %66 = OpCompositeExtract %v3float %65 0 - %67 = OpCompositeExtract %v3float %65 1 - %68 = OpCompositeConstruct %mat2v3float %66 %67 - OpStore %61 %68 None + %83 = OpLabel + %85 = OpAccessChain %_ptr_Function_mat2v3float %47 %55 + %87 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %45 %55 + %89 = OpLoad %mat2x3_f32_std140 %87 None + %90 = OpCompositeExtract %v3float %89 0 + %91 = OpCompositeExtract %v3float %89 1 + %92 = OpCompositeConstruct %mat2v3float %90 %91 + OpStore %85 %92 None OpBranch %52 %52 = OpLabel %56 = OpIAdd %uint %55 %uint_1 OpBranch %53 %54 = OpLabel - %70 = OpLoad %_arr_mat2v3float_uint_4 %47 None - %71 = OpFunctionCall %float %a %70 - %72 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_0 - %74 = OpLoad %v3float %72 None - %75 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_1 - %76 = OpLoad %v3float %75 None - %77 = OpCompositeConstruct %mat2v3float %74 %76 - %78 = OpFunctionCall %float %b %77 - %79 = OpFAdd %float %71 %78 - %80 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_0 - %81 = OpLoad %v3float %80 None - %82 = OpVectorShuffle %v3float %81 %81 2 0 1 - %83 = OpFunctionCall %float %c %82 - %84 = OpFAdd %float %79 %83 - %85 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_0 - %86 = OpLoad %v3float %85 None - %87 = OpVectorShuffle %v3float %86 %86 2 0 1 - %88 = OpCompositeExtract %float %87 0 - %89 = OpFunctionCall %float %d %88 - %90 = OpFAdd %float %84 %89 - %91 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 - OpStore %91 %90 None + %57 = OpLoad %_arr_mat2v3float_uint_4 %47 None + %58 = OpFunctionCall %float %a %57 + %59 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_0 + %62 = OpLoad %v3float %59 None + %63 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_1 + %64 = OpLoad %v3float %63 None + %65 = OpCompositeConstruct %mat2v3float %62 %64 + %66 = OpFunctionCall %float %b %65 + %67 = OpFAdd %float %58 %66 + %68 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_0 + %69 = OpLoad %v3float %68 None + %70 = OpVectorShuffle %v3float %69 %69 2 0 1 + %71 = OpFunctionCall %float %c %70 + %72 = OpFAdd %float %67 %71 + %73 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_0 + %74 = OpLoad %v3float %73 None + %75 = OpVectorShuffle %v3float %74 %74 2 0 1 + %76 = OpCompositeExtract %float %75 0 + %77 = OpFunctionCall %float %d %76 + %78 = OpFAdd %float %72 %77 + %79 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 + OpStore %79 %78 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat2x3_f32_std140_uint_4_0 None %94 @@ -168,21 +168,21 @@ OpLoopMerge %104 %102 None OpBranch %101 %101 = OpLabel - %107 = OpUGreaterThanEqual %bool %105 %uint_4 - OpSelectionMerge %108 None - OpBranchConditional %107 %109 %108 - %109 = OpLabel + %108 = OpUGreaterThanEqual %bool %105 %uint_4 + OpSelectionMerge %109 None + OpBranchConditional %108 %110 %109 + %110 = OpLabel OpBranch %104 - %108 = OpLabel - %110 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %96 %105 - %111 = OpLoad %mat2x3_f32_std140 %110 None - %112 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %98 %105 - OpStore %112 %111 None + %109 = OpLabel + %111 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %96 %105 + %112 = OpLoad %mat2x3_f32_std140 %111 None + %113 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %98 %105 + OpStore %113 %112 None OpBranch %102 %102 = OpLabel %106 = OpIAdd %uint %105 %uint_1 OpBranch %103 %104 = OpLabel - %113 = OpLoad %_arr_mat2x3_f32_std140_uint_4_0 %98 None - OpReturnValue %113 + %107 = OpLoad %_arr_mat2x3_f32_std140_uint_4_0 %98 None + OpReturnValue %107 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_private.wgsl.expected.spvasm index d3574c1..0b03976 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_private.wgsl.expected.spvasm
@@ -55,17 +55,17 @@ %_arr_mat2x3_f32_std140_uint_4_0 = OpTypeArray %mat2x3_f32_std140 %uint_4 %_ptr_Function__arr_mat2x3_f32_std140_uint_4_0 = OpTypePointer Function %_arr_mat2x3_f32_std140_uint_4_0 %_ptr_Function__arr_mat2v3float_uint_4 = OpTypePointer Function %_arr_mat2v3float_uint_4 - %bool = OpTypeBool -%_ptr_Function_mat2v3float = OpTypePointer Function %mat2v3float -%_ptr_Function_mat2x3_f32_std140 = OpTypePointer Function %mat2x3_f32_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Private_mat2v3float = OpTypePointer Private %mat2v3float + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float %uint_2 = OpConstant %uint 2 %_ptr_Private_v3float = OpTypePointer Private %v3float %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Private_float = OpTypePointer Private %float %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float + %bool = OpTypeBool +%_ptr_Function_mat2v3float = OpTypePointer Function %mat2v3float +%_ptr_Function_mat2x3_f32_std140 = OpTypePointer Function %mat2x3_f32_std140 %81 = OpTypeFunction %_arr_mat2x3_f32_std140_uint_4_0 %_arr_mat2x3_f32_std140_uint_4 %_ptr_Function__arr_mat2x3_f32_std140_uint_4 = OpTypePointer Function %_arr_mat2x3_f32_std140_uint_4 %86 = OpConstantNull %_arr_mat2x3_f32_std140_uint_4_0 @@ -85,49 +85,49 @@ OpLoopMerge %37 %35 None OpBranch %34 %34 = OpLabel - %40 = OpUGreaterThanEqual %bool %38 %uint_4 - OpSelectionMerge %42 None - OpBranchConditional %40 %43 %42 - %43 = OpLabel + %68 = OpUGreaterThanEqual %bool %38 %uint_4 + OpSelectionMerge %70 None + OpBranchConditional %68 %71 %70 + %71 = OpLabel OpBranch %37 - %42 = OpLabel - %44 = OpAccessChain %_ptr_Function_mat2v3float %31 %38 - %46 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %29 %38 - %48 = OpLoad %mat2x3_f32_std140 %46 None - %49 = OpCompositeExtract %v3float %48 0 - %50 = OpCompositeExtract %v3float %48 1 - %51 = OpCompositeConstruct %mat2v3float %49 %50 - OpStore %44 %51 None + %70 = OpLabel + %72 = OpAccessChain %_ptr_Function_mat2v3float %31 %38 + %74 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %29 %38 + %76 = OpLoad %mat2x3_f32_std140 %74 None + %77 = OpCompositeExtract %v3float %76 0 + %78 = OpCompositeExtract %v3float %76 1 + %79 = OpCompositeConstruct %mat2v3float %77 %78 + OpStore %72 %79 None OpBranch %35 %35 = OpLabel %39 = OpIAdd %uint %38 %uint_1 OpBranch %36 %37 = OpLabel - %53 = OpLoad %_arr_mat2v3float_uint_4 %31 None - OpStore %p %53 None - %54 = OpAccessChain %_ptr_Private_mat2v3float %p %uint_1 - %56 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_0 - %59 = OpLoad %v3float %56 None - %60 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 - %61 = OpLoad %v3float %60 None - %62 = OpCompositeConstruct %mat2v3float %59 %61 - OpStore %54 %62 None + %40 = OpLoad %_arr_mat2v3float_uint_4 %31 None + OpStore %p %40 None + %41 = OpAccessChain %_ptr_Private_mat2v3float %p %uint_1 + %44 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_0 + %47 = OpLoad %v3float %44 None + %48 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 + %49 = OpLoad %v3float %48 None + %50 = OpCompositeConstruct %mat2v3float %47 %49 + OpStore %41 %50 None + %51 = OpAccessChain %_ptr_Private_v3float %p %uint_1 %uint_0 + %53 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 + %54 = OpLoad %v3float %53 None + %55 = OpVectorShuffle %v3float %54 %54 2 0 1 + OpStore %51 %55 None + %56 = OpAccessChain %_ptr_Private_v3float %p %uint_1 %uint_0 + %57 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 + %58 = OpAccessChain %_ptr_Uniform_float %57 %uint_0 + %60 = OpLoad %float %58 None + %61 = OpAccessChain %_ptr_Private_float %56 %uint_0 + OpStore %61 %60 None %63 = OpAccessChain %_ptr_Private_v3float %p %uint_1 %uint_0 - %65 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 - %66 = OpLoad %v3float %65 None - %67 = OpVectorShuffle %v3float %66 %66 2 0 1 - OpStore %63 %67 None - %68 = OpAccessChain %_ptr_Private_v3float %p %uint_1 %uint_0 - %69 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 - %70 = OpAccessChain %_ptr_Uniform_float %69 %uint_0 - %72 = OpLoad %float %70 None - %73 = OpAccessChain %_ptr_Private_float %68 %uint_0 - OpStore %73 %72 None - %75 = OpAccessChain %_ptr_Private_v3float %p %uint_1 %uint_0 - %76 = OpAccessChain %_ptr_Private_float %75 %uint_0 - %77 = OpLoad %float %76 None - %78 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 - OpStore %78 %77 None + %64 = OpAccessChain %_ptr_Private_float %63 %uint_0 + %65 = OpLoad %float %64 None + %66 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 + OpStore %66 %65 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat2x3_f32_std140_uint_4_0 None %81 @@ -144,21 +144,21 @@ OpLoopMerge %91 %89 None OpBranch %88 %88 = OpLabel - %94 = OpUGreaterThanEqual %bool %92 %uint_4 - OpSelectionMerge %95 None - OpBranchConditional %94 %96 %95 - %96 = OpLabel + %95 = OpUGreaterThanEqual %bool %92 %uint_4 + OpSelectionMerge %96 None + OpBranchConditional %95 %97 %96 + %97 = OpLabel OpBranch %91 - %95 = OpLabel - %97 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %83 %92 - %98 = OpLoad %mat2x3_f32_std140 %97 None - %99 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %85 %92 - OpStore %99 %98 None + %96 = OpLabel + %98 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %83 %92 + %99 = OpLoad %mat2x3_f32_std140 %98 None + %100 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %85 %92 + OpStore %100 %99 None OpBranch %89 %89 = OpLabel %93 = OpIAdd %uint %92 %uint_1 OpBranch %90 %91 = OpLabel - %100 = OpLoad %_arr_mat2x3_f32_std140_uint_4_0 %85 None - OpReturnValue %100 + %94 = OpLoad %_arr_mat2x3_f32_std140_uint_4_0 %85 None + OpReturnValue %94 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_storage.wgsl.expected.spvasm index dec44c6..1e0f699 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_storage.wgsl.expected.spvasm
@@ -61,16 +61,16 @@ %_arr_mat2v3float_uint_4_0 = OpTypeArray %mat2v3float %uint_4 %_ptr_Function__arr_mat2v3float_uint_4_0 = OpTypePointer Function %_arr_mat2v3float_uint_4_0 %31 = OpConstantNull %_arr_mat2v3float_uint_4_0 - %bool = OpTypeBool -%_ptr_Function_mat2v3float = OpTypePointer Function %mat2v3float -%_ptr_Function_mat2x3_f32_std140 = OpTypePointer Function %mat2x3_f32_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float %uint_2 = OpConstant %uint 2 + %uint_1 = OpConstant %uint 1 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1 %_ptr_StorageBuffer_v3float = OpTypePointer StorageBuffer %v3float %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float + %bool = OpTypeBool +%_ptr_Function_mat2v3float = OpTypePointer Function %mat2v3float +%_ptr_Function_mat2x3_f32_std140 = OpTypePointer Function %mat2x3_f32_std140 %79 = OpTypeFunction %void %_arr_mat2v3float_uint_4_0 %98 = OpTypeFunction %void %_arr_uint_uint_1 %mat2v3float %106 = OpTypeFunction %_arr_mat2x3_f32_std140_uint_4_0 %_arr_mat2x3_f32_std140_uint_4 @@ -92,44 +92,44 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_4 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %66 = OpUGreaterThanEqual %bool %37 %uint_4 + OpSelectionMerge %68 None + OpBranchConditional %66 %69 %68 + %69 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Function_mat2v3float %28 %37 - %45 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %26 %37 - %47 = OpLoad %mat2x3_f32_std140 %45 None - %48 = OpCompositeExtract %v3float %47 0 - %49 = OpCompositeExtract %v3float %47 1 - %50 = OpCompositeConstruct %mat2v3float %48 %49 - OpStore %43 %50 None + %68 = OpLabel + %70 = OpAccessChain %_ptr_Function_mat2v3float %28 %37 + %72 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %26 %37 + %74 = OpLoad %mat2x3_f32_std140 %72 None + %75 = OpCompositeExtract %v3float %74 0 + %76 = OpCompositeExtract %v3float %74 1 + %77 = OpCompositeConstruct %mat2v3float %75 %76 + OpStore %70 %77 None OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel - %52 = OpLoad %_arr_mat2v3float_uint_4_0 %28 None - %53 = OpFunctionCall %void %tint_store_and_preserve_padding %52 - %55 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_0 - %58 = OpLoad %v3float %55 None - %59 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 - %60 = OpLoad %v3float %59 None - %61 = OpCompositeConstruct %mat2v3float %58 %60 - %63 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 - %64 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %63 %61 - %66 = OpAccessChain %_ptr_StorageBuffer_v3float %10 %uint_0 %uint_1 %uint_0 - %68 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 - %69 = OpLoad %v3float %68 None - %70 = OpVectorShuffle %v3float %69 %69 2 0 1 - OpStore %66 %70 None - %71 = OpAccessChain %_ptr_StorageBuffer_v3float %10 %uint_0 %uint_1 %uint_0 - %72 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 - %73 = OpAccessChain %_ptr_Uniform_float %72 %uint_0 - %75 = OpLoad %float %73 None - %76 = OpAccessChain %_ptr_StorageBuffer_float %71 %uint_0 - OpStore %76 %75 None + %39 = OpLoad %_arr_mat2v3float_uint_4_0 %28 None + %40 = OpFunctionCall %void %tint_store_and_preserve_padding %39 + %42 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_0 + %45 = OpLoad %v3float %42 None + %46 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 + %48 = OpLoad %v3float %46 None + %49 = OpCompositeConstruct %mat2v3float %45 %48 + %51 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 + %52 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %51 %49 + %54 = OpAccessChain %_ptr_StorageBuffer_v3float %10 %uint_0 %uint_1 %uint_0 + %56 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 + %57 = OpLoad %v3float %56 None + %58 = OpVectorShuffle %v3float %57 %57 2 0 1 + OpStore %54 %58 None + %59 = OpAccessChain %_ptr_StorageBuffer_v3float %10 %uint_0 %uint_1 %uint_0 + %60 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 + %61 = OpAccessChain %_ptr_Uniform_float %60 %uint_0 + %63 = OpLoad %float %61 None + %64 = OpAccessChain %_ptr_StorageBuffer_float %59 %uint_0 + OpStore %64 %63 None OpReturn OpFunctionEnd %tint_store_and_preserve_padding = OpFunction %void None %79 @@ -189,21 +189,21 @@ OpLoopMerge %116 %114 None OpBranch %113 %113 = OpLabel - %119 = OpUGreaterThanEqual %bool %117 %uint_4 - OpSelectionMerge %120 None - OpBranchConditional %119 %121 %120 - %121 = OpLabel + %120 = OpUGreaterThanEqual %bool %117 %uint_4 + OpSelectionMerge %121 None + OpBranchConditional %120 %122 %121 + %122 = OpLabel OpBranch %116 - %120 = OpLabel - %122 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %108 %117 - %123 = OpLoad %mat2x3_f32_std140 %122 None - %124 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %110 %117 - OpStore %124 %123 None + %121 = OpLabel + %123 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %108 %117 + %124 = OpLoad %mat2x3_f32_std140 %123 None + %125 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %110 %117 + OpStore %125 %124 None OpBranch %114 %114 = OpLabel %118 = OpIAdd %uint %117 %uint_1 OpBranch %115 %116 = OpLabel - %125 = OpLoad %_arr_mat2x3_f32_std140_uint_4_0 %110 None - OpReturnValue %125 + %119 = OpLoad %_arr_mat2x3_f32_std140_uint_4_0 %110 None + OpReturnValue %119 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_workgroup.wgsl.expected.spvasm index c470563..09261fe 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_workgroup.wgsl.expected.spvasm
@@ -45,10 +45,6 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %19 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_mat2v3float = OpTypePointer Workgroup %mat2v3float - %34 = OpConstantNull %mat2v3float - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_mat2x3_f32_std140_uint_4 = OpTypePointer Uniform %_arr_mat2x3_f32_std140_uint_4 @@ -56,13 +52,17 @@ %_arr_mat2x3_f32_std140_uint_4_0 = OpTypeArray %mat2x3_f32_std140 %uint_4 %_ptr_Function__arr_mat2x3_f32_std140_uint_4_0 = OpTypePointer Function %_arr_mat2x3_f32_std140_uint_4_0 %_ptr_Function__arr_mat2v3float_uint_4 = OpTypePointer Function %_arr_mat2v3float_uint_4 - %50 = OpConstantNull %_arr_mat2v3float_uint_4 -%_ptr_Function_mat2v3float = OpTypePointer Function %mat2v3float -%_ptr_Function_mat2x3_f32_std140 = OpTypePointer Function %mat2x3_f32_std140 + %42 = OpConstantNull %_arr_mat2v3float_uint_4 +%_ptr_Workgroup_mat2v3float = OpTypePointer Workgroup %mat2v3float + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float %_ptr_Workgroup_v3float = OpTypePointer Workgroup %v3float %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Workgroup_float = OpTypePointer Workgroup %float + %bool = OpTypeBool + %77 = OpConstantNull %mat2v3float +%_ptr_Function_mat2v3float = OpTypePointer Function %mat2v3float +%_ptr_Function_mat2x3_f32_std140 = OpTypePointer Function %mat2x3_f32_std140 %90 = OpTypeFunction %void %95 = OpTypeFunction %_arr_mat2x3_f32_std140_uint_4_0 %_arr_mat2x3_f32_std140_uint_4 %_ptr_Function__arr_mat2x3_f32_std140_uint_4 = OpTypePointer Function %_arr_mat2x3_f32_std140_uint_4 @@ -70,8 +70,8 @@ %f_inner = OpFunction %void None %19 %tint_local_index = OpFunctionParameter %uint %20 = OpLabel - %46 = OpVariable %_ptr_Function__arr_mat2x3_f32_std140_uint_4_0 Function - %48 = OpVariable %_ptr_Function__arr_mat2v3float_uint_4 Function %50 + %38 = OpVariable %_ptr_Function__arr_mat2x3_f32_std140_uint_4_0 Function + %40 = OpVariable %_ptr_Function__arr_mat2v3float_uint_4 Function %42 OpBranch %21 %21 = OpLabel OpBranch %24 @@ -80,70 +80,70 @@ OpLoopMerge %25 %23 None OpBranch %22 %22 = OpLabel - %28 = OpUGreaterThanEqual %bool %26 %uint_4 - OpSelectionMerge %30 None - OpBranchConditional %28 %31 %30 - %31 = OpLabel + %72 = OpUGreaterThanEqual %bool %26 %uint_4 + OpSelectionMerge %74 None + OpBranchConditional %72 %75 %74 + %75 = OpLabel OpBranch %25 - %30 = OpLabel - %32 = OpAccessChain %_ptr_Workgroup_mat2v3float %w %26 - OpStore %32 %34 None + %74 = OpLabel + %76 = OpAccessChain %_ptr_Workgroup_mat2v3float %w %26 + OpStore %76 %77 None OpBranch %23 %23 = OpLabel %27 = OpIAdd %uint %26 %uint_1 OpBranch %24 %25 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %39 = OpAccessChain %_ptr_Uniform__arr_mat2x3_f32_std140_uint_4 %1 %uint_0 - %42 = OpLoad %_arr_mat2x3_f32_std140_uint_4 %39 None - %43 = OpFunctionCall %_arr_mat2x3_f32_std140_uint_4_0 %tint_convert_explicit_layout %42 - OpStore %46 %43 - OpBranch %51 - %51 = OpLabel - OpBranch %54 - %54 = OpLabel - %56 = OpPhi %uint %uint_0 %51 %57 %53 - OpLoopMerge %55 %53 None - OpBranch %52 - %52 = OpLabel - %58 = OpUGreaterThanEqual %bool %56 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %58 %60 %59 - %60 = OpLabel - OpBranch %55 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_mat2v3float %48 %56 - %63 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %46 %56 - %65 = OpLoad %mat2x3_f32_std140 %63 None - %66 = OpCompositeExtract %v3float %65 0 - %67 = OpCompositeExtract %v3float %65 1 - %68 = OpCompositeConstruct %mat2v3float %66 %67 - OpStore %61 %68 None - OpBranch %53 - %53 = OpLabel - %57 = OpIAdd %uint %56 %uint_1 - OpBranch %54 - %55 = OpLabel - %69 = OpLoad %_arr_mat2v3float_uint_4 %48 None - OpStore %w %69 None - %70 = OpAccessChain %_ptr_Workgroup_mat2v3float %w %uint_1 - %71 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_0 - %73 = OpLoad %v3float %71 None - %74 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 - %75 = OpLoad %v3float %74 None - %76 = OpCompositeConstruct %mat2v3float %73 %75 - OpStore %70 %76 None - %77 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 %uint_0 - %79 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 - %80 = OpLoad %v3float %79 None - %81 = OpVectorShuffle %v3float %80 %80 2 0 1 - OpStore %77 %81 None - %82 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 %uint_0 - %83 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 - %84 = OpAccessChain %_ptr_Uniform_float %83 %uint_0 - %86 = OpLoad %float %84 None - %87 = OpAccessChain %_ptr_Workgroup_float %82 %uint_0 - OpStore %87 %86 None + %31 = OpAccessChain %_ptr_Uniform__arr_mat2x3_f32_std140_uint_4 %1 %uint_0 + %34 = OpLoad %_arr_mat2x3_f32_std140_uint_4 %31 None + %35 = OpFunctionCall %_arr_mat2x3_f32_std140_uint_4_0 %tint_convert_explicit_layout %34 + OpStore %38 %35 + OpBranch %43 + %43 = OpLabel + OpBranch %46 + %46 = OpLabel + %48 = OpPhi %uint %uint_0 %43 %49 %45 + OpLoopMerge %47 %45 None + OpBranch %44 + %44 = OpLabel + %78 = OpUGreaterThanEqual %bool %48 %uint_4 + OpSelectionMerge %79 None + OpBranchConditional %78 %80 %79 + %80 = OpLabel + OpBranch %47 + %79 = OpLabel + %81 = OpAccessChain %_ptr_Function_mat2v3float %40 %48 + %83 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %38 %48 + %85 = OpLoad %mat2x3_f32_std140 %83 None + %86 = OpCompositeExtract %v3float %85 0 + %87 = OpCompositeExtract %v3float %85 1 + %88 = OpCompositeConstruct %mat2v3float %86 %87 + OpStore %81 %88 None + OpBranch %45 + %45 = OpLabel + %49 = OpIAdd %uint %48 %uint_1 + OpBranch %46 + %47 = OpLabel + %50 = OpLoad %_arr_mat2v3float_uint_4 %40 None + OpStore %w %50 None + %51 = OpAccessChain %_ptr_Workgroup_mat2v3float %w %uint_1 + %54 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_0 + %56 = OpLoad %v3float %54 None + %57 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 + %58 = OpLoad %v3float %57 None + %59 = OpCompositeConstruct %mat2v3float %56 %58 + OpStore %51 %59 None + %60 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 %uint_0 + %62 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 + %63 = OpLoad %v3float %62 None + %64 = OpVectorShuffle %v3float %63 %63 2 0 1 + OpStore %60 %64 None + %65 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 %uint_0 + %66 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 + %67 = OpAccessChain %_ptr_Uniform_float %66 %uint_0 + %69 = OpLoad %float %67 None + %70 = OpAccessChain %_ptr_Workgroup_float %65 %uint_0 + OpStore %70 %69 None OpReturn OpFunctionEnd %f = OpFunction %void None %90 @@ -166,21 +166,21 @@ OpLoopMerge %105 %103 None OpBranch %102 %102 = OpLabel - %108 = OpUGreaterThanEqual %bool %106 %uint_4 - OpSelectionMerge %109 None - OpBranchConditional %108 %110 %109 - %110 = OpLabel + %109 = OpUGreaterThanEqual %bool %106 %uint_4 + OpSelectionMerge %110 None + OpBranchConditional %109 %111 %110 + %111 = OpLabel OpBranch %105 - %109 = OpLabel - %111 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %97 %106 - %112 = OpLoad %mat2x3_f32_std140 %111 None - %113 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %99 %106 - OpStore %113 %112 None + %110 = OpLabel + %112 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %97 %106 + %113 = OpLoad %mat2x3_f32_std140 %112 None + %114 = OpAccessChain %_ptr_Function_mat2x3_f32_std140 %99 %106 + OpStore %114 %113 None OpBranch %103 %103 = OpLabel %107 = OpIAdd %uint %106 %uint_1 OpBranch %104 %105 = OpLabel - %114 = OpLoad %_arr_mat2x3_f32_std140_uint_4_0 %99 None - OpReturnValue %114 + %108 = OpLoad %_arr_mat2x3_f32_std140_uint_4_0 %99 None + OpReturnValue %108 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.spvasm index 340c981..c0d9b1c 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -72,9 +72,9 @@ %_arr_mat2v4half_uint_4 = OpTypeArray %mat2v4half %uint_4 %_ptr_Function__arr_mat2v4half_uint_4 = OpTypePointer Function %_arr_mat2v4half_uint_4 %61 = OpConstantNull %_arr_mat2v4half_uint_4 +%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half %bool = OpTypeBool %_ptr_Function_mat2x4_f16_std140 = OpTypePointer Function %mat2x4_f16_std140 -%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half %91 = OpTypeFunction %_arr_mat2x4_f16_std140_uint_4_0 %_arr_mat2x4_f16_std140_uint_4 %_ptr_Function__arr_mat2x4_f16_std140_uint_4 = OpTypePointer Function %_arr_mat2x4_f16_std140_uint_4 %96 = OpConstantNull %_arr_mat2x4_f16_std140_uint_4_0 @@ -117,34 +117,34 @@ OpLoopMerge %66 %64 None OpBranch %63 %63 = OpLabel - %69 = OpUGreaterThanEqual %bool %67 %uint_4 - OpSelectionMerge %71 None - OpBranchConditional %69 %72 %71 - %72 = OpLabel + %79 = OpUGreaterThanEqual %bool %67 %uint_4 + OpSelectionMerge %81 None + OpBranchConditional %79 %82 %81 + %82 = OpLabel OpBranch %66 - %71 = OpLabel - %73 = OpAccessChain %_ptr_Function_mat2v4half %58 %67 - %74 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %56 %67 - %76 = OpLoad %mat2x4_f16_std140 %74 None - %77 = OpCompositeExtract %v4half %76 0 - %78 = OpCompositeExtract %v4half %76 1 - %79 = OpCompositeConstruct %mat2v4half %77 %78 - OpStore %73 %79 None + %81 = OpLabel + %83 = OpAccessChain %_ptr_Function_mat2v4half %58 %67 + %84 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %56 %67 + %86 = OpLoad %mat2x4_f16_std140 %84 None + %87 = OpCompositeExtract %v4half %86 0 + %88 = OpCompositeExtract %v4half %86 1 + %89 = OpCompositeConstruct %mat2v4half %87 %88 + OpStore %83 %89 None OpBranch %64 %64 = OpLabel %68 = OpIAdd %uint %67 %uint_1 OpBranch %65 %66 = OpLabel %l_a = OpLoad %_arr_mat2v4half_uint_4 %58 None - %81 = OpCompositeExtract %half %l_a_i_i 0 - %82 = OpCompositeExtract %half %l_a 0 0 0 - %83 = OpFAdd %half %81 %82 - %84 = OpCompositeExtract %half %l_a_i 0 0 - %85 = OpFAdd %half %83 %84 - %86 = OpCompositeExtract %half %l_a_i_i 0 - %87 = OpFAdd %half %85 %86 - %88 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 - OpStore %88 %87 None + %70 = OpCompositeExtract %half %l_a_i_i 0 + %71 = OpCompositeExtract %half %l_a 0 0 0 + %72 = OpFAdd %half %70 %71 + %73 = OpCompositeExtract %half %l_a_i 0 0 + %74 = OpFAdd %half %72 %73 + %75 = OpCompositeExtract %half %l_a_i_i 0 + %76 = OpFAdd %half %74 %75 + %77 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 + OpStore %77 %76 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat2x4_f16_std140_uint_4_0 None %91 @@ -161,21 +161,21 @@ OpLoopMerge %101 %99 None OpBranch %98 %98 = OpLabel - %104 = OpUGreaterThanEqual %bool %102 %uint_4 - OpSelectionMerge %105 None - OpBranchConditional %104 %106 %105 - %106 = OpLabel + %105 = OpUGreaterThanEqual %bool %102 %uint_4 + OpSelectionMerge %106 None + OpBranchConditional %105 %107 %106 + %107 = OpLabel OpBranch %101 - %105 = OpLabel - %107 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %93 %102 - %108 = OpLoad %mat2x4_f16_std140 %107 None - %109 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %95 %102 - OpStore %109 %108 None + %106 = OpLabel + %108 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %93 %102 + %109 = OpLoad %mat2x4_f16_std140 %108 None + %110 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %95 %102 + OpStore %110 %109 None OpBranch %99 %99 = OpLabel %103 = OpIAdd %uint %102 %uint_1 OpBranch %100 %101 = OpLabel - %110 = OpLoad %_arr_mat2x4_f16_std140_uint_4_0 %95 None - OpReturnValue %110 + %104 = OpLoad %_arr_mat2x4_f16_std140_uint_4_0 %95 None + OpReturnValue %104 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.spvasm index 3e83b8a..b2e2213 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.spvasm
@@ -61,10 +61,10 @@ %_arr_mat2v4half_uint_4 = OpTypeArray %mat2v4half %uint_4 %_ptr_Function__arr_mat2v4half_uint_4 = OpTypePointer Function %_arr_mat2v4half_uint_4 %39 = OpConstantNull %_arr_mat2v4half_uint_4 +%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half %bool = OpTypeBool %_ptr_Function_mat2v4half = OpTypePointer Function %mat2v4half %_ptr_Function_mat2x4_f16_std140 = OpTypePointer Function %mat2x4_f16_std140 -%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half %70 = OpTypeFunction %_arr_mat2x4_f16_std140_uint_4_0 %_arr_mat2x4_f16_std140_uint_4 %_ptr_Function__arr_mat2x4_f16_std140_uint_4 = OpTypePointer Function %_arr_mat2x4_f16_std140_uint_4 %75 = OpConstantNull %_arr_mat2x4_f16_std140_uint_4_0 @@ -90,34 +90,34 @@ OpLoopMerge %44 %42 None OpBranch %41 %41 = OpLabel - %47 = OpUGreaterThanEqual %bool %45 %uint_4 - OpSelectionMerge %49 None - OpBranchConditional %47 %50 %49 - %50 = OpLabel + %57 = OpUGreaterThanEqual %bool %45 %uint_4 + OpSelectionMerge %59 None + OpBranchConditional %57 %60 %59 + %60 = OpLabel OpBranch %44 - %49 = OpLabel - %51 = OpAccessChain %_ptr_Function_mat2v4half %36 %45 - %53 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %34 %45 - %55 = OpLoad %mat2x4_f16_std140 %53 None - %56 = OpCompositeExtract %v4half %55 0 - %57 = OpCompositeExtract %v4half %55 1 - %58 = OpCompositeConstruct %mat2v4half %56 %57 - OpStore %51 %58 None + %59 = OpLabel + %61 = OpAccessChain %_ptr_Function_mat2v4half %36 %45 + %63 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %34 %45 + %65 = OpLoad %mat2x4_f16_std140 %63 None + %66 = OpCompositeExtract %v4half %65 0 + %67 = OpCompositeExtract %v4half %65 1 + %68 = OpCompositeConstruct %mat2v4half %66 %67 + OpStore %61 %68 None OpBranch %42 %42 = OpLabel %46 = OpIAdd %uint %45 %uint_1 OpBranch %43 %44 = OpLabel %l_a = OpLoad %_arr_mat2v4half_uint_4 %36 None - %60 = OpCompositeExtract %half %l_a_i_i 0 - %61 = OpCompositeExtract %half %l_a 0 0 0 - %62 = OpFAdd %half %60 %61 - %63 = OpCompositeExtract %half %l_a_i 0 0 - %64 = OpFAdd %half %62 %63 - %65 = OpCompositeExtract %half %l_a_i_i 0 - %66 = OpFAdd %half %64 %65 - %67 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 - OpStore %67 %66 None + %48 = OpCompositeExtract %half %l_a_i_i 0 + %49 = OpCompositeExtract %half %l_a 0 0 0 + %50 = OpFAdd %half %48 %49 + %51 = OpCompositeExtract %half %l_a_i 0 0 + %52 = OpFAdd %half %50 %51 + %53 = OpCompositeExtract %half %l_a_i_i 0 + %54 = OpFAdd %half %52 %53 + %55 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 + OpStore %55 %54 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat2x4_f16_std140_uint_4_0 None %70 @@ -134,21 +134,21 @@ OpLoopMerge %80 %78 None OpBranch %77 %77 = OpLabel - %83 = OpUGreaterThanEqual %bool %81 %uint_4 - OpSelectionMerge %84 None - OpBranchConditional %83 %85 %84 - %85 = OpLabel + %84 = OpUGreaterThanEqual %bool %81 %uint_4 + OpSelectionMerge %85 None + OpBranchConditional %84 %86 %85 + %86 = OpLabel OpBranch %80 - %84 = OpLabel - %86 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %72 %81 - %87 = OpLoad %mat2x4_f16_std140 %86 None - %88 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %74 %81 - OpStore %88 %87 None + %85 = OpLabel + %87 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %72 %81 + %88 = OpLoad %mat2x4_f16_std140 %87 None + %89 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %74 %81 + OpStore %89 %88 None OpBranch %78 %78 = OpLabel %82 = OpIAdd %uint %81 %uint_1 OpBranch %79 %80 = OpLabel - %89 = OpLoad %_arr_mat2x4_f16_std140_uint_4_0 %74 None - OpReturnValue %89 + %83 = OpLoad %_arr_mat2x4_f16_std140_uint_4_0 %74 None + OpReturnValue %83 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_fn.wgsl.expected.spvasm index 08ec696..be1eaf9 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_fn.wgsl.expected.spvasm
@@ -67,12 +67,12 @@ %_ptr_Function__arr_mat2x4_f16_std140_uint_4_0 = OpTypePointer Function %_arr_mat2x4_f16_std140_uint_4_0 %_ptr_Function__arr_mat2v4half_uint_4 = OpTypePointer Function %_arr_mat2v4half_uint_4 %49 = OpConstantNull %_arr_mat2v4half_uint_4 +%_ptr_Uniform_v4half = OpTypePointer Uniform %v4half + %uint_1 = OpConstant %uint 1 +%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half %bool = OpTypeBool %_ptr_Function_mat2v4half = OpTypePointer Function %mat2v4half %_ptr_Function_mat2x4_f16_std140 = OpTypePointer Function %mat2x4_f16_std140 - %uint_1 = OpConstant %uint 1 -%_ptr_Uniform_v4half = OpTypePointer Uniform %v4half -%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half %94 = OpTypeFunction %_arr_mat2x4_f16_std140_uint_4_0 %_arr_mat2x4_f16_std140_uint_4 %_ptr_Function__arr_mat2x4_f16_std140_uint_4 = OpTypePointer Function %_arr_mat2x4_f16_std140_uint_4 %99 = OpConstantNull %_arr_mat2x4_f16_std140_uint_4_0 @@ -115,46 +115,46 @@ OpLoopMerge %54 %52 None OpBranch %51 %51 = OpLabel - %57 = OpUGreaterThanEqual %bool %55 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel + %81 = OpUGreaterThanEqual %bool %55 %uint_4 + OpSelectionMerge %83 None + OpBranchConditional %81 %84 %83 + %84 = OpLabel OpBranch %54 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_mat2v4half %47 %55 - %63 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %45 %55 - %65 = OpLoad %mat2x4_f16_std140 %63 None - %66 = OpCompositeExtract %v4half %65 0 - %67 = OpCompositeExtract %v4half %65 1 - %68 = OpCompositeConstruct %mat2v4half %66 %67 - OpStore %61 %68 None + %83 = OpLabel + %85 = OpAccessChain %_ptr_Function_mat2v4half %47 %55 + %87 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %45 %55 + %89 = OpLoad %mat2x4_f16_std140 %87 None + %90 = OpCompositeExtract %v4half %89 0 + %91 = OpCompositeExtract %v4half %89 1 + %92 = OpCompositeConstruct %mat2v4half %90 %91 + OpStore %85 %92 None OpBranch %52 %52 = OpLabel %56 = OpIAdd %uint %55 %uint_1 OpBranch %53 %54 = OpLabel - %70 = OpLoad %_arr_mat2v4half_uint_4 %47 None - %71 = OpFunctionCall %half %a %70 - %72 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_1 %uint_0 - %74 = OpLoad %v4half %72 None - %75 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_1 %uint_1 - %76 = OpLoad %v4half %75 None - %77 = OpCompositeConstruct %mat2v4half %74 %76 - %78 = OpFunctionCall %half %b %77 - %79 = OpFAdd %half %71 %78 - %80 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_1 %uint_0 - %81 = OpLoad %v4half %80 None - %82 = OpVectorShuffle %v4half %81 %81 1 3 0 2 - %83 = OpFunctionCall %half %c %82 - %84 = OpFAdd %half %79 %83 - %85 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_1 %uint_0 - %86 = OpLoad %v4half %85 None - %87 = OpVectorShuffle %v4half %86 %86 1 3 0 2 - %88 = OpCompositeExtract %half %87 0 - %89 = OpFunctionCall %half %d %88 - %90 = OpFAdd %half %84 %89 - %91 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 - OpStore %91 %90 None + %57 = OpLoad %_arr_mat2v4half_uint_4 %47 None + %58 = OpFunctionCall %half %a %57 + %59 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_1 %uint_0 + %62 = OpLoad %v4half %59 None + %63 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_1 %uint_1 + %64 = OpLoad %v4half %63 None + %65 = OpCompositeConstruct %mat2v4half %62 %64 + %66 = OpFunctionCall %half %b %65 + %67 = OpFAdd %half %58 %66 + %68 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_1 %uint_0 + %69 = OpLoad %v4half %68 None + %70 = OpVectorShuffle %v4half %69 %69 1 3 0 2 + %71 = OpFunctionCall %half %c %70 + %72 = OpFAdd %half %67 %71 + %73 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_1 %uint_0 + %74 = OpLoad %v4half %73 None + %75 = OpVectorShuffle %v4half %74 %74 1 3 0 2 + %76 = OpCompositeExtract %half %75 0 + %77 = OpFunctionCall %half %d %76 + %78 = OpFAdd %half %72 %77 + %79 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 + OpStore %79 %78 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat2x4_f16_std140_uint_4_0 None %94 @@ -171,21 +171,21 @@ OpLoopMerge %104 %102 None OpBranch %101 %101 = OpLabel - %107 = OpUGreaterThanEqual %bool %105 %uint_4 - OpSelectionMerge %108 None - OpBranchConditional %107 %109 %108 - %109 = OpLabel + %108 = OpUGreaterThanEqual %bool %105 %uint_4 + OpSelectionMerge %109 None + OpBranchConditional %108 %110 %109 + %110 = OpLabel OpBranch %104 - %108 = OpLabel - %110 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %96 %105 - %111 = OpLoad %mat2x4_f16_std140 %110 None - %112 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %98 %105 - OpStore %112 %111 None + %109 = OpLabel + %111 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %96 %105 + %112 = OpLoad %mat2x4_f16_std140 %111 None + %113 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %98 %105 + OpStore %113 %112 None OpBranch %102 %102 = OpLabel %106 = OpIAdd %uint %105 %uint_1 OpBranch %103 %104 = OpLabel - %113 = OpLoad %_arr_mat2x4_f16_std140_uint_4_0 %98 None - OpReturnValue %113 + %107 = OpLoad %_arr_mat2x4_f16_std140_uint_4_0 %98 None + OpReturnValue %107 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_private.wgsl.expected.spvasm index 1a81cda..a02e1e3 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_private.wgsl.expected.spvasm
@@ -58,17 +58,17 @@ %_arr_mat2x4_f16_std140_uint_4_0 = OpTypeArray %mat2x4_f16_std140 %uint_4 %_ptr_Function__arr_mat2x4_f16_std140_uint_4_0 = OpTypePointer Function %_arr_mat2x4_f16_std140_uint_4_0 %_ptr_Function__arr_mat2v4half_uint_4 = OpTypePointer Function %_arr_mat2v4half_uint_4 - %bool = OpTypeBool -%_ptr_Function_mat2v4half = OpTypePointer Function %mat2v4half -%_ptr_Function_mat2x4_f16_std140 = OpTypePointer Function %mat2x4_f16_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Private_mat2v4half = OpTypePointer Private %mat2v4half + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v4half = OpTypePointer Uniform %v4half %uint_2 = OpConstant %uint 2 %_ptr_Private_v4half = OpTypePointer Private %v4half %_ptr_Uniform_half = OpTypePointer Uniform %half %_ptr_Private_half = OpTypePointer Private %half %_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half + %bool = OpTypeBool +%_ptr_Function_mat2v4half = OpTypePointer Function %mat2v4half +%_ptr_Function_mat2x4_f16_std140 = OpTypePointer Function %mat2x4_f16_std140 %81 = OpTypeFunction %_arr_mat2x4_f16_std140_uint_4_0 %_arr_mat2x4_f16_std140_uint_4 %_ptr_Function__arr_mat2x4_f16_std140_uint_4 = OpTypePointer Function %_arr_mat2x4_f16_std140_uint_4 %86 = OpConstantNull %_arr_mat2x4_f16_std140_uint_4_0 @@ -88,49 +88,49 @@ OpLoopMerge %37 %35 None OpBranch %34 %34 = OpLabel - %40 = OpUGreaterThanEqual %bool %38 %uint_4 - OpSelectionMerge %42 None - OpBranchConditional %40 %43 %42 - %43 = OpLabel + %68 = OpUGreaterThanEqual %bool %38 %uint_4 + OpSelectionMerge %70 None + OpBranchConditional %68 %71 %70 + %71 = OpLabel OpBranch %37 - %42 = OpLabel - %44 = OpAccessChain %_ptr_Function_mat2v4half %31 %38 - %46 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %29 %38 - %48 = OpLoad %mat2x4_f16_std140 %46 None - %49 = OpCompositeExtract %v4half %48 0 - %50 = OpCompositeExtract %v4half %48 1 - %51 = OpCompositeConstruct %mat2v4half %49 %50 - OpStore %44 %51 None + %70 = OpLabel + %72 = OpAccessChain %_ptr_Function_mat2v4half %31 %38 + %74 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %29 %38 + %76 = OpLoad %mat2x4_f16_std140 %74 None + %77 = OpCompositeExtract %v4half %76 0 + %78 = OpCompositeExtract %v4half %76 1 + %79 = OpCompositeConstruct %mat2v4half %77 %78 + OpStore %72 %79 None OpBranch %35 %35 = OpLabel %39 = OpIAdd %uint %38 %uint_1 OpBranch %36 %37 = OpLabel - %53 = OpLoad %_arr_mat2v4half_uint_4 %31 None - OpStore %p %53 None - %54 = OpAccessChain %_ptr_Private_mat2v4half %p %uint_1 - %56 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_0 - %59 = OpLoad %v4half %56 None - %60 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 - %61 = OpLoad %v4half %60 None - %62 = OpCompositeConstruct %mat2v4half %59 %61 - OpStore %54 %62 None + %40 = OpLoad %_arr_mat2v4half_uint_4 %31 None + OpStore %p %40 None + %41 = OpAccessChain %_ptr_Private_mat2v4half %p %uint_1 + %44 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_0 + %47 = OpLoad %v4half %44 None + %48 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 + %49 = OpLoad %v4half %48 None + %50 = OpCompositeConstruct %mat2v4half %47 %49 + OpStore %41 %50 None + %51 = OpAccessChain %_ptr_Private_v4half %p %uint_1 %uint_0 + %53 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_1 + %54 = OpLoad %v4half %53 None + %55 = OpVectorShuffle %v4half %54 %54 1 3 0 2 + OpStore %51 %55 None + %56 = OpAccessChain %_ptr_Private_v4half %p %uint_1 %uint_0 + %57 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_1 + %58 = OpAccessChain %_ptr_Uniform_half %57 %uint_0 + %60 = OpLoad %half %58 None + %61 = OpAccessChain %_ptr_Private_half %56 %uint_0 + OpStore %61 %60 None %63 = OpAccessChain %_ptr_Private_v4half %p %uint_1 %uint_0 - %65 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_1 - %66 = OpLoad %v4half %65 None - %67 = OpVectorShuffle %v4half %66 %66 1 3 0 2 - OpStore %63 %67 None - %68 = OpAccessChain %_ptr_Private_v4half %p %uint_1 %uint_0 - %69 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_1 - %70 = OpAccessChain %_ptr_Uniform_half %69 %uint_0 - %72 = OpLoad %half %70 None - %73 = OpAccessChain %_ptr_Private_half %68 %uint_0 - OpStore %73 %72 None - %75 = OpAccessChain %_ptr_Private_v4half %p %uint_1 %uint_0 - %76 = OpAccessChain %_ptr_Private_half %75 %uint_0 - %77 = OpLoad %half %76 None - %78 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 - OpStore %78 %77 None + %64 = OpAccessChain %_ptr_Private_half %63 %uint_0 + %65 = OpLoad %half %64 None + %66 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 + OpStore %66 %65 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat2x4_f16_std140_uint_4_0 None %81 @@ -147,21 +147,21 @@ OpLoopMerge %91 %89 None OpBranch %88 %88 = OpLabel - %94 = OpUGreaterThanEqual %bool %92 %uint_4 - OpSelectionMerge %95 None - OpBranchConditional %94 %96 %95 - %96 = OpLabel + %95 = OpUGreaterThanEqual %bool %92 %uint_4 + OpSelectionMerge %96 None + OpBranchConditional %95 %97 %96 + %97 = OpLabel OpBranch %91 - %95 = OpLabel - %97 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %83 %92 - %98 = OpLoad %mat2x4_f16_std140 %97 None - %99 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %85 %92 - OpStore %99 %98 None + %96 = OpLabel + %98 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %83 %92 + %99 = OpLoad %mat2x4_f16_std140 %98 None + %100 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %85 %92 + OpStore %100 %99 None OpBranch %89 %89 = OpLabel %93 = OpIAdd %uint %92 %uint_1 OpBranch %90 %91 = OpLabel - %100 = OpLoad %_arr_mat2x4_f16_std140_uint_4_0 %85 None - OpReturnValue %100 + %94 = OpLoad %_arr_mat2x4_f16_std140_uint_4_0 %85 None + OpReturnValue %94 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_storage.wgsl.expected.spvasm index e2b0df7..8b51919 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_storage.wgsl.expected.spvasm
@@ -61,17 +61,17 @@ %_arr_mat2v4half_uint_4_0 = OpTypeArray %mat2v4half %uint_4 %_ptr_Function__arr_mat2v4half_uint_4_0 = OpTypePointer Function %_arr_mat2v4half_uint_4_0 %31 = OpConstantNull %_arr_mat2v4half_uint_4_0 - %bool = OpTypeBool -%_ptr_Function_mat2v4half = OpTypePointer Function %mat2v4half -%_ptr_Function_mat2x4_f16_std140 = OpTypePointer Function %mat2x4_f16_std140 - %uint_1 = OpConstant %uint 1 %_ptr_StorageBuffer__arr_mat2v4half_uint_4 = OpTypePointer StorageBuffer %_arr_mat2v4half_uint_4 %_ptr_StorageBuffer_mat2v4half = OpTypePointer StorageBuffer %mat2v4half + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v4half = OpTypePointer Uniform %v4half %uint_2 = OpConstant %uint 2 %_ptr_StorageBuffer_v4half = OpTypePointer StorageBuffer %v4half %_ptr_Uniform_half = OpTypePointer Uniform %half %_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half + %bool = OpTypeBool +%_ptr_Function_mat2v4half = OpTypePointer Function %mat2v4half +%_ptr_Function_mat2x4_f16_std140 = OpTypePointer Function %mat2x4_f16_std140 %79 = OpTypeFunction %_arr_mat2v4half_uint_4 %_arr_mat2v4half_uint_4_0 %_ptr_Function__arr_mat2v4half_uint_4 = OpTypePointer Function %_arr_mat2v4half_uint_4 %84 = OpConstantNull %_arr_mat2v4half_uint_4 @@ -94,46 +94,46 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_4 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %66 = OpUGreaterThanEqual %bool %37 %uint_4 + OpSelectionMerge %68 None + OpBranchConditional %66 %69 %68 + %69 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Function_mat2v4half %28 %37 - %45 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %26 %37 - %47 = OpLoad %mat2x4_f16_std140 %45 None - %48 = OpCompositeExtract %v4half %47 0 - %49 = OpCompositeExtract %v4half %47 1 - %50 = OpCompositeConstruct %mat2v4half %48 %49 - OpStore %43 %50 None + %68 = OpLabel + %70 = OpAccessChain %_ptr_Function_mat2v4half %28 %37 + %72 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %26 %37 + %74 = OpLoad %mat2x4_f16_std140 %72 None + %75 = OpCompositeExtract %v4half %74 0 + %76 = OpCompositeExtract %v4half %74 1 + %77 = OpCompositeConstruct %mat2v4half %75 %76 + OpStore %70 %77 None OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel - %52 = OpLoad %_arr_mat2v4half_uint_4_0 %28 None - %53 = OpAccessChain %_ptr_StorageBuffer__arr_mat2v4half_uint_4 %10 %uint_0 - %55 = OpFunctionCall %_arr_mat2v4half_uint_4 %tint_convert_explicit_layout %52 - OpStore %53 %55 None - %57 = OpAccessChain %_ptr_StorageBuffer_mat2v4half %10 %uint_0 %uint_1 - %59 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_0 - %62 = OpLoad %v4half %59 None - %63 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 - %64 = OpLoad %v4half %63 None - %65 = OpCompositeConstruct %mat2v4half %62 %64 - OpStore %57 %65 None - %66 = OpAccessChain %_ptr_StorageBuffer_v4half %10 %uint_0 %uint_1 %uint_0 - %68 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_1 - %69 = OpLoad %v4half %68 None - %70 = OpVectorShuffle %v4half %69 %69 1 3 0 2 - OpStore %66 %70 None - %71 = OpAccessChain %_ptr_StorageBuffer_v4half %10 %uint_0 %uint_1 %uint_0 - %72 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_1 - %73 = OpAccessChain %_ptr_Uniform_half %72 %uint_0 - %75 = OpLoad %half %73 None - %76 = OpAccessChain %_ptr_StorageBuffer_half %71 %uint_0 - OpStore %76 %75 None + %39 = OpLoad %_arr_mat2v4half_uint_4_0 %28 None + %40 = OpAccessChain %_ptr_StorageBuffer__arr_mat2v4half_uint_4 %10 %uint_0 + %42 = OpFunctionCall %_arr_mat2v4half_uint_4 %tint_convert_explicit_layout %39 + OpStore %40 %42 None + %44 = OpAccessChain %_ptr_StorageBuffer_mat2v4half %10 %uint_0 %uint_1 + %47 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_0 + %50 = OpLoad %v4half %47 None + %51 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 + %52 = OpLoad %v4half %51 None + %53 = OpCompositeConstruct %mat2v4half %50 %52 + OpStore %44 %53 None + %54 = OpAccessChain %_ptr_StorageBuffer_v4half %10 %uint_0 %uint_1 %uint_0 + %56 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_1 + %57 = OpLoad %v4half %56 None + %58 = OpVectorShuffle %v4half %57 %57 1 3 0 2 + OpStore %54 %58 None + %59 = OpAccessChain %_ptr_StorageBuffer_v4half %10 %uint_0 %uint_1 %uint_0 + %60 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_1 + %61 = OpAccessChain %_ptr_Uniform_half %60 %uint_0 + %63 = OpLoad %half %61 None + %64 = OpAccessChain %_ptr_StorageBuffer_half %59 %uint_0 + OpStore %64 %63 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat2v4half_uint_4 None %79 @@ -150,23 +150,23 @@ OpLoopMerge %89 %87 None OpBranch %86 %86 = OpLabel - %92 = OpUGreaterThanEqual %bool %90 %uint_4 - OpSelectionMerge %93 None - OpBranchConditional %92 %94 %93 - %94 = OpLabel + %93 = OpUGreaterThanEqual %bool %90 %uint_4 + OpSelectionMerge %94 None + OpBranchConditional %93 %95 %94 + %95 = OpLabel OpBranch %89 - %93 = OpLabel - %95 = OpAccessChain %_ptr_Function_mat2v4half %81 %90 - %96 = OpLoad %mat2v4half %95 None - %97 = OpAccessChain %_ptr_Function_mat2v4half %82 %90 - OpStore %97 %96 None + %94 = OpLabel + %96 = OpAccessChain %_ptr_Function_mat2v4half %81 %90 + %97 = OpLoad %mat2v4half %96 None + %98 = OpAccessChain %_ptr_Function_mat2v4half %82 %90 + OpStore %98 %97 None OpBranch %87 %87 = OpLabel %91 = OpIAdd %uint %90 %uint_1 OpBranch %88 %89 = OpLabel - %98 = OpLoad %_arr_mat2v4half_uint_4 %82 None - OpReturnValue %98 + %92 = OpLoad %_arr_mat2v4half_uint_4 %82 None + OpReturnValue %92 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %_arr_mat2x4_f16_std140_uint_4_0 None %100 %tint_source_0 = OpFunctionParameter %_arr_mat2x4_f16_std140_uint_4 @@ -182,21 +182,21 @@ OpLoopMerge %110 %108 None OpBranch %107 %107 = OpLabel - %113 = OpUGreaterThanEqual %bool %111 %uint_4 - OpSelectionMerge %114 None - OpBranchConditional %113 %115 %114 - %115 = OpLabel + %114 = OpUGreaterThanEqual %bool %111 %uint_4 + OpSelectionMerge %115 None + OpBranchConditional %114 %116 %115 + %116 = OpLabel OpBranch %110 - %114 = OpLabel - %116 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %102 %111 - %117 = OpLoad %mat2x4_f16_std140 %116 None - %118 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %104 %111 - OpStore %118 %117 None + %115 = OpLabel + %117 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %102 %111 + %118 = OpLoad %mat2x4_f16_std140 %117 None + %119 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %104 %111 + OpStore %119 %118 None OpBranch %108 %108 = OpLabel %112 = OpIAdd %uint %111 %uint_1 OpBranch %109 %110 = OpLabel - %119 = OpLoad %_arr_mat2x4_f16_std140_uint_4_0 %104 None - OpReturnValue %119 + %113 = OpLoad %_arr_mat2x4_f16_std140_uint_4_0 %104 None + OpReturnValue %113 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_workgroup.wgsl.expected.spvasm index c25847b..34d388a 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_workgroup.wgsl.expected.spvasm
@@ -48,10 +48,6 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %19 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_mat2v4half = OpTypePointer Workgroup %mat2v4half - %34 = OpConstantNull %mat2v4half - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_mat2x4_f16_std140_uint_4 = OpTypePointer Uniform %_arr_mat2x4_f16_std140_uint_4 @@ -59,13 +55,17 @@ %_arr_mat2x4_f16_std140_uint_4_0 = OpTypeArray %mat2x4_f16_std140 %uint_4 %_ptr_Function__arr_mat2x4_f16_std140_uint_4_0 = OpTypePointer Function %_arr_mat2x4_f16_std140_uint_4_0 %_ptr_Function__arr_mat2v4half_uint_4 = OpTypePointer Function %_arr_mat2v4half_uint_4 - %50 = OpConstantNull %_arr_mat2v4half_uint_4 -%_ptr_Function_mat2v4half = OpTypePointer Function %mat2v4half -%_ptr_Function_mat2x4_f16_std140 = OpTypePointer Function %mat2x4_f16_std140 + %42 = OpConstantNull %_arr_mat2v4half_uint_4 +%_ptr_Workgroup_mat2v4half = OpTypePointer Workgroup %mat2v4half + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v4half = OpTypePointer Uniform %v4half %_ptr_Workgroup_v4half = OpTypePointer Workgroup %v4half %_ptr_Uniform_half = OpTypePointer Uniform %half %_ptr_Workgroup_half = OpTypePointer Workgroup %half + %bool = OpTypeBool + %77 = OpConstantNull %mat2v4half +%_ptr_Function_mat2v4half = OpTypePointer Function %mat2v4half +%_ptr_Function_mat2x4_f16_std140 = OpTypePointer Function %mat2x4_f16_std140 %90 = OpTypeFunction %void %95 = OpTypeFunction %_arr_mat2x4_f16_std140_uint_4_0 %_arr_mat2x4_f16_std140_uint_4 %_ptr_Function__arr_mat2x4_f16_std140_uint_4 = OpTypePointer Function %_arr_mat2x4_f16_std140_uint_4 @@ -73,8 +73,8 @@ %f_inner = OpFunction %void None %19 %tint_local_index = OpFunctionParameter %uint %20 = OpLabel - %46 = OpVariable %_ptr_Function__arr_mat2x4_f16_std140_uint_4_0 Function - %48 = OpVariable %_ptr_Function__arr_mat2v4half_uint_4 Function %50 + %38 = OpVariable %_ptr_Function__arr_mat2x4_f16_std140_uint_4_0 Function + %40 = OpVariable %_ptr_Function__arr_mat2v4half_uint_4 Function %42 OpBranch %21 %21 = OpLabel OpBranch %24 @@ -83,70 +83,70 @@ OpLoopMerge %25 %23 None OpBranch %22 %22 = OpLabel - %28 = OpUGreaterThanEqual %bool %26 %uint_4 - OpSelectionMerge %30 None - OpBranchConditional %28 %31 %30 - %31 = OpLabel + %72 = OpUGreaterThanEqual %bool %26 %uint_4 + OpSelectionMerge %74 None + OpBranchConditional %72 %75 %74 + %75 = OpLabel OpBranch %25 - %30 = OpLabel - %32 = OpAccessChain %_ptr_Workgroup_mat2v4half %w %26 - OpStore %32 %34 None + %74 = OpLabel + %76 = OpAccessChain %_ptr_Workgroup_mat2v4half %w %26 + OpStore %76 %77 None OpBranch %23 %23 = OpLabel %27 = OpIAdd %uint %26 %uint_1 OpBranch %24 %25 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %39 = OpAccessChain %_ptr_Uniform__arr_mat2x4_f16_std140_uint_4 %1 %uint_0 - %42 = OpLoad %_arr_mat2x4_f16_std140_uint_4 %39 None - %43 = OpFunctionCall %_arr_mat2x4_f16_std140_uint_4_0 %tint_convert_explicit_layout %42 - OpStore %46 %43 - OpBranch %51 - %51 = OpLabel - OpBranch %54 - %54 = OpLabel - %56 = OpPhi %uint %uint_0 %51 %57 %53 - OpLoopMerge %55 %53 None - OpBranch %52 - %52 = OpLabel - %58 = OpUGreaterThanEqual %bool %56 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %58 %60 %59 - %60 = OpLabel - OpBranch %55 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_mat2v4half %48 %56 - %63 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %46 %56 - %65 = OpLoad %mat2x4_f16_std140 %63 None - %66 = OpCompositeExtract %v4half %65 0 - %67 = OpCompositeExtract %v4half %65 1 - %68 = OpCompositeConstruct %mat2v4half %66 %67 - OpStore %61 %68 None - OpBranch %53 - %53 = OpLabel - %57 = OpIAdd %uint %56 %uint_1 - OpBranch %54 - %55 = OpLabel - %69 = OpLoad %_arr_mat2v4half_uint_4 %48 None - OpStore %w %69 None - %70 = OpAccessChain %_ptr_Workgroup_mat2v4half %w %uint_1 - %71 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_0 - %73 = OpLoad %v4half %71 None - %74 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 - %75 = OpLoad %v4half %74 None - %76 = OpCompositeConstruct %mat2v4half %73 %75 - OpStore %70 %76 None - %77 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_1 %uint_0 - %79 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_1 - %80 = OpLoad %v4half %79 None - %81 = OpVectorShuffle %v4half %80 %80 1 3 0 2 - OpStore %77 %81 None - %82 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_1 %uint_0 - %83 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_1 - %84 = OpAccessChain %_ptr_Uniform_half %83 %uint_0 - %86 = OpLoad %half %84 None - %87 = OpAccessChain %_ptr_Workgroup_half %82 %uint_0 - OpStore %87 %86 None + %31 = OpAccessChain %_ptr_Uniform__arr_mat2x4_f16_std140_uint_4 %1 %uint_0 + %34 = OpLoad %_arr_mat2x4_f16_std140_uint_4 %31 None + %35 = OpFunctionCall %_arr_mat2x4_f16_std140_uint_4_0 %tint_convert_explicit_layout %34 + OpStore %38 %35 + OpBranch %43 + %43 = OpLabel + OpBranch %46 + %46 = OpLabel + %48 = OpPhi %uint %uint_0 %43 %49 %45 + OpLoopMerge %47 %45 None + OpBranch %44 + %44 = OpLabel + %78 = OpUGreaterThanEqual %bool %48 %uint_4 + OpSelectionMerge %79 None + OpBranchConditional %78 %80 %79 + %80 = OpLabel + OpBranch %47 + %79 = OpLabel + %81 = OpAccessChain %_ptr_Function_mat2v4half %40 %48 + %83 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %38 %48 + %85 = OpLoad %mat2x4_f16_std140 %83 None + %86 = OpCompositeExtract %v4half %85 0 + %87 = OpCompositeExtract %v4half %85 1 + %88 = OpCompositeConstruct %mat2v4half %86 %87 + OpStore %81 %88 None + OpBranch %45 + %45 = OpLabel + %49 = OpIAdd %uint %48 %uint_1 + OpBranch %46 + %47 = OpLabel + %50 = OpLoad %_arr_mat2v4half_uint_4 %40 None + OpStore %w %50 None + %51 = OpAccessChain %_ptr_Workgroup_mat2v4half %w %uint_1 + %54 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_0 + %56 = OpLoad %v4half %54 None + %57 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 + %58 = OpLoad %v4half %57 None + %59 = OpCompositeConstruct %mat2v4half %56 %58 + OpStore %51 %59 None + %60 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_1 %uint_0 + %62 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_1 + %63 = OpLoad %v4half %62 None + %64 = OpVectorShuffle %v4half %63 %63 1 3 0 2 + OpStore %60 %64 None + %65 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_1 %uint_0 + %66 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_1 + %67 = OpAccessChain %_ptr_Uniform_half %66 %uint_0 + %69 = OpLoad %half %67 None + %70 = OpAccessChain %_ptr_Workgroup_half %65 %uint_0 + OpStore %70 %69 None OpReturn OpFunctionEnd %f = OpFunction %void None %90 @@ -169,21 +169,21 @@ OpLoopMerge %105 %103 None OpBranch %102 %102 = OpLabel - %108 = OpUGreaterThanEqual %bool %106 %uint_4 - OpSelectionMerge %109 None - OpBranchConditional %108 %110 %109 - %110 = OpLabel + %109 = OpUGreaterThanEqual %bool %106 %uint_4 + OpSelectionMerge %110 None + OpBranchConditional %109 %111 %110 + %111 = OpLabel OpBranch %105 - %109 = OpLabel - %111 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %97 %106 - %112 = OpLoad %mat2x4_f16_std140 %111 None - %113 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %99 %106 - OpStore %113 %112 None + %110 = OpLabel + %112 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %97 %106 + %113 = OpLoad %mat2x4_f16_std140 %112 None + %114 = OpAccessChain %_ptr_Function_mat2x4_f16_std140 %99 %106 + OpStore %114 %113 None OpBranch %103 %103 = OpLabel %107 = OpIAdd %uint %106 %uint_1 OpBranch %104 %105 = OpLabel - %114 = OpLoad %_arr_mat2x4_f16_std140_uint_4_0 %99 None - OpReturnValue %114 + %108 = OpLoad %_arr_mat2x4_f16_std140_uint_4_0 %99 None + OpReturnValue %108 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.spvasm index fd6b9b4..f4bf821 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -120,21 +120,21 @@ OpLoopMerge %73 %71 None OpBranch %70 %70 = OpLabel - %76 = OpUGreaterThanEqual %bool %74 %uint_4 - OpSelectionMerge %78 None - OpBranchConditional %76 %79 %78 - %79 = OpLabel + %77 = OpUGreaterThanEqual %bool %74 %uint_4 + OpSelectionMerge %79 None + OpBranchConditional %77 %80 %79 + %80 = OpLabel OpBranch %73 - %78 = OpLabel - %80 = OpAccessChain %_ptr_Function_mat2v4float %64 %74 - %82 = OpLoad %mat2v4float %80 None - %83 = OpAccessChain %_ptr_Function_mat2v4float %66 %74 - OpStore %83 %82 None + %79 = OpLabel + %81 = OpAccessChain %_ptr_Function_mat2v4float %64 %74 + %83 = OpLoad %mat2v4float %81 None + %84 = OpAccessChain %_ptr_Function_mat2v4float %66 %74 + OpStore %84 %83 None OpBranch %71 %71 = OpLabel %75 = OpIAdd %uint %74 %uint_1 OpBranch %72 %73 = OpLabel - %84 = OpLoad %_arr_mat2v4float_uint_4_0 %66 None - OpReturnValue %84 + %76 = OpLoad %_arr_mat2v4float_uint_4_0 %66 None + OpReturnValue %76 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.spvasm index b430286..66bfe6e 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.spvasm
@@ -97,21 +97,21 @@ OpLoopMerge %55 %53 None OpBranch %52 %52 = OpLabel - %58 = OpUGreaterThanEqual %bool %56 %uint_4 - OpSelectionMerge %60 None - OpBranchConditional %58 %61 %60 - %61 = OpLabel + %59 = OpUGreaterThanEqual %bool %56 %uint_4 + OpSelectionMerge %61 None + OpBranchConditional %59 %62 %61 + %62 = OpLabel OpBranch %55 - %60 = OpLabel - %62 = OpAccessChain %_ptr_Function_mat2v4float %46 %56 - %64 = OpLoad %mat2v4float %62 None - %65 = OpAccessChain %_ptr_Function_mat2v4float %48 %56 - OpStore %65 %64 None + %61 = OpLabel + %63 = OpAccessChain %_ptr_Function_mat2v4float %46 %56 + %65 = OpLoad %mat2v4float %63 None + %66 = OpAccessChain %_ptr_Function_mat2v4float %48 %56 + OpStore %66 %65 None OpBranch %53 %53 = OpLabel %57 = OpIAdd %uint %56 %uint_1 OpBranch %54 %55 = OpLabel - %66 = OpLoad %_arr_mat2v4float_uint_4_0 %48 None - OpReturnValue %66 + %58 = OpLoad %_arr_mat2v4float_uint_4_0 %48 None + OpReturnValue %58 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_fn.wgsl.expected.spvasm index 1f7d5e5..06c2126 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_fn.wgsl.expected.spvasm
@@ -128,21 +128,21 @@ OpLoopMerge %76 %74 None OpBranch %73 %73 = OpLabel - %79 = OpUGreaterThanEqual %bool %77 %uint_4 - OpSelectionMerge %81 None - OpBranchConditional %79 %82 %81 - %82 = OpLabel + %80 = OpUGreaterThanEqual %bool %77 %uint_4 + OpSelectionMerge %82 None + OpBranchConditional %80 %83 %82 + %83 = OpLabel OpBranch %76 - %81 = OpLabel - %83 = OpAccessChain %_ptr_Function_mat2v4float %67 %77 - %85 = OpLoad %mat2v4float %83 None - %86 = OpAccessChain %_ptr_Function_mat2v4float %69 %77 - OpStore %86 %85 None + %82 = OpLabel + %84 = OpAccessChain %_ptr_Function_mat2v4float %67 %77 + %86 = OpLoad %mat2v4float %84 None + %87 = OpAccessChain %_ptr_Function_mat2v4float %69 %77 + OpStore %87 %86 None OpBranch %74 %74 = OpLabel %78 = OpIAdd %uint %77 %uint_1 OpBranch %75 %76 = OpLabel - %87 = OpLoad %_arr_mat2v4float_uint_4_0 %69 None - OpReturnValue %87 + %79 = OpLoad %_arr_mat2v4float_uint_4_0 %69 None + OpReturnValue %79 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_private.wgsl.expected.spvasm index 6330240..3bb4f49 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_private.wgsl.expected.spvasm
@@ -104,21 +104,21 @@ OpLoopMerge %63 %61 None OpBranch %60 %60 = OpLabel - %66 = OpUGreaterThanEqual %bool %64 %uint_4 - OpSelectionMerge %68 None - OpBranchConditional %66 %69 %68 - %69 = OpLabel + %67 = OpUGreaterThanEqual %bool %64 %uint_4 + OpSelectionMerge %69 None + OpBranchConditional %67 %70 %69 + %70 = OpLabel OpBranch %63 - %68 = OpLabel - %70 = OpAccessChain %_ptr_Function_mat2v4float %55 %64 - %72 = OpLoad %mat2v4float %70 None - %73 = OpAccessChain %_ptr_Function_mat2v4float %57 %64 - OpStore %73 %72 None + %69 = OpLabel + %71 = OpAccessChain %_ptr_Function_mat2v4float %55 %64 + %73 = OpLoad %mat2v4float %71 None + %74 = OpAccessChain %_ptr_Function_mat2v4float %57 %64 + OpStore %74 %73 None OpBranch %61 %61 = OpLabel %65 = OpIAdd %uint %64 %uint_1 OpBranch %62 %63 = OpLabel - %74 = OpLoad %_arr_mat2v4float_uint_4_0 %57 None - OpReturnValue %74 + %66 = OpLoad %_arr_mat2v4float_uint_4_0 %57 None + OpReturnValue %66 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_storage.wgsl.expected.spvasm index 753a129..fce7c51 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_storage.wgsl.expected.spvasm
@@ -104,23 +104,23 @@ OpLoopMerge %60 %58 None OpBranch %57 %57 = OpLabel - %63 = OpUGreaterThanEqual %bool %61 %uint_4 - OpSelectionMerge %65 None - OpBranchConditional %63 %66 %65 - %66 = OpLabel + %64 = OpUGreaterThanEqual %bool %61 %uint_4 + OpSelectionMerge %66 None + OpBranchConditional %64 %67 %66 + %67 = OpLabel OpBranch %60 - %65 = OpLabel - %67 = OpAccessChain %_ptr_Function_mat2v4float %51 %61 - %69 = OpLoad %mat2v4float %67 None - %70 = OpAccessChain %_ptr_Function_mat2v4float %53 %61 - OpStore %70 %69 None + %66 = OpLabel + %68 = OpAccessChain %_ptr_Function_mat2v4float %51 %61 + %70 = OpLoad %mat2v4float %68 None + %71 = OpAccessChain %_ptr_Function_mat2v4float %53 %61 + OpStore %71 %70 None OpBranch %58 %58 = OpLabel %62 = OpIAdd %uint %61 %uint_1 OpBranch %59 %60 = OpLabel - %71 = OpLoad %_arr_mat2v4float_uint_4_0 %53 None - OpReturnValue %71 + %63 = OpLoad %_arr_mat2v4float_uint_4_0 %53 None + OpReturnValue %63 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %_arr_mat2v4float_uint_4 None %73 %tint_source_0 = OpFunctionParameter %_arr_mat2v4float_uint_4_0 @@ -136,21 +136,21 @@ OpLoopMerge %82 %80 None OpBranch %79 %79 = OpLabel - %85 = OpUGreaterThanEqual %bool %83 %uint_4 - OpSelectionMerge %86 None - OpBranchConditional %85 %87 %86 - %87 = OpLabel + %86 = OpUGreaterThanEqual %bool %83 %uint_4 + OpSelectionMerge %87 None + OpBranchConditional %86 %88 %87 + %88 = OpLabel OpBranch %82 - %86 = OpLabel - %88 = OpAccessChain %_ptr_Function_mat2v4float %75 %83 - %89 = OpLoad %mat2v4float %88 None - %90 = OpAccessChain %_ptr_Function_mat2v4float %76 %83 - OpStore %90 %89 None + %87 = OpLabel + %89 = OpAccessChain %_ptr_Function_mat2v4float %75 %83 + %90 = OpLoad %mat2v4float %89 None + %91 = OpAccessChain %_ptr_Function_mat2v4float %76 %83 + OpStore %91 %90 None OpBranch %80 %80 = OpLabel %84 = OpIAdd %uint %83 %uint_1 OpBranch %81 %82 = OpLabel - %91 = OpLoad %_arr_mat2v4float_uint_4 %76 None - OpReturnValue %91 + %85 = OpLoad %_arr_mat2v4float_uint_4 %76 None + OpReturnValue %85 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_workgroup.wgsl.expected.spvasm index d5b7136..57ee3c7 100644 --- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_workgroup.wgsl.expected.spvasm
@@ -41,19 +41,19 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %18 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_mat2v4float = OpTypePointer Workgroup %mat2v4float - %33 = OpConstantNull %mat2v4float - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_mat2v4float_uint_4 = OpTypePointer Uniform %_arr_mat2v4float_uint_4 %uint_0 = OpConstant %uint 0 +%_ptr_Workgroup_mat2v4float = OpTypePointer Workgroup %mat2v4float + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_mat2v4float = OpTypePointer Uniform %mat2v4float %_ptr_Workgroup_v4float = OpTypePointer Workgroup %v4float %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Workgroup_float = OpTypePointer Workgroup %float + %bool = OpTypeBool + %60 = OpConstantNull %mat2v4float %62 = OpTypeFunction %void %67 = OpTypeFunction %_arr_mat2v4float_uint_4_0 %_arr_mat2v4float_uint_4 %_ptr_Function__arr_mat2v4float_uint_4 = OpTypePointer Function %_arr_mat2v4float_uint_4 @@ -71,39 +71,39 @@ OpLoopMerge %24 %22 None OpBranch %21 %21 = OpLabel - %27 = OpUGreaterThanEqual %bool %25 %uint_4 - OpSelectionMerge %29 None - OpBranchConditional %27 %30 %29 - %30 = OpLabel + %55 = OpUGreaterThanEqual %bool %25 %uint_4 + OpSelectionMerge %57 None + OpBranchConditional %55 %58 %57 + %58 = OpLabel OpBranch %24 - %29 = OpLabel - %31 = OpAccessChain %_ptr_Workgroup_mat2v4float %w %25 - OpStore %31 %33 None + %57 = OpLabel + %59 = OpAccessChain %_ptr_Workgroup_mat2v4float %w %25 + OpStore %59 %60 None OpBranch %22 %22 = OpLabel %26 = OpIAdd %uint %25 %uint_1 OpBranch %23 %24 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %38 = OpAccessChain %_ptr_Uniform__arr_mat2v4float_uint_4 %1 %uint_0 - %41 = OpLoad %_arr_mat2v4float_uint_4 %38 None - %42 = OpFunctionCall %_arr_mat2v4float_uint_4_0 %tint_convert_explicit_layout %41 - OpStore %w %42 None - %44 = OpAccessChain %_ptr_Workgroup_mat2v4float %w %uint_1 - %45 = OpAccessChain %_ptr_Uniform_mat2v4float %1 %uint_0 %uint_2 - %47 = OpLoad %mat2v4float %45 None - OpStore %44 %47 None + %30 = OpAccessChain %_ptr_Uniform__arr_mat2v4float_uint_4 %1 %uint_0 + %33 = OpLoad %_arr_mat2v4float_uint_4 %30 None + %34 = OpFunctionCall %_arr_mat2v4float_uint_4_0 %tint_convert_explicit_layout %33 + OpStore %w %34 None + %36 = OpAccessChain %_ptr_Workgroup_mat2v4float %w %uint_1 + %39 = OpAccessChain %_ptr_Uniform_mat2v4float %1 %uint_0 %uint_2 + %41 = OpLoad %mat2v4float %39 None + OpStore %36 %41 None + %42 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 %uint_0 + %44 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 %uint_1 + %46 = OpLoad %v4float %44 None + %47 = OpVectorShuffle %v4float %46 %46 1 3 0 2 + OpStore %42 %47 None %48 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 %uint_0 - %50 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 %uint_1 - %52 = OpLoad %v4float %50 None - %53 = OpVectorShuffle %v4float %52 %52 1 3 0 2 - OpStore %48 %53 None - %54 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 %uint_0 - %55 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 %uint_1 - %56 = OpAccessChain %_ptr_Uniform_float %55 %uint_0 - %58 = OpLoad %float %56 None - %59 = OpAccessChain %_ptr_Workgroup_float %54 %uint_0 - OpStore %59 %58 None + %49 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 %uint_1 + %50 = OpAccessChain %_ptr_Uniform_float %49 %uint_0 + %52 = OpLoad %float %50 None + %53 = OpAccessChain %_ptr_Workgroup_float %48 %uint_0 + OpStore %53 %52 None OpReturn OpFunctionEnd %f = OpFunction %void None %62 @@ -126,21 +126,21 @@ OpLoopMerge %78 %76 None OpBranch %75 %75 = OpLabel - %81 = OpUGreaterThanEqual %bool %79 %uint_4 - OpSelectionMerge %82 None - OpBranchConditional %81 %83 %82 - %83 = OpLabel + %82 = OpUGreaterThanEqual %bool %79 %uint_4 + OpSelectionMerge %83 None + OpBranchConditional %82 %84 %83 + %84 = OpLabel OpBranch %78 - %82 = OpLabel - %84 = OpAccessChain %_ptr_Function_mat2v4float %69 %79 - %86 = OpLoad %mat2v4float %84 None - %87 = OpAccessChain %_ptr_Function_mat2v4float %71 %79 - OpStore %87 %86 None + %83 = OpLabel + %85 = OpAccessChain %_ptr_Function_mat2v4float %69 %79 + %87 = OpLoad %mat2v4float %85 None + %88 = OpAccessChain %_ptr_Function_mat2v4float %71 %79 + OpStore %88 %87 None OpBranch %76 %76 = OpLabel %80 = OpIAdd %uint %79 %uint_1 OpBranch %77 %78 = OpLabel - %88 = OpLoad %_arr_mat2v4float_uint_4_0 %71 None - OpReturnValue %88 + %81 = OpLoad %_arr_mat2v4float_uint_4_0 %71 None + OpReturnValue %81 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.spvasm index e66c217..81a5773 100644 --- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -72,9 +72,9 @@ %_arr_mat3v3float_uint_4 = OpTypeArray %mat3v3float %uint_4 %_ptr_Function__arr_mat3v3float_uint_4 = OpTypePointer Function %_arr_mat3v3float_uint_4 %64 = OpConstantNull %_arr_mat3v3float_uint_4 +%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %bool = OpTypeBool %_ptr_Function_mat3x3_f32_std140 = OpTypePointer Function %mat3x3_f32_std140 -%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %95 = OpTypeFunction %_arr_mat3x3_f32_std140_uint_4_0 %_arr_mat3x3_f32_std140_uint_4 %_ptr_Function__arr_mat3x3_f32_std140_uint_4 = OpTypePointer Function %_arr_mat3x3_f32_std140_uint_4 %100 = OpConstantNull %_arr_mat3x3_f32_std140_uint_4_0 @@ -119,35 +119,35 @@ OpLoopMerge %69 %67 None OpBranch %66 %66 = OpLabel - %72 = OpUGreaterThanEqual %bool %70 %uint_4 - OpSelectionMerge %74 None - OpBranchConditional %72 %75 %74 - %75 = OpLabel + %82 = OpUGreaterThanEqual %bool %70 %uint_4 + OpSelectionMerge %84 None + OpBranchConditional %82 %85 %84 + %85 = OpLabel OpBranch %69 - %74 = OpLabel - %76 = OpAccessChain %_ptr_Function_mat3v3float %61 %70 - %77 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %59 %70 - %79 = OpLoad %mat3x3_f32_std140 %77 None - %80 = OpCompositeExtract %v3float %79 0 - %81 = OpCompositeExtract %v3float %79 1 - %82 = OpCompositeExtract %v3float %79 2 - %83 = OpCompositeConstruct %mat3v3float %80 %81 %82 - OpStore %76 %83 None + %84 = OpLabel + %86 = OpAccessChain %_ptr_Function_mat3v3float %61 %70 + %87 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %59 %70 + %89 = OpLoad %mat3x3_f32_std140 %87 None + %90 = OpCompositeExtract %v3float %89 0 + %91 = OpCompositeExtract %v3float %89 1 + %92 = OpCompositeExtract %v3float %89 2 + %93 = OpCompositeConstruct %mat3v3float %90 %91 %92 + OpStore %86 %93 None OpBranch %67 %67 = OpLabel %71 = OpIAdd %uint %70 %uint_1 OpBranch %68 %69 = OpLabel %l_a = OpLoad %_arr_mat3v3float_uint_4 %61 None - %85 = OpCompositeExtract %float %l_a_i_i 0 - %86 = OpCompositeExtract %float %l_a 0 0 0 - %87 = OpFAdd %float %85 %86 - %88 = OpCompositeExtract %float %l_a_i 0 0 - %89 = OpFAdd %float %87 %88 - %90 = OpCompositeExtract %float %l_a_i_i 0 - %91 = OpFAdd %float %89 %90 - %92 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 - OpStore %92 %91 None + %73 = OpCompositeExtract %float %l_a_i_i 0 + %74 = OpCompositeExtract %float %l_a 0 0 0 + %75 = OpFAdd %float %73 %74 + %76 = OpCompositeExtract %float %l_a_i 0 0 + %77 = OpFAdd %float %75 %76 + %78 = OpCompositeExtract %float %l_a_i_i 0 + %79 = OpFAdd %float %77 %78 + %80 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 + OpStore %80 %79 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat3x3_f32_std140_uint_4_0 None %95 @@ -164,21 +164,21 @@ OpLoopMerge %105 %103 None OpBranch %102 %102 = OpLabel - %108 = OpUGreaterThanEqual %bool %106 %uint_4 - OpSelectionMerge %109 None - OpBranchConditional %108 %110 %109 - %110 = OpLabel + %109 = OpUGreaterThanEqual %bool %106 %uint_4 + OpSelectionMerge %110 None + OpBranchConditional %109 %111 %110 + %111 = OpLabel OpBranch %105 - %109 = OpLabel - %111 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %97 %106 - %112 = OpLoad %mat3x3_f32_std140 %111 None - %113 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %99 %106 - OpStore %113 %112 None + %110 = OpLabel + %112 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %97 %106 + %113 = OpLoad %mat3x3_f32_std140 %112 None + %114 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %99 %106 + OpStore %114 %113 None OpBranch %103 %103 = OpLabel %107 = OpIAdd %uint %106 %uint_1 OpBranch %104 %105 = OpLabel - %114 = OpLoad %_arr_mat3x3_f32_std140_uint_4_0 %99 None - OpReturnValue %114 + %108 = OpLoad %_arr_mat3x3_f32_std140_uint_4_0 %99 None + OpReturnValue %108 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.spvasm index 663af67..a7bc48c 100644 --- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.spvasm
@@ -60,10 +60,10 @@ %_arr_mat3v3float_uint_4 = OpTypeArray %mat3v3float %uint_4 %_ptr_Function__arr_mat3v3float_uint_4 = OpTypePointer Function %_arr_mat3v3float_uint_4 %41 = OpConstantNull %_arr_mat3v3float_uint_4 +%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %bool = OpTypeBool %_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float %_ptr_Function_mat3x3_f32_std140 = OpTypePointer Function %mat3x3_f32_std140 -%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %73 = OpTypeFunction %_arr_mat3x3_f32_std140_uint_4_0 %_arr_mat3x3_f32_std140_uint_4 %_ptr_Function__arr_mat3x3_f32_std140_uint_4 = OpTypePointer Function %_arr_mat3x3_f32_std140_uint_4 %78 = OpConstantNull %_arr_mat3x3_f32_std140_uint_4_0 @@ -91,35 +91,35 @@ OpLoopMerge %46 %44 None OpBranch %43 %43 = OpLabel - %49 = OpUGreaterThanEqual %bool %47 %uint_4 - OpSelectionMerge %51 None - OpBranchConditional %49 %52 %51 - %52 = OpLabel + %59 = OpUGreaterThanEqual %bool %47 %uint_4 + OpSelectionMerge %61 None + OpBranchConditional %59 %62 %61 + %62 = OpLabel OpBranch %46 - %51 = OpLabel - %53 = OpAccessChain %_ptr_Function_mat3v3float %38 %47 - %55 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %36 %47 - %57 = OpLoad %mat3x3_f32_std140 %55 None - %58 = OpCompositeExtract %v3float %57 0 - %59 = OpCompositeExtract %v3float %57 1 - %60 = OpCompositeExtract %v3float %57 2 - %61 = OpCompositeConstruct %mat3v3float %58 %59 %60 - OpStore %53 %61 None + %61 = OpLabel + %63 = OpAccessChain %_ptr_Function_mat3v3float %38 %47 + %65 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %36 %47 + %67 = OpLoad %mat3x3_f32_std140 %65 None + %68 = OpCompositeExtract %v3float %67 0 + %69 = OpCompositeExtract %v3float %67 1 + %70 = OpCompositeExtract %v3float %67 2 + %71 = OpCompositeConstruct %mat3v3float %68 %69 %70 + OpStore %63 %71 None OpBranch %44 %44 = OpLabel %48 = OpIAdd %uint %47 %uint_1 OpBranch %45 %46 = OpLabel %l_a = OpLoad %_arr_mat3v3float_uint_4 %38 None - %63 = OpCompositeExtract %float %l_a_i_i 0 - %64 = OpCompositeExtract %float %l_a 0 0 0 - %65 = OpFAdd %float %63 %64 - %66 = OpCompositeExtract %float %l_a_i 0 0 - %67 = OpFAdd %float %65 %66 - %68 = OpCompositeExtract %float %l_a_i_i 0 - %69 = OpFAdd %float %67 %68 - %70 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 - OpStore %70 %69 None + %50 = OpCompositeExtract %float %l_a_i_i 0 + %51 = OpCompositeExtract %float %l_a 0 0 0 + %52 = OpFAdd %float %50 %51 + %53 = OpCompositeExtract %float %l_a_i 0 0 + %54 = OpFAdd %float %52 %53 + %55 = OpCompositeExtract %float %l_a_i_i 0 + %56 = OpFAdd %float %54 %55 + %57 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 + OpStore %57 %56 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat3x3_f32_std140_uint_4_0 None %73 @@ -136,21 +136,21 @@ OpLoopMerge %83 %81 None OpBranch %80 %80 = OpLabel - %86 = OpUGreaterThanEqual %bool %84 %uint_4 - OpSelectionMerge %87 None - OpBranchConditional %86 %88 %87 - %88 = OpLabel + %87 = OpUGreaterThanEqual %bool %84 %uint_4 + OpSelectionMerge %88 None + OpBranchConditional %87 %89 %88 + %89 = OpLabel OpBranch %83 - %87 = OpLabel - %89 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %75 %84 - %90 = OpLoad %mat3x3_f32_std140 %89 None - %91 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %77 %84 - OpStore %91 %90 None + %88 = OpLabel + %90 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %75 %84 + %91 = OpLoad %mat3x3_f32_std140 %90 None + %92 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %77 %84 + OpStore %92 %91 None OpBranch %81 %81 = OpLabel %85 = OpIAdd %uint %84 %uint_1 OpBranch %82 %83 = OpLabel - %92 = OpLoad %_arr_mat3x3_f32_std140_uint_4_0 %77 None - OpReturnValue %92 + %86 = OpLoad %_arr_mat3x3_f32_std140_uint_4_0 %77 None + OpReturnValue %86 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_fn.wgsl.expected.spvasm index 337cf5b..5f0429a 100644 --- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_fn.wgsl.expected.spvasm
@@ -66,13 +66,13 @@ %_ptr_Function__arr_mat3x3_f32_std140_uint_4_0 = OpTypePointer Function %_arr_mat3x3_f32_std140_uint_4_0 %_ptr_Function__arr_mat3v3float_uint_4 = OpTypePointer Function %_arr_mat3v3float_uint_4 %49 = OpConstantNull %_arr_mat3v3float_uint_4 +%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float + %uint_1 = OpConstant %uint 1 + %uint_2 = OpConstant %uint 2 +%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %bool = OpTypeBool %_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float %_ptr_Function_mat3x3_f32_std140 = OpTypePointer Function %mat3x3_f32_std140 - %uint_1 = OpConstant %uint 1 -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float - %uint_2 = OpConstant %uint 2 -%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %98 = OpTypeFunction %_arr_mat3x3_f32_std140_uint_4_0 %_arr_mat3x3_f32_std140_uint_4 %_ptr_Function__arr_mat3x3_f32_std140_uint_4 = OpTypePointer Function %_arr_mat3x3_f32_std140_uint_4 %103 = OpConstantNull %_arr_mat3x3_f32_std140_uint_4_0 @@ -115,49 +115,49 @@ OpLoopMerge %54 %52 None OpBranch %51 %51 = OpLabel - %57 = OpUGreaterThanEqual %bool %55 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel + %84 = OpUGreaterThanEqual %bool %55 %uint_4 + OpSelectionMerge %86 None + OpBranchConditional %84 %87 %86 + %87 = OpLabel OpBranch %54 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_mat3v3float %47 %55 - %63 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %45 %55 - %65 = OpLoad %mat3x3_f32_std140 %63 None - %66 = OpCompositeExtract %v3float %65 0 - %67 = OpCompositeExtract %v3float %65 1 - %68 = OpCompositeExtract %v3float %65 2 - %69 = OpCompositeConstruct %mat3v3float %66 %67 %68 - OpStore %61 %69 None + %86 = OpLabel + %88 = OpAccessChain %_ptr_Function_mat3v3float %47 %55 + %90 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %45 %55 + %92 = OpLoad %mat3x3_f32_std140 %90 None + %93 = OpCompositeExtract %v3float %92 0 + %94 = OpCompositeExtract %v3float %92 1 + %95 = OpCompositeExtract %v3float %92 2 + %96 = OpCompositeConstruct %mat3v3float %93 %94 %95 + OpStore %88 %96 None OpBranch %52 %52 = OpLabel %56 = OpIAdd %uint %55 %uint_1 OpBranch %53 %54 = OpLabel - %71 = OpLoad %_arr_mat3v3float_uint_4 %47 None - %72 = OpFunctionCall %float %a %71 - %73 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_0 - %75 = OpLoad %v3float %73 None - %76 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_1 + %57 = OpLoad %_arr_mat3v3float_uint_4 %47 None + %58 = OpFunctionCall %float %a %57 + %59 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_0 + %62 = OpLoad %v3float %59 None + %63 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_1 + %64 = OpLoad %v3float %63 None + %65 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_2 + %67 = OpLoad %v3float %65 None + %68 = OpCompositeConstruct %mat3v3float %62 %64 %67 + %69 = OpFunctionCall %float %b %68 + %70 = OpFAdd %float %58 %69 + %71 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_0 + %72 = OpLoad %v3float %71 None + %73 = OpVectorShuffle %v3float %72 %72 2 0 1 + %74 = OpFunctionCall %float %c %73 + %75 = OpFAdd %float %70 %74 + %76 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_0 %77 = OpLoad %v3float %76 None - %78 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_2 - %80 = OpLoad %v3float %78 None - %81 = OpCompositeConstruct %mat3v3float %75 %77 %80 - %82 = OpFunctionCall %float %b %81 - %83 = OpFAdd %float %72 %82 - %84 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_0 - %85 = OpLoad %v3float %84 None - %86 = OpVectorShuffle %v3float %85 %85 2 0 1 - %87 = OpFunctionCall %float %c %86 - %88 = OpFAdd %float %83 %87 - %89 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_0 - %90 = OpLoad %v3float %89 None - %91 = OpVectorShuffle %v3float %90 %90 2 0 1 - %92 = OpCompositeExtract %float %91 0 - %93 = OpFunctionCall %float %d %92 - %94 = OpFAdd %float %88 %93 - %95 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 - OpStore %95 %94 None + %78 = OpVectorShuffle %v3float %77 %77 2 0 1 + %79 = OpCompositeExtract %float %78 0 + %80 = OpFunctionCall %float %d %79 + %81 = OpFAdd %float %75 %80 + %82 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 + OpStore %82 %81 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat3x3_f32_std140_uint_4_0 None %98 @@ -174,21 +174,21 @@ OpLoopMerge %108 %106 None OpBranch %105 %105 = OpLabel - %111 = OpUGreaterThanEqual %bool %109 %uint_4 - OpSelectionMerge %112 None - OpBranchConditional %111 %113 %112 - %113 = OpLabel + %112 = OpUGreaterThanEqual %bool %109 %uint_4 + OpSelectionMerge %113 None + OpBranchConditional %112 %114 %113 + %114 = OpLabel OpBranch %108 - %112 = OpLabel - %114 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %100 %109 - %115 = OpLoad %mat3x3_f32_std140 %114 None - %116 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %102 %109 - OpStore %116 %115 None + %113 = OpLabel + %115 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %100 %109 + %116 = OpLoad %mat3x3_f32_std140 %115 None + %117 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %102 %109 + OpStore %117 %116 None OpBranch %106 %106 = OpLabel %110 = OpIAdd %uint %109 %uint_1 OpBranch %107 %108 = OpLabel - %117 = OpLoad %_arr_mat3x3_f32_std140_uint_4_0 %102 None - OpReturnValue %117 + %111 = OpLoad %_arr_mat3x3_f32_std140_uint_4_0 %102 None + OpReturnValue %111 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_private.wgsl.expected.spvasm index 348efc9..4e66c4f 100644 --- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_private.wgsl.expected.spvasm
@@ -57,17 +57,17 @@ %_arr_mat3x3_f32_std140_uint_4_0 = OpTypeArray %mat3x3_f32_std140 %uint_4 %_ptr_Function__arr_mat3x3_f32_std140_uint_4_0 = OpTypePointer Function %_arr_mat3x3_f32_std140_uint_4_0 %_ptr_Function__arr_mat3v3float_uint_4 = OpTypePointer Function %_arr_mat3v3float_uint_4 - %bool = OpTypeBool -%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float -%_ptr_Function_mat3x3_f32_std140 = OpTypePointer Function %mat3x3_f32_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Private_mat3v3float = OpTypePointer Private %mat3v3float + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float %uint_2 = OpConstant %uint 2 %_ptr_Private_v3float = OpTypePointer Private %v3float %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Private_float = OpTypePointer Private %float %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float + %bool = OpTypeBool +%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float +%_ptr_Function_mat3x3_f32_std140 = OpTypePointer Function %mat3x3_f32_std140 %84 = OpTypeFunction %_arr_mat3x3_f32_std140_uint_4_0 %_arr_mat3x3_f32_std140_uint_4 %_ptr_Function__arr_mat3x3_f32_std140_uint_4 = OpTypePointer Function %_arr_mat3x3_f32_std140_uint_4 %89 = OpConstantNull %_arr_mat3x3_f32_std140_uint_4_0 @@ -87,52 +87,52 @@ OpLoopMerge %37 %35 None OpBranch %34 %34 = OpLabel - %40 = OpUGreaterThanEqual %bool %38 %uint_4 - OpSelectionMerge %42 None - OpBranchConditional %40 %43 %42 - %43 = OpLabel + %70 = OpUGreaterThanEqual %bool %38 %uint_4 + OpSelectionMerge %72 None + OpBranchConditional %70 %73 %72 + %73 = OpLabel OpBranch %37 - %42 = OpLabel - %44 = OpAccessChain %_ptr_Function_mat3v3float %31 %38 - %46 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %29 %38 - %48 = OpLoad %mat3x3_f32_std140 %46 None - %49 = OpCompositeExtract %v3float %48 0 - %50 = OpCompositeExtract %v3float %48 1 - %51 = OpCompositeExtract %v3float %48 2 - %52 = OpCompositeConstruct %mat3v3float %49 %50 %51 - OpStore %44 %52 None + %72 = OpLabel + %74 = OpAccessChain %_ptr_Function_mat3v3float %31 %38 + %76 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %29 %38 + %78 = OpLoad %mat3x3_f32_std140 %76 None + %79 = OpCompositeExtract %v3float %78 0 + %80 = OpCompositeExtract %v3float %78 1 + %81 = OpCompositeExtract %v3float %78 2 + %82 = OpCompositeConstruct %mat3v3float %79 %80 %81 + OpStore %74 %82 None OpBranch %35 %35 = OpLabel %39 = OpIAdd %uint %38 %uint_1 OpBranch %36 %37 = OpLabel - %54 = OpLoad %_arr_mat3v3float_uint_4 %31 None - OpStore %p %54 None - %55 = OpAccessChain %_ptr_Private_mat3v3float %p %uint_1 - %57 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_0 - %60 = OpLoad %v3float %57 None - %61 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 - %62 = OpLoad %v3float %61 None - %63 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 - %64 = OpLoad %v3float %63 None - %65 = OpCompositeConstruct %mat3v3float %60 %62 %64 - OpStore %55 %65 None - %66 = OpAccessChain %_ptr_Private_v3float %p %uint_1 %uint_0 - %68 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 - %69 = OpLoad %v3float %68 None - %70 = OpVectorShuffle %v3float %69 %69 2 0 1 - OpStore %66 %70 None - %71 = OpAccessChain %_ptr_Private_v3float %p %uint_1 %uint_0 - %72 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 - %73 = OpAccessChain %_ptr_Uniform_float %72 %uint_0 - %75 = OpLoad %float %73 None - %76 = OpAccessChain %_ptr_Private_float %71 %uint_0 - OpStore %76 %75 None - %78 = OpAccessChain %_ptr_Private_v3float %p %uint_1 %uint_0 - %79 = OpAccessChain %_ptr_Private_float %78 %uint_0 - %80 = OpLoad %float %79 None - %81 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 - OpStore %81 %80 None + %40 = OpLoad %_arr_mat3v3float_uint_4 %31 None + OpStore %p %40 None + %41 = OpAccessChain %_ptr_Private_mat3v3float %p %uint_1 + %44 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_0 + %47 = OpLoad %v3float %44 None + %48 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 + %49 = OpLoad %v3float %48 None + %50 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 + %51 = OpLoad %v3float %50 None + %52 = OpCompositeConstruct %mat3v3float %47 %49 %51 + OpStore %41 %52 None + %53 = OpAccessChain %_ptr_Private_v3float %p %uint_1 %uint_0 + %55 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 + %56 = OpLoad %v3float %55 None + %57 = OpVectorShuffle %v3float %56 %56 2 0 1 + OpStore %53 %57 None + %58 = OpAccessChain %_ptr_Private_v3float %p %uint_1 %uint_0 + %59 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 + %60 = OpAccessChain %_ptr_Uniform_float %59 %uint_0 + %62 = OpLoad %float %60 None + %63 = OpAccessChain %_ptr_Private_float %58 %uint_0 + OpStore %63 %62 None + %65 = OpAccessChain %_ptr_Private_v3float %p %uint_1 %uint_0 + %66 = OpAccessChain %_ptr_Private_float %65 %uint_0 + %67 = OpLoad %float %66 None + %68 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 + OpStore %68 %67 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat3x3_f32_std140_uint_4_0 None %84 @@ -149,21 +149,21 @@ OpLoopMerge %94 %92 None OpBranch %91 %91 = OpLabel - %97 = OpUGreaterThanEqual %bool %95 %uint_4 - OpSelectionMerge %98 None - OpBranchConditional %97 %99 %98 - %99 = OpLabel + %98 = OpUGreaterThanEqual %bool %95 %uint_4 + OpSelectionMerge %99 None + OpBranchConditional %98 %100 %99 + %100 = OpLabel OpBranch %94 - %98 = OpLabel - %100 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %86 %95 - %101 = OpLoad %mat3x3_f32_std140 %100 None - %102 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %88 %95 - OpStore %102 %101 None + %99 = OpLabel + %101 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %86 %95 + %102 = OpLoad %mat3x3_f32_std140 %101 None + %103 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %88 %95 + OpStore %103 %102 None OpBranch %92 %92 = OpLabel %96 = OpIAdd %uint %95 %uint_1 OpBranch %93 %94 = OpLabel - %103 = OpLoad %_arr_mat3x3_f32_std140_uint_4_0 %88 None - OpReturnValue %103 + %97 = OpLoad %_arr_mat3x3_f32_std140_uint_4_0 %88 None + OpReturnValue %97 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_storage.wgsl.expected.spvasm index b814ad1..98bd770 100644 --- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_storage.wgsl.expected.spvasm
@@ -63,16 +63,16 @@ %_arr_mat3v3float_uint_4_0 = OpTypeArray %mat3v3float %uint_4 %_ptr_Function__arr_mat3v3float_uint_4_0 = OpTypePointer Function %_arr_mat3v3float_uint_4_0 %31 = OpConstantNull %_arr_mat3v3float_uint_4_0 - %bool = OpTypeBool -%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float -%_ptr_Function_mat3x3_f32_std140 = OpTypePointer Function %mat3x3_f32_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float %uint_2 = OpConstant %uint 2 + %uint_1 = OpConstant %uint 1 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1 %_ptr_StorageBuffer_v3float = OpTypePointer StorageBuffer %v3float %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float + %bool = OpTypeBool +%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float +%_ptr_Function_mat3x3_f32_std140 = OpTypePointer Function %mat3x3_f32_std140 %82 = OpTypeFunction %void %_arr_mat3v3float_uint_4_0 %101 = OpTypeFunction %void %_arr_uint_uint_1 %mat3v3float %111 = OpTypeFunction %_arr_mat3x3_f32_std140_uint_4_0 %_arr_mat3x3_f32_std140_uint_4 @@ -94,47 +94,47 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_4 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %68 = OpUGreaterThanEqual %bool %37 %uint_4 + OpSelectionMerge %70 None + OpBranchConditional %68 %71 %70 + %71 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Function_mat3v3float %28 %37 - %45 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %26 %37 - %47 = OpLoad %mat3x3_f32_std140 %45 None - %48 = OpCompositeExtract %v3float %47 0 - %49 = OpCompositeExtract %v3float %47 1 - %50 = OpCompositeExtract %v3float %47 2 - %51 = OpCompositeConstruct %mat3v3float %48 %49 %50 - OpStore %43 %51 None + %70 = OpLabel + %72 = OpAccessChain %_ptr_Function_mat3v3float %28 %37 + %74 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %26 %37 + %76 = OpLoad %mat3x3_f32_std140 %74 None + %77 = OpCompositeExtract %v3float %76 0 + %78 = OpCompositeExtract %v3float %76 1 + %79 = OpCompositeExtract %v3float %76 2 + %80 = OpCompositeConstruct %mat3v3float %77 %78 %79 + OpStore %72 %80 None OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel - %53 = OpLoad %_arr_mat3v3float_uint_4_0 %28 None - %54 = OpFunctionCall %void %tint_store_and_preserve_padding %53 - %56 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_0 - %59 = OpLoad %v3float %56 None - %60 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 - %61 = OpLoad %v3float %60 None - %62 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 - %63 = OpLoad %v3float %62 None - %64 = OpCompositeConstruct %mat3v3float %59 %61 %63 - %66 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 - %67 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %66 %64 - %69 = OpAccessChain %_ptr_StorageBuffer_v3float %10 %uint_0 %uint_1 %uint_0 - %71 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 - %72 = OpLoad %v3float %71 None - %73 = OpVectorShuffle %v3float %72 %72 2 0 1 - OpStore %69 %73 None - %74 = OpAccessChain %_ptr_StorageBuffer_v3float %10 %uint_0 %uint_1 %uint_0 - %75 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 - %76 = OpAccessChain %_ptr_Uniform_float %75 %uint_0 - %78 = OpLoad %float %76 None - %79 = OpAccessChain %_ptr_StorageBuffer_float %74 %uint_0 - OpStore %79 %78 None + %39 = OpLoad %_arr_mat3v3float_uint_4_0 %28 None + %40 = OpFunctionCall %void %tint_store_and_preserve_padding %39 + %42 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_0 + %45 = OpLoad %v3float %42 None + %46 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 + %48 = OpLoad %v3float %46 None + %49 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 + %50 = OpLoad %v3float %49 None + %51 = OpCompositeConstruct %mat3v3float %45 %48 %50 + %53 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 + %54 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %53 %51 + %56 = OpAccessChain %_ptr_StorageBuffer_v3float %10 %uint_0 %uint_1 %uint_0 + %58 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 + %59 = OpLoad %v3float %58 None + %60 = OpVectorShuffle %v3float %59 %59 2 0 1 + OpStore %56 %60 None + %61 = OpAccessChain %_ptr_StorageBuffer_v3float %10 %uint_0 %uint_1 %uint_0 + %62 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 + %63 = OpAccessChain %_ptr_Uniform_float %62 %uint_0 + %65 = OpLoad %float %63 None + %66 = OpAccessChain %_ptr_StorageBuffer_float %61 %uint_0 + OpStore %66 %65 None OpReturn OpFunctionEnd %tint_store_and_preserve_padding = OpFunction %void None %82 @@ -197,21 +197,21 @@ OpLoopMerge %121 %119 None OpBranch %118 %118 = OpLabel - %124 = OpUGreaterThanEqual %bool %122 %uint_4 - OpSelectionMerge %125 None - OpBranchConditional %124 %126 %125 - %126 = OpLabel + %125 = OpUGreaterThanEqual %bool %122 %uint_4 + OpSelectionMerge %126 None + OpBranchConditional %125 %127 %126 + %127 = OpLabel OpBranch %121 - %125 = OpLabel - %127 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %113 %122 - %128 = OpLoad %mat3x3_f32_std140 %127 None - %129 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %115 %122 - OpStore %129 %128 None + %126 = OpLabel + %128 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %113 %122 + %129 = OpLoad %mat3x3_f32_std140 %128 None + %130 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %115 %122 + OpStore %130 %129 None OpBranch %119 %119 = OpLabel %123 = OpIAdd %uint %122 %uint_1 OpBranch %120 %121 = OpLabel - %130 = OpLoad %_arr_mat3x3_f32_std140_uint_4_0 %115 None - OpReturnValue %130 + %124 = OpLoad %_arr_mat3x3_f32_std140_uint_4_0 %115 None + OpReturnValue %124 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_workgroup.wgsl.expected.spvasm index 8bc1eb6..06c3146 100644 --- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_workgroup.wgsl.expected.spvasm
@@ -47,10 +47,6 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %19 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_mat3v3float = OpTypePointer Workgroup %mat3v3float - %34 = OpConstantNull %mat3v3float - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_mat3x3_f32_std140_uint_4 = OpTypePointer Uniform %_arr_mat3x3_f32_std140_uint_4 @@ -58,13 +54,17 @@ %_arr_mat3x3_f32_std140_uint_4_0 = OpTypeArray %mat3x3_f32_std140 %uint_4 %_ptr_Function__arr_mat3x3_f32_std140_uint_4_0 = OpTypePointer Function %_arr_mat3x3_f32_std140_uint_4_0 %_ptr_Function__arr_mat3v3float_uint_4 = OpTypePointer Function %_arr_mat3v3float_uint_4 - %50 = OpConstantNull %_arr_mat3v3float_uint_4 -%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float -%_ptr_Function_mat3x3_f32_std140 = OpTypePointer Function %mat3x3_f32_std140 + %42 = OpConstantNull %_arr_mat3v3float_uint_4 +%_ptr_Workgroup_mat3v3float = OpTypePointer Workgroup %mat3v3float + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float %_ptr_Workgroup_v3float = OpTypePointer Workgroup %v3float %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Workgroup_float = OpTypePointer Workgroup %float + %bool = OpTypeBool + %79 = OpConstantNull %mat3v3float +%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float +%_ptr_Function_mat3x3_f32_std140 = OpTypePointer Function %mat3x3_f32_std140 %93 = OpTypeFunction %void %98 = OpTypeFunction %_arr_mat3x3_f32_std140_uint_4_0 %_arr_mat3x3_f32_std140_uint_4 %_ptr_Function__arr_mat3x3_f32_std140_uint_4 = OpTypePointer Function %_arr_mat3x3_f32_std140_uint_4 @@ -72,8 +72,8 @@ %f_inner = OpFunction %void None %19 %tint_local_index = OpFunctionParameter %uint %20 = OpLabel - %46 = OpVariable %_ptr_Function__arr_mat3x3_f32_std140_uint_4_0 Function - %48 = OpVariable %_ptr_Function__arr_mat3v3float_uint_4 Function %50 + %38 = OpVariable %_ptr_Function__arr_mat3x3_f32_std140_uint_4_0 Function + %40 = OpVariable %_ptr_Function__arr_mat3v3float_uint_4 Function %42 OpBranch %21 %21 = OpLabel OpBranch %24 @@ -82,73 +82,73 @@ OpLoopMerge %25 %23 None OpBranch %22 %22 = OpLabel - %28 = OpUGreaterThanEqual %bool %26 %uint_4 - OpSelectionMerge %30 None - OpBranchConditional %28 %31 %30 - %31 = OpLabel + %74 = OpUGreaterThanEqual %bool %26 %uint_4 + OpSelectionMerge %76 None + OpBranchConditional %74 %77 %76 + %77 = OpLabel OpBranch %25 - %30 = OpLabel - %32 = OpAccessChain %_ptr_Workgroup_mat3v3float %w %26 - OpStore %32 %34 None + %76 = OpLabel + %78 = OpAccessChain %_ptr_Workgroup_mat3v3float %w %26 + OpStore %78 %79 None OpBranch %23 %23 = OpLabel %27 = OpIAdd %uint %26 %uint_1 OpBranch %24 %25 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %39 = OpAccessChain %_ptr_Uniform__arr_mat3x3_f32_std140_uint_4 %1 %uint_0 - %42 = OpLoad %_arr_mat3x3_f32_std140_uint_4 %39 None - %43 = OpFunctionCall %_arr_mat3x3_f32_std140_uint_4_0 %tint_convert_explicit_layout %42 - OpStore %46 %43 - OpBranch %51 - %51 = OpLabel - OpBranch %54 - %54 = OpLabel - %56 = OpPhi %uint %uint_0 %51 %57 %53 - OpLoopMerge %55 %53 None - OpBranch %52 - %52 = OpLabel - %58 = OpUGreaterThanEqual %bool %56 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %58 %60 %59 - %60 = OpLabel - OpBranch %55 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_mat3v3float %48 %56 - %63 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %46 %56 - %65 = OpLoad %mat3x3_f32_std140 %63 None - %66 = OpCompositeExtract %v3float %65 0 - %67 = OpCompositeExtract %v3float %65 1 - %68 = OpCompositeExtract %v3float %65 2 - %69 = OpCompositeConstruct %mat3v3float %66 %67 %68 - OpStore %61 %69 None - OpBranch %53 - %53 = OpLabel - %57 = OpIAdd %uint %56 %uint_1 - OpBranch %54 - %55 = OpLabel - %70 = OpLoad %_arr_mat3v3float_uint_4 %48 None - OpStore %w %70 None - %71 = OpAccessChain %_ptr_Workgroup_mat3v3float %w %uint_1 - %72 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_0 - %74 = OpLoad %v3float %72 None - %75 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 - %76 = OpLoad %v3float %75 None - %77 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 - %78 = OpLoad %v3float %77 None - %79 = OpCompositeConstruct %mat3v3float %74 %76 %78 - OpStore %71 %79 None - %80 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 %uint_0 - %82 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 - %83 = OpLoad %v3float %82 None - %84 = OpVectorShuffle %v3float %83 %83 2 0 1 - OpStore %80 %84 None - %85 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 %uint_0 - %86 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 - %87 = OpAccessChain %_ptr_Uniform_float %86 %uint_0 - %89 = OpLoad %float %87 None - %90 = OpAccessChain %_ptr_Workgroup_float %85 %uint_0 - OpStore %90 %89 None + %31 = OpAccessChain %_ptr_Uniform__arr_mat3x3_f32_std140_uint_4 %1 %uint_0 + %34 = OpLoad %_arr_mat3x3_f32_std140_uint_4 %31 None + %35 = OpFunctionCall %_arr_mat3x3_f32_std140_uint_4_0 %tint_convert_explicit_layout %34 + OpStore %38 %35 + OpBranch %43 + %43 = OpLabel + OpBranch %46 + %46 = OpLabel + %48 = OpPhi %uint %uint_0 %43 %49 %45 + OpLoopMerge %47 %45 None + OpBranch %44 + %44 = OpLabel + %80 = OpUGreaterThanEqual %bool %48 %uint_4 + OpSelectionMerge %81 None + OpBranchConditional %80 %82 %81 + %82 = OpLabel + OpBranch %47 + %81 = OpLabel + %83 = OpAccessChain %_ptr_Function_mat3v3float %40 %48 + %85 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %38 %48 + %87 = OpLoad %mat3x3_f32_std140 %85 None + %88 = OpCompositeExtract %v3float %87 0 + %89 = OpCompositeExtract %v3float %87 1 + %90 = OpCompositeExtract %v3float %87 2 + %91 = OpCompositeConstruct %mat3v3float %88 %89 %90 + OpStore %83 %91 None + OpBranch %45 + %45 = OpLabel + %49 = OpIAdd %uint %48 %uint_1 + OpBranch %46 + %47 = OpLabel + %50 = OpLoad %_arr_mat3v3float_uint_4 %40 None + OpStore %w %50 None + %51 = OpAccessChain %_ptr_Workgroup_mat3v3float %w %uint_1 + %54 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_0 + %56 = OpLoad %v3float %54 None + %57 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 + %58 = OpLoad %v3float %57 None + %59 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 + %60 = OpLoad %v3float %59 None + %61 = OpCompositeConstruct %mat3v3float %56 %58 %60 + OpStore %51 %61 None + %62 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 %uint_0 + %64 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 + %65 = OpLoad %v3float %64 None + %66 = OpVectorShuffle %v3float %65 %65 2 0 1 + OpStore %62 %66 None + %67 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 %uint_0 + %68 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 + %69 = OpAccessChain %_ptr_Uniform_float %68 %uint_0 + %71 = OpLoad %float %69 None + %72 = OpAccessChain %_ptr_Workgroup_float %67 %uint_0 + OpStore %72 %71 None OpReturn OpFunctionEnd %f = OpFunction %void None %93 @@ -171,21 +171,21 @@ OpLoopMerge %108 %106 None OpBranch %105 %105 = OpLabel - %111 = OpUGreaterThanEqual %bool %109 %uint_4 - OpSelectionMerge %112 None - OpBranchConditional %111 %113 %112 - %113 = OpLabel + %112 = OpUGreaterThanEqual %bool %109 %uint_4 + OpSelectionMerge %113 None + OpBranchConditional %112 %114 %113 + %114 = OpLabel OpBranch %108 - %112 = OpLabel - %114 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %100 %109 - %115 = OpLoad %mat3x3_f32_std140 %114 None - %116 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %102 %109 - OpStore %116 %115 None + %113 = OpLabel + %115 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %100 %109 + %116 = OpLoad %mat3x3_f32_std140 %115 None + %117 = OpAccessChain %_ptr_Function_mat3x3_f32_std140 %102 %109 + OpStore %117 %116 None OpBranch %106 %106 = OpLabel %110 = OpIAdd %uint %109 %uint_1 OpBranch %107 %108 = OpLabel - %117 = OpLoad %_arr_mat3x3_f32_std140_uint_4_0 %102 None - OpReturnValue %117 + %111 = OpLoad %_arr_mat3x3_f32_std140_uint_4_0 %102 None + OpReturnValue %111 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.spvasm index 2d11d73..2ac6f4f 100644 --- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -121,21 +121,21 @@ OpLoopMerge %73 %71 None OpBranch %70 %70 = OpLabel - %76 = OpUGreaterThanEqual %bool %74 %uint_4 - OpSelectionMerge %78 None - OpBranchConditional %76 %79 %78 - %79 = OpLabel + %77 = OpUGreaterThanEqual %bool %74 %uint_4 + OpSelectionMerge %79 None + OpBranchConditional %77 %80 %79 + %80 = OpLabel OpBranch %73 - %78 = OpLabel - %80 = OpAccessChain %_ptr_Function_mat3v4float %64 %74 - %82 = OpLoad %mat3v4float %80 None - %83 = OpAccessChain %_ptr_Function_mat3v4float %66 %74 - OpStore %83 %82 None + %79 = OpLabel + %81 = OpAccessChain %_ptr_Function_mat3v4float %64 %74 + %83 = OpLoad %mat3v4float %81 None + %84 = OpAccessChain %_ptr_Function_mat3v4float %66 %74 + OpStore %84 %83 None OpBranch %71 %71 = OpLabel %75 = OpIAdd %uint %74 %uint_1 OpBranch %72 %73 = OpLabel - %85 = OpLoad %_arr_mat3v4float_uint_4_0 %66 None - OpReturnValue %85 + %76 = OpLoad %_arr_mat3v4float_uint_4_0 %66 None + OpReturnValue %76 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.spvasm index 300df86..0ff06cd 100644 --- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.spvasm
@@ -97,21 +97,21 @@ OpLoopMerge %55 %53 None OpBranch %52 %52 = OpLabel - %58 = OpUGreaterThanEqual %bool %56 %uint_4 - OpSelectionMerge %60 None - OpBranchConditional %58 %61 %60 - %61 = OpLabel + %59 = OpUGreaterThanEqual %bool %56 %uint_4 + OpSelectionMerge %61 None + OpBranchConditional %59 %62 %61 + %62 = OpLabel OpBranch %55 - %60 = OpLabel - %62 = OpAccessChain %_ptr_Function_mat3v4float %46 %56 - %64 = OpLoad %mat3v4float %62 None - %65 = OpAccessChain %_ptr_Function_mat3v4float %48 %56 - OpStore %65 %64 None + %61 = OpLabel + %63 = OpAccessChain %_ptr_Function_mat3v4float %46 %56 + %65 = OpLoad %mat3v4float %63 None + %66 = OpAccessChain %_ptr_Function_mat3v4float %48 %56 + OpStore %66 %65 None OpBranch %53 %53 = OpLabel %57 = OpIAdd %uint %56 %uint_1 OpBranch %54 %55 = OpLabel - %66 = OpLoad %_arr_mat3v4float_uint_4_0 %48 None - OpReturnValue %66 + %58 = OpLoad %_arr_mat3v4float_uint_4_0 %48 None + OpReturnValue %58 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_fn.wgsl.expected.spvasm index 481f961..1ca2a36 100644 --- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_fn.wgsl.expected.spvasm
@@ -128,21 +128,21 @@ OpLoopMerge %76 %74 None OpBranch %73 %73 = OpLabel - %79 = OpUGreaterThanEqual %bool %77 %uint_4 - OpSelectionMerge %81 None - OpBranchConditional %79 %82 %81 - %82 = OpLabel + %80 = OpUGreaterThanEqual %bool %77 %uint_4 + OpSelectionMerge %82 None + OpBranchConditional %80 %83 %82 + %83 = OpLabel OpBranch %76 - %81 = OpLabel - %83 = OpAccessChain %_ptr_Function_mat3v4float %67 %77 - %85 = OpLoad %mat3v4float %83 None - %86 = OpAccessChain %_ptr_Function_mat3v4float %69 %77 - OpStore %86 %85 None + %82 = OpLabel + %84 = OpAccessChain %_ptr_Function_mat3v4float %67 %77 + %86 = OpLoad %mat3v4float %84 None + %87 = OpAccessChain %_ptr_Function_mat3v4float %69 %77 + OpStore %87 %86 None OpBranch %74 %74 = OpLabel %78 = OpIAdd %uint %77 %uint_1 OpBranch %75 %76 = OpLabel - %87 = OpLoad %_arr_mat3v4float_uint_4_0 %69 None - OpReturnValue %87 + %79 = OpLoad %_arr_mat3v4float_uint_4_0 %69 None + OpReturnValue %79 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_private.wgsl.expected.spvasm index a00ea79..ee9852c 100644 --- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_private.wgsl.expected.spvasm
@@ -104,21 +104,21 @@ OpLoopMerge %63 %61 None OpBranch %60 %60 = OpLabel - %66 = OpUGreaterThanEqual %bool %64 %uint_4 - OpSelectionMerge %68 None - OpBranchConditional %66 %69 %68 - %69 = OpLabel + %67 = OpUGreaterThanEqual %bool %64 %uint_4 + OpSelectionMerge %69 None + OpBranchConditional %67 %70 %69 + %70 = OpLabel OpBranch %63 - %68 = OpLabel - %70 = OpAccessChain %_ptr_Function_mat3v4float %55 %64 - %72 = OpLoad %mat3v4float %70 None - %73 = OpAccessChain %_ptr_Function_mat3v4float %57 %64 - OpStore %73 %72 None + %69 = OpLabel + %71 = OpAccessChain %_ptr_Function_mat3v4float %55 %64 + %73 = OpLoad %mat3v4float %71 None + %74 = OpAccessChain %_ptr_Function_mat3v4float %57 %64 + OpStore %74 %73 None OpBranch %61 %61 = OpLabel %65 = OpIAdd %uint %64 %uint_1 OpBranch %62 %63 = OpLabel - %74 = OpLoad %_arr_mat3v4float_uint_4_0 %57 None - OpReturnValue %74 + %66 = OpLoad %_arr_mat3v4float_uint_4_0 %57 None + OpReturnValue %66 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_storage.wgsl.expected.spvasm index 3463da4..3342b65 100644 --- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_storage.wgsl.expected.spvasm
@@ -104,23 +104,23 @@ OpLoopMerge %60 %58 None OpBranch %57 %57 = OpLabel - %63 = OpUGreaterThanEqual %bool %61 %uint_4 - OpSelectionMerge %65 None - OpBranchConditional %63 %66 %65 - %66 = OpLabel + %64 = OpUGreaterThanEqual %bool %61 %uint_4 + OpSelectionMerge %66 None + OpBranchConditional %64 %67 %66 + %67 = OpLabel OpBranch %60 - %65 = OpLabel - %67 = OpAccessChain %_ptr_Function_mat3v4float %51 %61 - %69 = OpLoad %mat3v4float %67 None - %70 = OpAccessChain %_ptr_Function_mat3v4float %53 %61 - OpStore %70 %69 None + %66 = OpLabel + %68 = OpAccessChain %_ptr_Function_mat3v4float %51 %61 + %70 = OpLoad %mat3v4float %68 None + %71 = OpAccessChain %_ptr_Function_mat3v4float %53 %61 + OpStore %71 %70 None OpBranch %58 %58 = OpLabel %62 = OpIAdd %uint %61 %uint_1 OpBranch %59 %60 = OpLabel - %71 = OpLoad %_arr_mat3v4float_uint_4_0 %53 None - OpReturnValue %71 + %63 = OpLoad %_arr_mat3v4float_uint_4_0 %53 None + OpReturnValue %63 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %_arr_mat3v4float_uint_4 None %73 %tint_source_0 = OpFunctionParameter %_arr_mat3v4float_uint_4_0 @@ -136,21 +136,21 @@ OpLoopMerge %82 %80 None OpBranch %79 %79 = OpLabel - %85 = OpUGreaterThanEqual %bool %83 %uint_4 - OpSelectionMerge %86 None - OpBranchConditional %85 %87 %86 - %87 = OpLabel + %86 = OpUGreaterThanEqual %bool %83 %uint_4 + OpSelectionMerge %87 None + OpBranchConditional %86 %88 %87 + %88 = OpLabel OpBranch %82 - %86 = OpLabel - %88 = OpAccessChain %_ptr_Function_mat3v4float %75 %83 - %89 = OpLoad %mat3v4float %88 None - %90 = OpAccessChain %_ptr_Function_mat3v4float %76 %83 - OpStore %90 %89 None + %87 = OpLabel + %89 = OpAccessChain %_ptr_Function_mat3v4float %75 %83 + %90 = OpLoad %mat3v4float %89 None + %91 = OpAccessChain %_ptr_Function_mat3v4float %76 %83 + OpStore %91 %90 None OpBranch %80 %80 = OpLabel %84 = OpIAdd %uint %83 %uint_1 OpBranch %81 %82 = OpLabel - %91 = OpLoad %_arr_mat3v4float_uint_4 %76 None - OpReturnValue %91 + %85 = OpLoad %_arr_mat3v4float_uint_4 %76 None + OpReturnValue %85 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_workgroup.wgsl.expected.spvasm index 4705ed8..a52ae73 100644 --- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_workgroup.wgsl.expected.spvasm
@@ -41,19 +41,19 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %18 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_mat3v4float = OpTypePointer Workgroup %mat3v4float - %33 = OpConstantNull %mat3v4float - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_mat3v4float_uint_4 = OpTypePointer Uniform %_arr_mat3v4float_uint_4 %uint_0 = OpConstant %uint 0 +%_ptr_Workgroup_mat3v4float = OpTypePointer Workgroup %mat3v4float + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_mat3v4float = OpTypePointer Uniform %mat3v4float %_ptr_Workgroup_v4float = OpTypePointer Workgroup %v4float %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Workgroup_float = OpTypePointer Workgroup %float + %bool = OpTypeBool + %60 = OpConstantNull %mat3v4float %62 = OpTypeFunction %void %67 = OpTypeFunction %_arr_mat3v4float_uint_4_0 %_arr_mat3v4float_uint_4 %_ptr_Function__arr_mat3v4float_uint_4 = OpTypePointer Function %_arr_mat3v4float_uint_4 @@ -71,39 +71,39 @@ OpLoopMerge %24 %22 None OpBranch %21 %21 = OpLabel - %27 = OpUGreaterThanEqual %bool %25 %uint_4 - OpSelectionMerge %29 None - OpBranchConditional %27 %30 %29 - %30 = OpLabel + %55 = OpUGreaterThanEqual %bool %25 %uint_4 + OpSelectionMerge %57 None + OpBranchConditional %55 %58 %57 + %58 = OpLabel OpBranch %24 - %29 = OpLabel - %31 = OpAccessChain %_ptr_Workgroup_mat3v4float %w %25 - OpStore %31 %33 None + %57 = OpLabel + %59 = OpAccessChain %_ptr_Workgroup_mat3v4float %w %25 + OpStore %59 %60 None OpBranch %22 %22 = OpLabel %26 = OpIAdd %uint %25 %uint_1 OpBranch %23 %24 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %38 = OpAccessChain %_ptr_Uniform__arr_mat3v4float_uint_4 %1 %uint_0 - %41 = OpLoad %_arr_mat3v4float_uint_4 %38 None - %42 = OpFunctionCall %_arr_mat3v4float_uint_4_0 %tint_convert_explicit_layout %41 - OpStore %w %42 None - %44 = OpAccessChain %_ptr_Workgroup_mat3v4float %w %uint_1 - %45 = OpAccessChain %_ptr_Uniform_mat3v4float %1 %uint_0 %uint_2 - %47 = OpLoad %mat3v4float %45 None - OpStore %44 %47 None + %30 = OpAccessChain %_ptr_Uniform__arr_mat3v4float_uint_4 %1 %uint_0 + %33 = OpLoad %_arr_mat3v4float_uint_4 %30 None + %34 = OpFunctionCall %_arr_mat3v4float_uint_4_0 %tint_convert_explicit_layout %33 + OpStore %w %34 None + %36 = OpAccessChain %_ptr_Workgroup_mat3v4float %w %uint_1 + %39 = OpAccessChain %_ptr_Uniform_mat3v4float %1 %uint_0 %uint_2 + %41 = OpLoad %mat3v4float %39 None + OpStore %36 %41 None + %42 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 %uint_0 + %44 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 %uint_1 + %46 = OpLoad %v4float %44 None + %47 = OpVectorShuffle %v4float %46 %46 1 3 0 2 + OpStore %42 %47 None %48 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 %uint_0 - %50 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 %uint_1 - %52 = OpLoad %v4float %50 None - %53 = OpVectorShuffle %v4float %52 %52 1 3 0 2 - OpStore %48 %53 None - %54 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 %uint_0 - %55 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 %uint_1 - %56 = OpAccessChain %_ptr_Uniform_float %55 %uint_0 - %58 = OpLoad %float %56 None - %59 = OpAccessChain %_ptr_Workgroup_float %54 %uint_0 - OpStore %59 %58 None + %49 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 %uint_1 + %50 = OpAccessChain %_ptr_Uniform_float %49 %uint_0 + %52 = OpLoad %float %50 None + %53 = OpAccessChain %_ptr_Workgroup_float %48 %uint_0 + OpStore %53 %52 None OpReturn OpFunctionEnd %f = OpFunction %void None %62 @@ -126,21 +126,21 @@ OpLoopMerge %78 %76 None OpBranch %75 %75 = OpLabel - %81 = OpUGreaterThanEqual %bool %79 %uint_4 - OpSelectionMerge %82 None - OpBranchConditional %81 %83 %82 - %83 = OpLabel + %82 = OpUGreaterThanEqual %bool %79 %uint_4 + OpSelectionMerge %83 None + OpBranchConditional %82 %84 %83 + %84 = OpLabel OpBranch %78 - %82 = OpLabel - %84 = OpAccessChain %_ptr_Function_mat3v4float %69 %79 - %86 = OpLoad %mat3v4float %84 None - %87 = OpAccessChain %_ptr_Function_mat3v4float %71 %79 - OpStore %87 %86 None + %83 = OpLabel + %85 = OpAccessChain %_ptr_Function_mat3v4float %69 %79 + %87 = OpLoad %mat3v4float %85 None + %88 = OpAccessChain %_ptr_Function_mat3v4float %71 %79 + OpStore %88 %87 None OpBranch %76 %76 = OpLabel %80 = OpIAdd %uint %79 %uint_1 OpBranch %77 %78 = OpLabel - %88 = OpLoad %_arr_mat3v4float_uint_4_0 %71 None - OpReturnValue %88 + %81 = OpLoad %_arr_mat3v4float_uint_4_0 %71 None + OpReturnValue %81 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.spvasm index bfa007a..167cfdc 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -77,9 +77,9 @@ %_arr_mat4v2half_uint_4 = OpTypeArray %mat4v2half %uint_4 %_ptr_Function__arr_mat4v2half_uint_4 = OpTypePointer Function %_arr_mat4v2half_uint_4 %66 = OpConstantNull %_arr_mat4v2half_uint_4 +%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half %bool = OpTypeBool %_ptr_Function_mat4x2_f16_std140 = OpTypePointer Function %mat4x2_f16_std140 -%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half %98 = OpTypeFunction %_arr_mat4x2_f16_std140_uint_4_0 %_arr_mat4x2_f16_std140_uint_4 %_ptr_Function__arr_mat4x2_f16_std140_uint_4 = OpTypePointer Function %_arr_mat4x2_f16_std140_uint_4 %103 = OpConstantNull %_arr_mat4x2_f16_std140_uint_4_0 @@ -126,36 +126,36 @@ OpLoopMerge %71 %69 None OpBranch %68 %68 = OpLabel - %74 = OpUGreaterThanEqual %bool %72 %uint_4 - OpSelectionMerge %76 None - OpBranchConditional %74 %77 %76 - %77 = OpLabel + %84 = OpUGreaterThanEqual %bool %72 %uint_4 + OpSelectionMerge %86 None + OpBranchConditional %84 %87 %86 + %87 = OpLabel OpBranch %71 - %76 = OpLabel - %78 = OpAccessChain %_ptr_Function_mat4v2half %63 %72 - %79 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %61 %72 - %81 = OpLoad %mat4x2_f16_std140 %79 None - %82 = OpCompositeExtract %v2half %81 0 - %83 = OpCompositeExtract %v2half %81 1 - %84 = OpCompositeExtract %v2half %81 2 - %85 = OpCompositeExtract %v2half %81 3 - %86 = OpCompositeConstruct %mat4v2half %82 %83 %84 %85 - OpStore %78 %86 None + %86 = OpLabel + %88 = OpAccessChain %_ptr_Function_mat4v2half %63 %72 + %89 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %61 %72 + %91 = OpLoad %mat4x2_f16_std140 %89 None + %92 = OpCompositeExtract %v2half %91 0 + %93 = OpCompositeExtract %v2half %91 1 + %94 = OpCompositeExtract %v2half %91 2 + %95 = OpCompositeExtract %v2half %91 3 + %96 = OpCompositeConstruct %mat4v2half %92 %93 %94 %95 + OpStore %88 %96 None OpBranch %69 %69 = OpLabel %73 = OpIAdd %uint %72 %uint_1 OpBranch %70 %71 = OpLabel %l_a = OpLoad %_arr_mat4v2half_uint_4 %63 None - %88 = OpCompositeExtract %half %l_a_i_i 0 - %89 = OpCompositeExtract %half %l_a 0 0 0 - %90 = OpFAdd %half %88 %89 - %91 = OpCompositeExtract %half %l_a_i 0 0 - %92 = OpFAdd %half %90 %91 - %93 = OpCompositeExtract %half %l_a_i_i 0 - %94 = OpFAdd %half %92 %93 - %95 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 - OpStore %95 %94 None + %75 = OpCompositeExtract %half %l_a_i_i 0 + %76 = OpCompositeExtract %half %l_a 0 0 0 + %77 = OpFAdd %half %75 %76 + %78 = OpCompositeExtract %half %l_a_i 0 0 + %79 = OpFAdd %half %77 %78 + %80 = OpCompositeExtract %half %l_a_i_i 0 + %81 = OpFAdd %half %79 %80 + %82 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 + OpStore %82 %81 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat4x2_f16_std140_uint_4_0 None %98 @@ -172,21 +172,21 @@ OpLoopMerge %108 %106 None OpBranch %105 %105 = OpLabel - %111 = OpUGreaterThanEqual %bool %109 %uint_4 - OpSelectionMerge %112 None - OpBranchConditional %111 %113 %112 - %113 = OpLabel + %112 = OpUGreaterThanEqual %bool %109 %uint_4 + OpSelectionMerge %113 None + OpBranchConditional %112 %114 %113 + %114 = OpLabel OpBranch %108 - %112 = OpLabel - %114 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %100 %109 - %115 = OpLoad %mat4x2_f16_std140 %114 None - %116 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %102 %109 - OpStore %116 %115 None + %113 = OpLabel + %115 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %100 %109 + %116 = OpLoad %mat4x2_f16_std140 %115 None + %117 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %102 %109 + OpStore %117 %116 None OpBranch %106 %106 = OpLabel %110 = OpIAdd %uint %109 %uint_1 OpBranch %107 %108 = OpLabel - %117 = OpLoad %_arr_mat4x2_f16_std140_uint_4_0 %102 None - OpReturnValue %117 + %111 = OpLoad %_arr_mat4x2_f16_std140_uint_4_0 %102 None + OpReturnValue %111 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.spvasm index 917da75..c326e62 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.spvasm
@@ -66,10 +66,10 @@ %_arr_mat4v2half_uint_4 = OpTypeArray %mat4v2half %uint_4 %_ptr_Function__arr_mat4v2half_uint_4 = OpTypePointer Function %_arr_mat4v2half_uint_4 %44 = OpConstantNull %_arr_mat4v2half_uint_4 +%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half %bool = OpTypeBool %_ptr_Function_mat4v2half = OpTypePointer Function %mat4v2half %_ptr_Function_mat4x2_f16_std140 = OpTypePointer Function %mat4x2_f16_std140 -%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half %77 = OpTypeFunction %_arr_mat4x2_f16_std140_uint_4_0 %_arr_mat4x2_f16_std140_uint_4 %_ptr_Function__arr_mat4x2_f16_std140_uint_4 = OpTypePointer Function %_arr_mat4x2_f16_std140_uint_4 %82 = OpConstantNull %_arr_mat4x2_f16_std140_uint_4_0 @@ -99,36 +99,36 @@ OpLoopMerge %49 %47 None OpBranch %46 %46 = OpLabel - %52 = OpUGreaterThanEqual %bool %50 %uint_4 - OpSelectionMerge %54 None - OpBranchConditional %52 %55 %54 - %55 = OpLabel + %62 = OpUGreaterThanEqual %bool %50 %uint_4 + OpSelectionMerge %64 None + OpBranchConditional %62 %65 %64 + %65 = OpLabel OpBranch %49 - %54 = OpLabel - %56 = OpAccessChain %_ptr_Function_mat4v2half %41 %50 - %58 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %39 %50 - %60 = OpLoad %mat4x2_f16_std140 %58 None - %61 = OpCompositeExtract %v2half %60 0 - %62 = OpCompositeExtract %v2half %60 1 - %63 = OpCompositeExtract %v2half %60 2 - %64 = OpCompositeExtract %v2half %60 3 - %65 = OpCompositeConstruct %mat4v2half %61 %62 %63 %64 - OpStore %56 %65 None + %64 = OpLabel + %66 = OpAccessChain %_ptr_Function_mat4v2half %41 %50 + %68 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %39 %50 + %70 = OpLoad %mat4x2_f16_std140 %68 None + %71 = OpCompositeExtract %v2half %70 0 + %72 = OpCompositeExtract %v2half %70 1 + %73 = OpCompositeExtract %v2half %70 2 + %74 = OpCompositeExtract %v2half %70 3 + %75 = OpCompositeConstruct %mat4v2half %71 %72 %73 %74 + OpStore %66 %75 None OpBranch %47 %47 = OpLabel %51 = OpIAdd %uint %50 %uint_1 OpBranch %48 %49 = OpLabel %l_a = OpLoad %_arr_mat4v2half_uint_4 %41 None - %67 = OpCompositeExtract %half %l_a_i_i 0 - %68 = OpCompositeExtract %half %l_a 0 0 0 - %69 = OpFAdd %half %67 %68 - %70 = OpCompositeExtract %half %l_a_i 0 0 - %71 = OpFAdd %half %69 %70 - %72 = OpCompositeExtract %half %l_a_i_i 0 - %73 = OpFAdd %half %71 %72 - %74 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 - OpStore %74 %73 None + %53 = OpCompositeExtract %half %l_a_i_i 0 + %54 = OpCompositeExtract %half %l_a 0 0 0 + %55 = OpFAdd %half %53 %54 + %56 = OpCompositeExtract %half %l_a_i 0 0 + %57 = OpFAdd %half %55 %56 + %58 = OpCompositeExtract %half %l_a_i_i 0 + %59 = OpFAdd %half %57 %58 + %60 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 + OpStore %60 %59 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat4x2_f16_std140_uint_4_0 None %77 @@ -145,21 +145,21 @@ OpLoopMerge %87 %85 None OpBranch %84 %84 = OpLabel - %90 = OpUGreaterThanEqual %bool %88 %uint_4 - OpSelectionMerge %91 None - OpBranchConditional %90 %92 %91 - %92 = OpLabel + %91 = OpUGreaterThanEqual %bool %88 %uint_4 + OpSelectionMerge %92 None + OpBranchConditional %91 %93 %92 + %93 = OpLabel OpBranch %87 - %91 = OpLabel - %93 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %79 %88 - %94 = OpLoad %mat4x2_f16_std140 %93 None - %95 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %81 %88 - OpStore %95 %94 None + %92 = OpLabel + %94 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %79 %88 + %95 = OpLoad %mat4x2_f16_std140 %94 None + %96 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %81 %88 + OpStore %96 %95 None OpBranch %85 %85 = OpLabel %89 = OpIAdd %uint %88 %uint_1 OpBranch %86 %87 = OpLabel - %96 = OpLoad %_arr_mat4x2_f16_std140_uint_4_0 %81 None - OpReturnValue %96 + %90 = OpLoad %_arr_mat4x2_f16_std140_uint_4_0 %81 None + OpReturnValue %90 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_fn.wgsl.expected.spvasm index 695da9e..b143f72 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_fn.wgsl.expected.spvasm
@@ -71,14 +71,14 @@ %_ptr_Function__arr_mat4x2_f16_std140_uint_4_0 = OpTypePointer Function %_arr_mat4x2_f16_std140_uint_4_0 %_ptr_Function__arr_mat4v2half_uint_4 = OpTypePointer Function %_arr_mat4v2half_uint_4 %49 = OpConstantNull %_arr_mat4v2half_uint_4 - %bool = OpTypeBool -%_ptr_Function_mat4v2half = OpTypePointer Function %mat4v2half -%_ptr_Function_mat4x2_f16_std140 = OpTypePointer Function %mat4x2_f16_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v2half = OpTypePointer Uniform %v2half + %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_3 = OpConstant %uint 3 %_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half + %bool = OpTypeBool +%_ptr_Function_mat4v2half = OpTypePointer Function %mat4v2half +%_ptr_Function_mat4x2_f16_std140 = OpTypePointer Function %mat4x2_f16_std140 %102 = OpTypeFunction %_arr_mat4x2_f16_std140_uint_4_0 %_arr_mat4x2_f16_std140_uint_4 %_ptr_Function__arr_mat4x2_f16_std140_uint_4 = OpTypePointer Function %_arr_mat4x2_f16_std140_uint_4 %107 = OpConstantNull %_arr_mat4x2_f16_std140_uint_4_0 @@ -121,52 +121,52 @@ OpLoopMerge %54 %52 None OpBranch %51 %51 = OpLabel - %57 = OpUGreaterThanEqual %bool %55 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel + %87 = OpUGreaterThanEqual %bool %55 %uint_4 + OpSelectionMerge %89 None + OpBranchConditional %87 %90 %89 + %90 = OpLabel OpBranch %54 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_mat4v2half %47 %55 - %63 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %45 %55 - %65 = OpLoad %mat4x2_f16_std140 %63 None - %66 = OpCompositeExtract %v2half %65 0 - %67 = OpCompositeExtract %v2half %65 1 - %68 = OpCompositeExtract %v2half %65 2 - %69 = OpCompositeExtract %v2half %65 3 - %70 = OpCompositeConstruct %mat4v2half %66 %67 %68 %69 - OpStore %61 %70 None + %89 = OpLabel + %91 = OpAccessChain %_ptr_Function_mat4v2half %47 %55 + %93 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %45 %55 + %95 = OpLoad %mat4x2_f16_std140 %93 None + %96 = OpCompositeExtract %v2half %95 0 + %97 = OpCompositeExtract %v2half %95 1 + %98 = OpCompositeExtract %v2half %95 2 + %99 = OpCompositeExtract %v2half %95 3 + %100 = OpCompositeConstruct %mat4v2half %96 %97 %98 %99 + OpStore %91 %100 None OpBranch %52 %52 = OpLabel %56 = OpIAdd %uint %55 %uint_1 OpBranch %53 %54 = OpLabel - %72 = OpLoad %_arr_mat4v2half_uint_4 %47 None - %73 = OpFunctionCall %half %a %72 + %57 = OpLoad %_arr_mat4v2half_uint_4 %47 None + %58 = OpFunctionCall %half %a %57 + %59 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_1 %uint_0 + %62 = OpLoad %v2half %59 None + %63 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_1 %uint_1 + %64 = OpLoad %v2half %63 None + %65 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_1 %uint_2 + %67 = OpLoad %v2half %65 None + %68 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_1 %uint_3 + %70 = OpLoad %v2half %68 None + %71 = OpCompositeConstruct %mat4v2half %62 %64 %67 %70 + %72 = OpFunctionCall %half %b %71 + %73 = OpFAdd %half %58 %72 %74 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_1 %uint_0 - %76 = OpLoad %v2half %74 None - %77 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_1 %uint_1 - %78 = OpLoad %v2half %77 None - %79 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_1 %uint_2 - %81 = OpLoad %v2half %79 None - %82 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_1 %uint_3 - %84 = OpLoad %v2half %82 None - %85 = OpCompositeConstruct %mat4v2half %76 %78 %81 %84 - %86 = OpFunctionCall %half %b %85 - %87 = OpFAdd %half %73 %86 - %88 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_1 %uint_0 - %89 = OpLoad %v2half %88 None - %90 = OpVectorShuffle %v2half %89 %89 1 0 - %91 = OpFunctionCall %half %c %90 - %92 = OpFAdd %half %87 %91 - %93 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_1 %uint_0 - %94 = OpLoad %v2half %93 None - %95 = OpVectorShuffle %v2half %94 %94 1 0 - %96 = OpCompositeExtract %half %95 0 - %97 = OpFunctionCall %half %d %96 - %98 = OpFAdd %half %92 %97 - %99 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 - OpStore %99 %98 None + %75 = OpLoad %v2half %74 None + %76 = OpVectorShuffle %v2half %75 %75 1 0 + %77 = OpFunctionCall %half %c %76 + %78 = OpFAdd %half %73 %77 + %79 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_1 %uint_0 + %80 = OpLoad %v2half %79 None + %81 = OpVectorShuffle %v2half %80 %80 1 0 + %82 = OpCompositeExtract %half %81 0 + %83 = OpFunctionCall %half %d %82 + %84 = OpFAdd %half %78 %83 + %85 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 + OpStore %85 %84 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat4x2_f16_std140_uint_4_0 None %102 @@ -183,21 +183,21 @@ OpLoopMerge %112 %110 None OpBranch %109 %109 = OpLabel - %115 = OpUGreaterThanEqual %bool %113 %uint_4 - OpSelectionMerge %116 None - OpBranchConditional %115 %117 %116 - %117 = OpLabel + %116 = OpUGreaterThanEqual %bool %113 %uint_4 + OpSelectionMerge %117 None + OpBranchConditional %116 %118 %117 + %118 = OpLabel OpBranch %112 - %116 = OpLabel - %118 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %104 %113 - %119 = OpLoad %mat4x2_f16_std140 %118 None - %120 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %106 %113 - OpStore %120 %119 None + %117 = OpLabel + %119 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %104 %113 + %120 = OpLoad %mat4x2_f16_std140 %119 None + %121 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %106 %113 + OpStore %121 %120 None OpBranch %110 %110 = OpLabel %114 = OpIAdd %uint %113 %uint_1 OpBranch %111 %112 = OpLabel - %121 = OpLoad %_arr_mat4x2_f16_std140_uint_4_0 %106 None - OpReturnValue %121 + %115 = OpLoad %_arr_mat4x2_f16_std140_uint_4_0 %106 None + OpReturnValue %115 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_private.wgsl.expected.spvasm index b105098..cbc5f67 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_private.wgsl.expected.spvasm
@@ -62,11 +62,8 @@ %_arr_mat4x2_f16_std140_uint_4_0 = OpTypeArray %mat4x2_f16_std140 %uint_4 %_ptr_Function__arr_mat4x2_f16_std140_uint_4_0 = OpTypePointer Function %_arr_mat4x2_f16_std140_uint_4_0 %_ptr_Function__arr_mat4v2half_uint_4 = OpTypePointer Function %_arr_mat4v2half_uint_4 - %bool = OpTypeBool -%_ptr_Function_mat4v2half = OpTypePointer Function %mat4v2half -%_ptr_Function_mat4x2_f16_std140 = OpTypePointer Function %mat4x2_f16_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Private_mat4v2half = OpTypePointer Private %mat4v2half + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v2half = OpTypePointer Uniform %v2half %uint_2 = OpConstant %uint 2 %uint_3 = OpConstant %uint 3 @@ -74,6 +71,9 @@ %_ptr_Uniform_half = OpTypePointer Uniform %half %_ptr_Private_half = OpTypePointer Private %half %_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half + %bool = OpTypeBool +%_ptr_Function_mat4v2half = OpTypePointer Function %mat4v2half +%_ptr_Function_mat4x2_f16_std140 = OpTypePointer Function %mat4x2_f16_std140 %88 = OpTypeFunction %_arr_mat4x2_f16_std140_uint_4_0 %_arr_mat4x2_f16_std140_uint_4 %_ptr_Function__arr_mat4x2_f16_std140_uint_4 = OpTypePointer Function %_arr_mat4x2_f16_std140_uint_4 %93 = OpConstantNull %_arr_mat4x2_f16_std140_uint_4_0 @@ -93,55 +93,55 @@ OpLoopMerge %37 %35 None OpBranch %34 %34 = OpLabel - %40 = OpUGreaterThanEqual %bool %38 %uint_4 - OpSelectionMerge %42 None - OpBranchConditional %40 %43 %42 - %43 = OpLabel + %73 = OpUGreaterThanEqual %bool %38 %uint_4 + OpSelectionMerge %75 None + OpBranchConditional %73 %76 %75 + %76 = OpLabel OpBranch %37 - %42 = OpLabel - %44 = OpAccessChain %_ptr_Function_mat4v2half %31 %38 - %46 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %29 %38 - %48 = OpLoad %mat4x2_f16_std140 %46 None - %49 = OpCompositeExtract %v2half %48 0 - %50 = OpCompositeExtract %v2half %48 1 - %51 = OpCompositeExtract %v2half %48 2 - %52 = OpCompositeExtract %v2half %48 3 - %53 = OpCompositeConstruct %mat4v2half %49 %50 %51 %52 - OpStore %44 %53 None + %75 = OpLabel + %77 = OpAccessChain %_ptr_Function_mat4v2half %31 %38 + %79 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %29 %38 + %81 = OpLoad %mat4x2_f16_std140 %79 None + %82 = OpCompositeExtract %v2half %81 0 + %83 = OpCompositeExtract %v2half %81 1 + %84 = OpCompositeExtract %v2half %81 2 + %85 = OpCompositeExtract %v2half %81 3 + %86 = OpCompositeConstruct %mat4v2half %82 %83 %84 %85 + OpStore %77 %86 None OpBranch %35 %35 = OpLabel %39 = OpIAdd %uint %38 %uint_1 OpBranch %36 %37 = OpLabel - %55 = OpLoad %_arr_mat4v2half_uint_4 %31 None - OpStore %p %55 None - %56 = OpAccessChain %_ptr_Private_mat4v2half %p %uint_1 - %58 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_0 - %61 = OpLoad %v2half %58 None - %62 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 - %63 = OpLoad %v2half %62 None - %64 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 - %65 = OpLoad %v2half %64 None - %66 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_3 - %68 = OpLoad %v2half %66 None - %69 = OpCompositeConstruct %mat4v2half %61 %63 %65 %68 - OpStore %56 %69 None - %70 = OpAccessChain %_ptr_Private_v2half %p %uint_1 %uint_0 - %72 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_1 - %73 = OpLoad %v2half %72 None - %74 = OpVectorShuffle %v2half %73 %73 1 0 - OpStore %70 %74 None - %75 = OpAccessChain %_ptr_Private_v2half %p %uint_1 %uint_0 - %76 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_1 - %77 = OpAccessChain %_ptr_Uniform_half %76 %uint_0 - %79 = OpLoad %half %77 None - %80 = OpAccessChain %_ptr_Private_half %75 %uint_0 - OpStore %80 %79 None - %82 = OpAccessChain %_ptr_Private_v2half %p %uint_1 %uint_0 - %83 = OpAccessChain %_ptr_Private_half %82 %uint_0 - %84 = OpLoad %half %83 None - %85 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 - OpStore %85 %84 None + %40 = OpLoad %_arr_mat4v2half_uint_4 %31 None + OpStore %p %40 None + %41 = OpAccessChain %_ptr_Private_mat4v2half %p %uint_1 + %44 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_0 + %47 = OpLoad %v2half %44 None + %48 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 + %49 = OpLoad %v2half %48 None + %50 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 + %51 = OpLoad %v2half %50 None + %52 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_3 + %54 = OpLoad %v2half %52 None + %55 = OpCompositeConstruct %mat4v2half %47 %49 %51 %54 + OpStore %41 %55 None + %56 = OpAccessChain %_ptr_Private_v2half %p %uint_1 %uint_0 + %58 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_1 + %59 = OpLoad %v2half %58 None + %60 = OpVectorShuffle %v2half %59 %59 1 0 + OpStore %56 %60 None + %61 = OpAccessChain %_ptr_Private_v2half %p %uint_1 %uint_0 + %62 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_1 + %63 = OpAccessChain %_ptr_Uniform_half %62 %uint_0 + %65 = OpLoad %half %63 None + %66 = OpAccessChain %_ptr_Private_half %61 %uint_0 + OpStore %66 %65 None + %68 = OpAccessChain %_ptr_Private_v2half %p %uint_1 %uint_0 + %69 = OpAccessChain %_ptr_Private_half %68 %uint_0 + %70 = OpLoad %half %69 None + %71 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 + OpStore %71 %70 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat4x2_f16_std140_uint_4_0 None %88 @@ -158,21 +158,21 @@ OpLoopMerge %98 %96 None OpBranch %95 %95 = OpLabel - %101 = OpUGreaterThanEqual %bool %99 %uint_4 - OpSelectionMerge %102 None - OpBranchConditional %101 %103 %102 - %103 = OpLabel + %102 = OpUGreaterThanEqual %bool %99 %uint_4 + OpSelectionMerge %103 None + OpBranchConditional %102 %104 %103 + %104 = OpLabel OpBranch %98 - %102 = OpLabel - %104 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %90 %99 - %105 = OpLoad %mat4x2_f16_std140 %104 None - %106 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %92 %99 - OpStore %106 %105 None + %103 = OpLabel + %105 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %90 %99 + %106 = OpLoad %mat4x2_f16_std140 %105 None + %107 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %92 %99 + OpStore %107 %106 None OpBranch %96 %96 = OpLabel %100 = OpIAdd %uint %99 %uint_1 OpBranch %97 %98 = OpLabel - %107 = OpLoad %_arr_mat4x2_f16_std140_uint_4_0 %92 None - OpReturnValue %107 + %101 = OpLoad %_arr_mat4x2_f16_std140_uint_4_0 %92 None + OpReturnValue %101 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_storage.wgsl.expected.spvasm index 150eb41..d1fbe04 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_storage.wgsl.expected.spvasm
@@ -65,18 +65,18 @@ %_arr_mat4v2half_uint_4_0 = OpTypeArray %mat4v2half %uint_4 %_ptr_Function__arr_mat4v2half_uint_4_0 = OpTypePointer Function %_arr_mat4v2half_uint_4_0 %31 = OpConstantNull %_arr_mat4v2half_uint_4_0 - %bool = OpTypeBool -%_ptr_Function_mat4v2half = OpTypePointer Function %mat4v2half -%_ptr_Function_mat4x2_f16_std140 = OpTypePointer Function %mat4x2_f16_std140 - %uint_1 = OpConstant %uint 1 %_ptr_StorageBuffer__arr_mat4v2half_uint_4 = OpTypePointer StorageBuffer %_arr_mat4v2half_uint_4 %_ptr_StorageBuffer_mat4v2half = OpTypePointer StorageBuffer %mat4v2half + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v2half = OpTypePointer Uniform %v2half %uint_2 = OpConstant %uint 2 %uint_3 = OpConstant %uint 3 %_ptr_StorageBuffer_v2half = OpTypePointer StorageBuffer %v2half %_ptr_Uniform_half = OpTypePointer Uniform %half %_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half + %bool = OpTypeBool +%_ptr_Function_mat4v2half = OpTypePointer Function %mat4v2half +%_ptr_Function_mat4x2_f16_std140 = OpTypePointer Function %mat4x2_f16_std140 %86 = OpTypeFunction %_arr_mat4v2half_uint_4 %_arr_mat4v2half_uint_4_0 %_ptr_Function__arr_mat4v2half_uint_4 = OpTypePointer Function %_arr_mat4v2half_uint_4 %91 = OpConstantNull %_arr_mat4v2half_uint_4 @@ -99,52 +99,52 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_4 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %71 = OpUGreaterThanEqual %bool %37 %uint_4 + OpSelectionMerge %73 None + OpBranchConditional %71 %74 %73 + %74 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Function_mat4v2half %28 %37 - %45 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %26 %37 - %47 = OpLoad %mat4x2_f16_std140 %45 None - %48 = OpCompositeExtract %v2half %47 0 - %49 = OpCompositeExtract %v2half %47 1 - %50 = OpCompositeExtract %v2half %47 2 - %51 = OpCompositeExtract %v2half %47 3 - %52 = OpCompositeConstruct %mat4v2half %48 %49 %50 %51 - OpStore %43 %52 None + %73 = OpLabel + %75 = OpAccessChain %_ptr_Function_mat4v2half %28 %37 + %77 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %26 %37 + %79 = OpLoad %mat4x2_f16_std140 %77 None + %80 = OpCompositeExtract %v2half %79 0 + %81 = OpCompositeExtract %v2half %79 1 + %82 = OpCompositeExtract %v2half %79 2 + %83 = OpCompositeExtract %v2half %79 3 + %84 = OpCompositeConstruct %mat4v2half %80 %81 %82 %83 + OpStore %75 %84 None OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel - %54 = OpLoad %_arr_mat4v2half_uint_4_0 %28 None - %55 = OpAccessChain %_ptr_StorageBuffer__arr_mat4v2half_uint_4 %10 %uint_0 - %57 = OpFunctionCall %_arr_mat4v2half_uint_4 %tint_convert_explicit_layout %54 - OpStore %55 %57 None - %59 = OpAccessChain %_ptr_StorageBuffer_mat4v2half %10 %uint_0 %uint_1 - %61 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_0 - %64 = OpLoad %v2half %61 None - %65 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 - %66 = OpLoad %v2half %65 None - %67 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 - %68 = OpLoad %v2half %67 None - %69 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_3 - %71 = OpLoad %v2half %69 None - %72 = OpCompositeConstruct %mat4v2half %64 %66 %68 %71 - OpStore %59 %72 None - %73 = OpAccessChain %_ptr_StorageBuffer_v2half %10 %uint_0 %uint_1 %uint_0 - %75 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_1 - %76 = OpLoad %v2half %75 None - %77 = OpVectorShuffle %v2half %76 %76 1 0 - OpStore %73 %77 None - %78 = OpAccessChain %_ptr_StorageBuffer_v2half %10 %uint_0 %uint_1 %uint_0 - %79 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_1 - %80 = OpAccessChain %_ptr_Uniform_half %79 %uint_0 - %82 = OpLoad %half %80 None - %83 = OpAccessChain %_ptr_StorageBuffer_half %78 %uint_0 - OpStore %83 %82 None + %39 = OpLoad %_arr_mat4v2half_uint_4_0 %28 None + %40 = OpAccessChain %_ptr_StorageBuffer__arr_mat4v2half_uint_4 %10 %uint_0 + %42 = OpFunctionCall %_arr_mat4v2half_uint_4 %tint_convert_explicit_layout %39 + OpStore %40 %42 None + %44 = OpAccessChain %_ptr_StorageBuffer_mat4v2half %10 %uint_0 %uint_1 + %47 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_0 + %50 = OpLoad %v2half %47 None + %51 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 + %52 = OpLoad %v2half %51 None + %53 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 + %54 = OpLoad %v2half %53 None + %55 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_3 + %57 = OpLoad %v2half %55 None + %58 = OpCompositeConstruct %mat4v2half %50 %52 %54 %57 + OpStore %44 %58 None + %59 = OpAccessChain %_ptr_StorageBuffer_v2half %10 %uint_0 %uint_1 %uint_0 + %61 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_1 + %62 = OpLoad %v2half %61 None + %63 = OpVectorShuffle %v2half %62 %62 1 0 + OpStore %59 %63 None + %64 = OpAccessChain %_ptr_StorageBuffer_v2half %10 %uint_0 %uint_1 %uint_0 + %65 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_1 + %66 = OpAccessChain %_ptr_Uniform_half %65 %uint_0 + %68 = OpLoad %half %66 None + %69 = OpAccessChain %_ptr_StorageBuffer_half %64 %uint_0 + OpStore %69 %68 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat4v2half_uint_4 None %86 @@ -161,23 +161,23 @@ OpLoopMerge %96 %94 None OpBranch %93 %93 = OpLabel - %99 = OpUGreaterThanEqual %bool %97 %uint_4 - OpSelectionMerge %100 None - OpBranchConditional %99 %101 %100 - %101 = OpLabel + %100 = OpUGreaterThanEqual %bool %97 %uint_4 + OpSelectionMerge %101 None + OpBranchConditional %100 %102 %101 + %102 = OpLabel OpBranch %96 - %100 = OpLabel - %102 = OpAccessChain %_ptr_Function_mat4v2half %88 %97 - %103 = OpLoad %mat4v2half %102 None - %104 = OpAccessChain %_ptr_Function_mat4v2half %89 %97 - OpStore %104 %103 None + %101 = OpLabel + %103 = OpAccessChain %_ptr_Function_mat4v2half %88 %97 + %104 = OpLoad %mat4v2half %103 None + %105 = OpAccessChain %_ptr_Function_mat4v2half %89 %97 + OpStore %105 %104 None OpBranch %94 %94 = OpLabel %98 = OpIAdd %uint %97 %uint_1 OpBranch %95 %96 = OpLabel - %105 = OpLoad %_arr_mat4v2half_uint_4 %89 None - OpReturnValue %105 + %99 = OpLoad %_arr_mat4v2half_uint_4 %89 None + OpReturnValue %99 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %_arr_mat4x2_f16_std140_uint_4_0 None %107 %tint_source_0 = OpFunctionParameter %_arr_mat4x2_f16_std140_uint_4 @@ -193,21 +193,21 @@ OpLoopMerge %117 %115 None OpBranch %114 %114 = OpLabel - %120 = OpUGreaterThanEqual %bool %118 %uint_4 - OpSelectionMerge %121 None - OpBranchConditional %120 %122 %121 - %122 = OpLabel + %121 = OpUGreaterThanEqual %bool %118 %uint_4 + OpSelectionMerge %122 None + OpBranchConditional %121 %123 %122 + %123 = OpLabel OpBranch %117 - %121 = OpLabel - %123 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %109 %118 - %124 = OpLoad %mat4x2_f16_std140 %123 None - %125 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %111 %118 - OpStore %125 %124 None + %122 = OpLabel + %124 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %109 %118 + %125 = OpLoad %mat4x2_f16_std140 %124 None + %126 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %111 %118 + OpStore %126 %125 None OpBranch %115 %115 = OpLabel %119 = OpIAdd %uint %118 %uint_1 OpBranch %116 %117 = OpLabel - %126 = OpLoad %_arr_mat4x2_f16_std140_uint_4_0 %111 None - OpReturnValue %126 + %120 = OpLoad %_arr_mat4x2_f16_std140_uint_4_0 %111 None + OpReturnValue %120 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_workgroup.wgsl.expected.spvasm index 84d7849..8d632bb 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_workgroup.wgsl.expected.spvasm
@@ -52,10 +52,6 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %19 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_mat4v2half = OpTypePointer Workgroup %mat4v2half - %34 = OpConstantNull %mat4v2half - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_mat4x2_f16_std140_uint_4 = OpTypePointer Uniform %_arr_mat4x2_f16_std140_uint_4 @@ -63,14 +59,18 @@ %_arr_mat4x2_f16_std140_uint_4_0 = OpTypeArray %mat4x2_f16_std140 %uint_4 %_ptr_Function__arr_mat4x2_f16_std140_uint_4_0 = OpTypePointer Function %_arr_mat4x2_f16_std140_uint_4_0 %_ptr_Function__arr_mat4v2half_uint_4 = OpTypePointer Function %_arr_mat4v2half_uint_4 - %50 = OpConstantNull %_arr_mat4v2half_uint_4 -%_ptr_Function_mat4v2half = OpTypePointer Function %mat4v2half -%_ptr_Function_mat4x2_f16_std140 = OpTypePointer Function %mat4x2_f16_std140 + %42 = OpConstantNull %_arr_mat4v2half_uint_4 +%_ptr_Workgroup_mat4v2half = OpTypePointer Workgroup %mat4v2half + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v2half = OpTypePointer Uniform %v2half %uint_3 = OpConstant %uint 3 %_ptr_Workgroup_v2half = OpTypePointer Workgroup %v2half %_ptr_Uniform_half = OpTypePointer Uniform %half %_ptr_Workgroup_half = OpTypePointer Workgroup %half + %bool = OpTypeBool + %82 = OpConstantNull %mat4v2half +%_ptr_Function_mat4v2half = OpTypePointer Function %mat4v2half +%_ptr_Function_mat4x2_f16_std140 = OpTypePointer Function %mat4x2_f16_std140 %97 = OpTypeFunction %void %102 = OpTypeFunction %_arr_mat4x2_f16_std140_uint_4_0 %_arr_mat4x2_f16_std140_uint_4 %_ptr_Function__arr_mat4x2_f16_std140_uint_4 = OpTypePointer Function %_arr_mat4x2_f16_std140_uint_4 @@ -78,8 +78,8 @@ %f_inner = OpFunction %void None %19 %tint_local_index = OpFunctionParameter %uint %20 = OpLabel - %46 = OpVariable %_ptr_Function__arr_mat4x2_f16_std140_uint_4_0 Function - %48 = OpVariable %_ptr_Function__arr_mat4v2half_uint_4 Function %50 + %38 = OpVariable %_ptr_Function__arr_mat4x2_f16_std140_uint_4_0 Function + %40 = OpVariable %_ptr_Function__arr_mat4v2half_uint_4 Function %42 OpBranch %21 %21 = OpLabel OpBranch %24 @@ -88,76 +88,76 @@ OpLoopMerge %25 %23 None OpBranch %22 %22 = OpLabel - %28 = OpUGreaterThanEqual %bool %26 %uint_4 - OpSelectionMerge %30 None - OpBranchConditional %28 %31 %30 - %31 = OpLabel + %77 = OpUGreaterThanEqual %bool %26 %uint_4 + OpSelectionMerge %79 None + OpBranchConditional %77 %80 %79 + %80 = OpLabel OpBranch %25 - %30 = OpLabel - %32 = OpAccessChain %_ptr_Workgroup_mat4v2half %w %26 - OpStore %32 %34 None + %79 = OpLabel + %81 = OpAccessChain %_ptr_Workgroup_mat4v2half %w %26 + OpStore %81 %82 None OpBranch %23 %23 = OpLabel %27 = OpIAdd %uint %26 %uint_1 OpBranch %24 %25 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %39 = OpAccessChain %_ptr_Uniform__arr_mat4x2_f16_std140_uint_4 %1 %uint_0 - %42 = OpLoad %_arr_mat4x2_f16_std140_uint_4 %39 None - %43 = OpFunctionCall %_arr_mat4x2_f16_std140_uint_4_0 %tint_convert_explicit_layout %42 - OpStore %46 %43 - OpBranch %51 - %51 = OpLabel - OpBranch %54 - %54 = OpLabel - %56 = OpPhi %uint %uint_0 %51 %57 %53 - OpLoopMerge %55 %53 None - OpBranch %52 - %52 = OpLabel - %58 = OpUGreaterThanEqual %bool %56 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %58 %60 %59 - %60 = OpLabel - OpBranch %55 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_mat4v2half %48 %56 - %63 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %46 %56 - %65 = OpLoad %mat4x2_f16_std140 %63 None - %66 = OpCompositeExtract %v2half %65 0 - %67 = OpCompositeExtract %v2half %65 1 - %68 = OpCompositeExtract %v2half %65 2 - %69 = OpCompositeExtract %v2half %65 3 - %70 = OpCompositeConstruct %mat4v2half %66 %67 %68 %69 - OpStore %61 %70 None - OpBranch %53 - %53 = OpLabel - %57 = OpIAdd %uint %56 %uint_1 - OpBranch %54 - %55 = OpLabel - %71 = OpLoad %_arr_mat4v2half_uint_4 %48 None - OpStore %w %71 None - %72 = OpAccessChain %_ptr_Workgroup_mat4v2half %w %uint_1 - %73 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_0 - %75 = OpLoad %v2half %73 None - %76 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 - %77 = OpLoad %v2half %76 None - %78 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 - %79 = OpLoad %v2half %78 None - %80 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_3 - %82 = OpLoad %v2half %80 None - %83 = OpCompositeConstruct %mat4v2half %75 %77 %79 %82 - OpStore %72 %83 None - %84 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_1 %uint_0 - %86 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_1 - %87 = OpLoad %v2half %86 None - %88 = OpVectorShuffle %v2half %87 %87 1 0 - OpStore %84 %88 None - %89 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_1 %uint_0 - %90 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_1 - %91 = OpAccessChain %_ptr_Uniform_half %90 %uint_0 - %93 = OpLoad %half %91 None - %94 = OpAccessChain %_ptr_Workgroup_half %89 %uint_0 - OpStore %94 %93 None + %31 = OpAccessChain %_ptr_Uniform__arr_mat4x2_f16_std140_uint_4 %1 %uint_0 + %34 = OpLoad %_arr_mat4x2_f16_std140_uint_4 %31 None + %35 = OpFunctionCall %_arr_mat4x2_f16_std140_uint_4_0 %tint_convert_explicit_layout %34 + OpStore %38 %35 + OpBranch %43 + %43 = OpLabel + OpBranch %46 + %46 = OpLabel + %48 = OpPhi %uint %uint_0 %43 %49 %45 + OpLoopMerge %47 %45 None + OpBranch %44 + %44 = OpLabel + %83 = OpUGreaterThanEqual %bool %48 %uint_4 + OpSelectionMerge %84 None + OpBranchConditional %83 %85 %84 + %85 = OpLabel + OpBranch %47 + %84 = OpLabel + %86 = OpAccessChain %_ptr_Function_mat4v2half %40 %48 + %88 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %38 %48 + %90 = OpLoad %mat4x2_f16_std140 %88 None + %91 = OpCompositeExtract %v2half %90 0 + %92 = OpCompositeExtract %v2half %90 1 + %93 = OpCompositeExtract %v2half %90 2 + %94 = OpCompositeExtract %v2half %90 3 + %95 = OpCompositeConstruct %mat4v2half %91 %92 %93 %94 + OpStore %86 %95 None + OpBranch %45 + %45 = OpLabel + %49 = OpIAdd %uint %48 %uint_1 + OpBranch %46 + %47 = OpLabel + %50 = OpLoad %_arr_mat4v2half_uint_4 %40 None + OpStore %w %50 None + %51 = OpAccessChain %_ptr_Workgroup_mat4v2half %w %uint_1 + %54 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_0 + %56 = OpLoad %v2half %54 None + %57 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 + %58 = OpLoad %v2half %57 None + %59 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 + %60 = OpLoad %v2half %59 None + %61 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_3 + %63 = OpLoad %v2half %61 None + %64 = OpCompositeConstruct %mat4v2half %56 %58 %60 %63 + OpStore %51 %64 None + %65 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_1 %uint_0 + %67 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_1 + %68 = OpLoad %v2half %67 None + %69 = OpVectorShuffle %v2half %68 %68 1 0 + OpStore %65 %69 None + %70 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_1 %uint_0 + %71 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_1 + %72 = OpAccessChain %_ptr_Uniform_half %71 %uint_0 + %74 = OpLoad %half %72 None + %75 = OpAccessChain %_ptr_Workgroup_half %70 %uint_0 + OpStore %75 %74 None OpReturn OpFunctionEnd %f = OpFunction %void None %97 @@ -180,21 +180,21 @@ OpLoopMerge %112 %110 None OpBranch %109 %109 = OpLabel - %115 = OpUGreaterThanEqual %bool %113 %uint_4 - OpSelectionMerge %116 None - OpBranchConditional %115 %117 %116 - %117 = OpLabel + %116 = OpUGreaterThanEqual %bool %113 %uint_4 + OpSelectionMerge %117 None + OpBranchConditional %116 %118 %117 + %118 = OpLabel OpBranch %112 - %116 = OpLabel - %118 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %104 %113 - %119 = OpLoad %mat4x2_f16_std140 %118 None - %120 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %106 %113 - OpStore %120 %119 None + %117 = OpLabel + %119 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %104 %113 + %120 = OpLoad %mat4x2_f16_std140 %119 None + %121 = OpAccessChain %_ptr_Function_mat4x2_f16_std140 %106 %113 + OpStore %121 %120 None OpBranch %110 %110 = OpLabel %114 = OpIAdd %uint %113 %uint_1 OpBranch %111 %112 = OpLabel - %121 = OpLoad %_arr_mat4x2_f16_std140_uint_4_0 %106 None - OpReturnValue %121 + %115 = OpLoad %_arr_mat4x2_f16_std140_uint_4_0 %106 None + OpReturnValue %115 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.spvasm index a79e6d5..e397eba 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -74,9 +74,9 @@ %_arr_mat4v2float_uint_4 = OpTypeArray %mat4v2float %uint_4 %_ptr_Function__arr_mat4v2float_uint_4 = OpTypePointer Function %_arr_mat4v2float_uint_4 %66 = OpConstantNull %_arr_mat4v2float_uint_4 +%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %bool = OpTypeBool %_ptr_Function_mat4x2_f32_std140 = OpTypePointer Function %mat4x2_f32_std140 -%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %98 = OpTypeFunction %_arr_mat4x2_f32_std140_uint_4_0 %_arr_mat4x2_f32_std140_uint_4 %_ptr_Function__arr_mat4x2_f32_std140_uint_4 = OpTypePointer Function %_arr_mat4x2_f32_std140_uint_4 %103 = OpConstantNull %_arr_mat4x2_f32_std140_uint_4_0 @@ -123,36 +123,36 @@ OpLoopMerge %71 %69 None OpBranch %68 %68 = OpLabel - %74 = OpUGreaterThanEqual %bool %72 %uint_4 - OpSelectionMerge %76 None - OpBranchConditional %74 %77 %76 - %77 = OpLabel + %84 = OpUGreaterThanEqual %bool %72 %uint_4 + OpSelectionMerge %86 None + OpBranchConditional %84 %87 %86 + %87 = OpLabel OpBranch %71 - %76 = OpLabel - %78 = OpAccessChain %_ptr_Function_mat4v2float %63 %72 - %79 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %61 %72 - %81 = OpLoad %mat4x2_f32_std140 %79 None - %82 = OpCompositeExtract %v2float %81 0 - %83 = OpCompositeExtract %v2float %81 1 - %84 = OpCompositeExtract %v2float %81 2 - %85 = OpCompositeExtract %v2float %81 3 - %86 = OpCompositeConstruct %mat4v2float %82 %83 %84 %85 - OpStore %78 %86 None + %86 = OpLabel + %88 = OpAccessChain %_ptr_Function_mat4v2float %63 %72 + %89 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %61 %72 + %91 = OpLoad %mat4x2_f32_std140 %89 None + %92 = OpCompositeExtract %v2float %91 0 + %93 = OpCompositeExtract %v2float %91 1 + %94 = OpCompositeExtract %v2float %91 2 + %95 = OpCompositeExtract %v2float %91 3 + %96 = OpCompositeConstruct %mat4v2float %92 %93 %94 %95 + OpStore %88 %96 None OpBranch %69 %69 = OpLabel %73 = OpIAdd %uint %72 %uint_1 OpBranch %70 %71 = OpLabel %l_a = OpLoad %_arr_mat4v2float_uint_4 %63 None - %88 = OpCompositeExtract %float %l_a_i_i 0 - %89 = OpCompositeExtract %float %l_a 0 0 0 - %90 = OpFAdd %float %88 %89 - %91 = OpCompositeExtract %float %l_a_i 0 0 - %92 = OpFAdd %float %90 %91 - %93 = OpCompositeExtract %float %l_a_i_i 0 - %94 = OpFAdd %float %92 %93 - %95 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 - OpStore %95 %94 None + %75 = OpCompositeExtract %float %l_a_i_i 0 + %76 = OpCompositeExtract %float %l_a 0 0 0 + %77 = OpFAdd %float %75 %76 + %78 = OpCompositeExtract %float %l_a_i 0 0 + %79 = OpFAdd %float %77 %78 + %80 = OpCompositeExtract %float %l_a_i_i 0 + %81 = OpFAdd %float %79 %80 + %82 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 + OpStore %82 %81 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat4x2_f32_std140_uint_4_0 None %98 @@ -169,21 +169,21 @@ OpLoopMerge %108 %106 None OpBranch %105 %105 = OpLabel - %111 = OpUGreaterThanEqual %bool %109 %uint_4 - OpSelectionMerge %112 None - OpBranchConditional %111 %113 %112 - %113 = OpLabel + %112 = OpUGreaterThanEqual %bool %109 %uint_4 + OpSelectionMerge %113 None + OpBranchConditional %112 %114 %113 + %114 = OpLabel OpBranch %108 - %112 = OpLabel - %114 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %100 %109 - %115 = OpLoad %mat4x2_f32_std140 %114 None - %116 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %102 %109 - OpStore %116 %115 None + %113 = OpLabel + %115 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %100 %109 + %116 = OpLoad %mat4x2_f32_std140 %115 None + %117 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %102 %109 + OpStore %117 %116 None OpBranch %106 %106 = OpLabel %110 = OpIAdd %uint %109 %uint_1 OpBranch %107 %108 = OpLabel - %117 = OpLoad %_arr_mat4x2_f32_std140_uint_4_0 %102 None - OpReturnValue %117 + %111 = OpLoad %_arr_mat4x2_f32_std140_uint_4_0 %102 None + OpReturnValue %111 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.spvasm index a3dd822..02ec5d1 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.spvasm
@@ -63,10 +63,10 @@ %_arr_mat4v2float_uint_4 = OpTypeArray %mat4v2float %uint_4 %_ptr_Function__arr_mat4v2float_uint_4 = OpTypePointer Function %_arr_mat4v2float_uint_4 %44 = OpConstantNull %_arr_mat4v2float_uint_4 +%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %bool = OpTypeBool %_ptr_Function_mat4v2float = OpTypePointer Function %mat4v2float %_ptr_Function_mat4x2_f32_std140 = OpTypePointer Function %mat4x2_f32_std140 -%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %77 = OpTypeFunction %_arr_mat4x2_f32_std140_uint_4_0 %_arr_mat4x2_f32_std140_uint_4 %_ptr_Function__arr_mat4x2_f32_std140_uint_4 = OpTypePointer Function %_arr_mat4x2_f32_std140_uint_4 %82 = OpConstantNull %_arr_mat4x2_f32_std140_uint_4_0 @@ -96,36 +96,36 @@ OpLoopMerge %49 %47 None OpBranch %46 %46 = OpLabel - %52 = OpUGreaterThanEqual %bool %50 %uint_4 - OpSelectionMerge %54 None - OpBranchConditional %52 %55 %54 - %55 = OpLabel + %62 = OpUGreaterThanEqual %bool %50 %uint_4 + OpSelectionMerge %64 None + OpBranchConditional %62 %65 %64 + %65 = OpLabel OpBranch %49 - %54 = OpLabel - %56 = OpAccessChain %_ptr_Function_mat4v2float %41 %50 - %58 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %39 %50 - %60 = OpLoad %mat4x2_f32_std140 %58 None - %61 = OpCompositeExtract %v2float %60 0 - %62 = OpCompositeExtract %v2float %60 1 - %63 = OpCompositeExtract %v2float %60 2 - %64 = OpCompositeExtract %v2float %60 3 - %65 = OpCompositeConstruct %mat4v2float %61 %62 %63 %64 - OpStore %56 %65 None + %64 = OpLabel + %66 = OpAccessChain %_ptr_Function_mat4v2float %41 %50 + %68 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %39 %50 + %70 = OpLoad %mat4x2_f32_std140 %68 None + %71 = OpCompositeExtract %v2float %70 0 + %72 = OpCompositeExtract %v2float %70 1 + %73 = OpCompositeExtract %v2float %70 2 + %74 = OpCompositeExtract %v2float %70 3 + %75 = OpCompositeConstruct %mat4v2float %71 %72 %73 %74 + OpStore %66 %75 None OpBranch %47 %47 = OpLabel %51 = OpIAdd %uint %50 %uint_1 OpBranch %48 %49 = OpLabel %l_a = OpLoad %_arr_mat4v2float_uint_4 %41 None - %67 = OpCompositeExtract %float %l_a_i_i 0 - %68 = OpCompositeExtract %float %l_a 0 0 0 - %69 = OpFAdd %float %67 %68 - %70 = OpCompositeExtract %float %l_a_i 0 0 - %71 = OpFAdd %float %69 %70 - %72 = OpCompositeExtract %float %l_a_i_i 0 - %73 = OpFAdd %float %71 %72 - %74 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 - OpStore %74 %73 None + %53 = OpCompositeExtract %float %l_a_i_i 0 + %54 = OpCompositeExtract %float %l_a 0 0 0 + %55 = OpFAdd %float %53 %54 + %56 = OpCompositeExtract %float %l_a_i 0 0 + %57 = OpFAdd %float %55 %56 + %58 = OpCompositeExtract %float %l_a_i_i 0 + %59 = OpFAdd %float %57 %58 + %60 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 + OpStore %60 %59 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat4x2_f32_std140_uint_4_0 None %77 @@ -142,21 +142,21 @@ OpLoopMerge %87 %85 None OpBranch %84 %84 = OpLabel - %90 = OpUGreaterThanEqual %bool %88 %uint_4 - OpSelectionMerge %91 None - OpBranchConditional %90 %92 %91 - %92 = OpLabel + %91 = OpUGreaterThanEqual %bool %88 %uint_4 + OpSelectionMerge %92 None + OpBranchConditional %91 %93 %92 + %93 = OpLabel OpBranch %87 - %91 = OpLabel - %93 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %79 %88 - %94 = OpLoad %mat4x2_f32_std140 %93 None - %95 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %81 %88 - OpStore %95 %94 None + %92 = OpLabel + %94 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %79 %88 + %95 = OpLoad %mat4x2_f32_std140 %94 None + %96 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %81 %88 + OpStore %96 %95 None OpBranch %85 %85 = OpLabel %89 = OpIAdd %uint %88 %uint_1 OpBranch %86 %87 = OpLabel - %96 = OpLoad %_arr_mat4x2_f32_std140_uint_4_0 %81 None - OpReturnValue %96 + %90 = OpLoad %_arr_mat4x2_f32_std140_uint_4_0 %81 None + OpReturnValue %90 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_fn.wgsl.expected.spvasm index 341b149..d90d516 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_fn.wgsl.expected.spvasm
@@ -68,14 +68,14 @@ %_ptr_Function__arr_mat4x2_f32_std140_uint_4_0 = OpTypePointer Function %_arr_mat4x2_f32_std140_uint_4_0 %_ptr_Function__arr_mat4v2float_uint_4 = OpTypePointer Function %_arr_mat4v2float_uint_4 %49 = OpConstantNull %_arr_mat4v2float_uint_4 - %bool = OpTypeBool -%_ptr_Function_mat4v2float = OpTypePointer Function %mat4v2float -%_ptr_Function_mat4x2_f32_std140 = OpTypePointer Function %mat4x2_f32_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float + %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_3 = OpConstant %uint 3 %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float + %bool = OpTypeBool +%_ptr_Function_mat4v2float = OpTypePointer Function %mat4v2float +%_ptr_Function_mat4x2_f32_std140 = OpTypePointer Function %mat4x2_f32_std140 %102 = OpTypeFunction %_arr_mat4x2_f32_std140_uint_4_0 %_arr_mat4x2_f32_std140_uint_4 %_ptr_Function__arr_mat4x2_f32_std140_uint_4 = OpTypePointer Function %_arr_mat4x2_f32_std140_uint_4 %107 = OpConstantNull %_arr_mat4x2_f32_std140_uint_4_0 @@ -118,52 +118,52 @@ OpLoopMerge %54 %52 None OpBranch %51 %51 = OpLabel - %57 = OpUGreaterThanEqual %bool %55 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel + %87 = OpUGreaterThanEqual %bool %55 %uint_4 + OpSelectionMerge %89 None + OpBranchConditional %87 %90 %89 + %90 = OpLabel OpBranch %54 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_mat4v2float %47 %55 - %63 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %45 %55 - %65 = OpLoad %mat4x2_f32_std140 %63 None - %66 = OpCompositeExtract %v2float %65 0 - %67 = OpCompositeExtract %v2float %65 1 - %68 = OpCompositeExtract %v2float %65 2 - %69 = OpCompositeExtract %v2float %65 3 - %70 = OpCompositeConstruct %mat4v2float %66 %67 %68 %69 - OpStore %61 %70 None + %89 = OpLabel + %91 = OpAccessChain %_ptr_Function_mat4v2float %47 %55 + %93 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %45 %55 + %95 = OpLoad %mat4x2_f32_std140 %93 None + %96 = OpCompositeExtract %v2float %95 0 + %97 = OpCompositeExtract %v2float %95 1 + %98 = OpCompositeExtract %v2float %95 2 + %99 = OpCompositeExtract %v2float %95 3 + %100 = OpCompositeConstruct %mat4v2float %96 %97 %98 %99 + OpStore %91 %100 None OpBranch %52 %52 = OpLabel %56 = OpIAdd %uint %55 %uint_1 OpBranch %53 %54 = OpLabel - %72 = OpLoad %_arr_mat4v2float_uint_4 %47 None - %73 = OpFunctionCall %float %a %72 + %57 = OpLoad %_arr_mat4v2float_uint_4 %47 None + %58 = OpFunctionCall %float %a %57 + %59 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_1 %uint_0 + %62 = OpLoad %v2float %59 None + %63 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_1 %uint_1 + %64 = OpLoad %v2float %63 None + %65 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_1 %uint_2 + %67 = OpLoad %v2float %65 None + %68 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_1 %uint_3 + %70 = OpLoad %v2float %68 None + %71 = OpCompositeConstruct %mat4v2float %62 %64 %67 %70 + %72 = OpFunctionCall %float %b %71 + %73 = OpFAdd %float %58 %72 %74 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_1 %uint_0 - %76 = OpLoad %v2float %74 None - %77 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_1 %uint_1 - %78 = OpLoad %v2float %77 None - %79 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_1 %uint_2 - %81 = OpLoad %v2float %79 None - %82 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_1 %uint_3 - %84 = OpLoad %v2float %82 None - %85 = OpCompositeConstruct %mat4v2float %76 %78 %81 %84 - %86 = OpFunctionCall %float %b %85 - %87 = OpFAdd %float %73 %86 - %88 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_1 %uint_0 - %89 = OpLoad %v2float %88 None - %90 = OpVectorShuffle %v2float %89 %89 1 0 - %91 = OpFunctionCall %float %c %90 - %92 = OpFAdd %float %87 %91 - %93 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_1 %uint_0 - %94 = OpLoad %v2float %93 None - %95 = OpVectorShuffle %v2float %94 %94 1 0 - %96 = OpCompositeExtract %float %95 0 - %97 = OpFunctionCall %float %d %96 - %98 = OpFAdd %float %92 %97 - %99 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 - OpStore %99 %98 None + %75 = OpLoad %v2float %74 None + %76 = OpVectorShuffle %v2float %75 %75 1 0 + %77 = OpFunctionCall %float %c %76 + %78 = OpFAdd %float %73 %77 + %79 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_1 %uint_0 + %80 = OpLoad %v2float %79 None + %81 = OpVectorShuffle %v2float %80 %80 1 0 + %82 = OpCompositeExtract %float %81 0 + %83 = OpFunctionCall %float %d %82 + %84 = OpFAdd %float %78 %83 + %85 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 + OpStore %85 %84 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat4x2_f32_std140_uint_4_0 None %102 @@ -180,21 +180,21 @@ OpLoopMerge %112 %110 None OpBranch %109 %109 = OpLabel - %115 = OpUGreaterThanEqual %bool %113 %uint_4 - OpSelectionMerge %116 None - OpBranchConditional %115 %117 %116 - %117 = OpLabel + %116 = OpUGreaterThanEqual %bool %113 %uint_4 + OpSelectionMerge %117 None + OpBranchConditional %116 %118 %117 + %118 = OpLabel OpBranch %112 - %116 = OpLabel - %118 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %104 %113 - %119 = OpLoad %mat4x2_f32_std140 %118 None - %120 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %106 %113 - OpStore %120 %119 None + %117 = OpLabel + %119 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %104 %113 + %120 = OpLoad %mat4x2_f32_std140 %119 None + %121 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %106 %113 + OpStore %121 %120 None OpBranch %110 %110 = OpLabel %114 = OpIAdd %uint %113 %uint_1 OpBranch %111 %112 = OpLabel - %121 = OpLoad %_arr_mat4x2_f32_std140_uint_4_0 %106 None - OpReturnValue %121 + %115 = OpLoad %_arr_mat4x2_f32_std140_uint_4_0 %106 None + OpReturnValue %115 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_private.wgsl.expected.spvasm index 43c621e..9dd33f3 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_private.wgsl.expected.spvasm
@@ -59,11 +59,8 @@ %_arr_mat4x2_f32_std140_uint_4_0 = OpTypeArray %mat4x2_f32_std140 %uint_4 %_ptr_Function__arr_mat4x2_f32_std140_uint_4_0 = OpTypePointer Function %_arr_mat4x2_f32_std140_uint_4_0 %_ptr_Function__arr_mat4v2float_uint_4 = OpTypePointer Function %_arr_mat4v2float_uint_4 - %bool = OpTypeBool -%_ptr_Function_mat4v2float = OpTypePointer Function %mat4v2float -%_ptr_Function_mat4x2_f32_std140 = OpTypePointer Function %mat4x2_f32_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Private_mat4v2float = OpTypePointer Private %mat4v2float + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float %uint_2 = OpConstant %uint 2 %uint_3 = OpConstant %uint 3 @@ -71,6 +68,9 @@ %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Private_float = OpTypePointer Private %float %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float + %bool = OpTypeBool +%_ptr_Function_mat4v2float = OpTypePointer Function %mat4v2float +%_ptr_Function_mat4x2_f32_std140 = OpTypePointer Function %mat4x2_f32_std140 %88 = OpTypeFunction %_arr_mat4x2_f32_std140_uint_4_0 %_arr_mat4x2_f32_std140_uint_4 %_ptr_Function__arr_mat4x2_f32_std140_uint_4 = OpTypePointer Function %_arr_mat4x2_f32_std140_uint_4 %93 = OpConstantNull %_arr_mat4x2_f32_std140_uint_4_0 @@ -90,55 +90,55 @@ OpLoopMerge %37 %35 None OpBranch %34 %34 = OpLabel - %40 = OpUGreaterThanEqual %bool %38 %uint_4 - OpSelectionMerge %42 None - OpBranchConditional %40 %43 %42 - %43 = OpLabel + %73 = OpUGreaterThanEqual %bool %38 %uint_4 + OpSelectionMerge %75 None + OpBranchConditional %73 %76 %75 + %76 = OpLabel OpBranch %37 - %42 = OpLabel - %44 = OpAccessChain %_ptr_Function_mat4v2float %31 %38 - %46 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %29 %38 - %48 = OpLoad %mat4x2_f32_std140 %46 None - %49 = OpCompositeExtract %v2float %48 0 - %50 = OpCompositeExtract %v2float %48 1 - %51 = OpCompositeExtract %v2float %48 2 - %52 = OpCompositeExtract %v2float %48 3 - %53 = OpCompositeConstruct %mat4v2float %49 %50 %51 %52 - OpStore %44 %53 None + %75 = OpLabel + %77 = OpAccessChain %_ptr_Function_mat4v2float %31 %38 + %79 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %29 %38 + %81 = OpLoad %mat4x2_f32_std140 %79 None + %82 = OpCompositeExtract %v2float %81 0 + %83 = OpCompositeExtract %v2float %81 1 + %84 = OpCompositeExtract %v2float %81 2 + %85 = OpCompositeExtract %v2float %81 3 + %86 = OpCompositeConstruct %mat4v2float %82 %83 %84 %85 + OpStore %77 %86 None OpBranch %35 %35 = OpLabel %39 = OpIAdd %uint %38 %uint_1 OpBranch %36 %37 = OpLabel - %55 = OpLoad %_arr_mat4v2float_uint_4 %31 None - OpStore %p %55 None - %56 = OpAccessChain %_ptr_Private_mat4v2float %p %uint_1 - %58 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_0 - %61 = OpLoad %v2float %58 None - %62 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 - %63 = OpLoad %v2float %62 None - %64 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 - %65 = OpLoad %v2float %64 None - %66 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_3 - %68 = OpLoad %v2float %66 None - %69 = OpCompositeConstruct %mat4v2float %61 %63 %65 %68 - OpStore %56 %69 None - %70 = OpAccessChain %_ptr_Private_v2float %p %uint_1 %uint_0 - %72 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_1 - %73 = OpLoad %v2float %72 None - %74 = OpVectorShuffle %v2float %73 %73 1 0 - OpStore %70 %74 None - %75 = OpAccessChain %_ptr_Private_v2float %p %uint_1 %uint_0 - %76 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_1 - %77 = OpAccessChain %_ptr_Uniform_float %76 %uint_0 - %79 = OpLoad %float %77 None - %80 = OpAccessChain %_ptr_Private_float %75 %uint_0 - OpStore %80 %79 None - %82 = OpAccessChain %_ptr_Private_v2float %p %uint_1 %uint_0 - %83 = OpAccessChain %_ptr_Private_float %82 %uint_0 - %84 = OpLoad %float %83 None - %85 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 - OpStore %85 %84 None + %40 = OpLoad %_arr_mat4v2float_uint_4 %31 None + OpStore %p %40 None + %41 = OpAccessChain %_ptr_Private_mat4v2float %p %uint_1 + %44 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_0 + %47 = OpLoad %v2float %44 None + %48 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 + %49 = OpLoad %v2float %48 None + %50 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 + %51 = OpLoad %v2float %50 None + %52 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_3 + %54 = OpLoad %v2float %52 None + %55 = OpCompositeConstruct %mat4v2float %47 %49 %51 %54 + OpStore %41 %55 None + %56 = OpAccessChain %_ptr_Private_v2float %p %uint_1 %uint_0 + %58 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_1 + %59 = OpLoad %v2float %58 None + %60 = OpVectorShuffle %v2float %59 %59 1 0 + OpStore %56 %60 None + %61 = OpAccessChain %_ptr_Private_v2float %p %uint_1 %uint_0 + %62 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_1 + %63 = OpAccessChain %_ptr_Uniform_float %62 %uint_0 + %65 = OpLoad %float %63 None + %66 = OpAccessChain %_ptr_Private_float %61 %uint_0 + OpStore %66 %65 None + %68 = OpAccessChain %_ptr_Private_v2float %p %uint_1 %uint_0 + %69 = OpAccessChain %_ptr_Private_float %68 %uint_0 + %70 = OpLoad %float %69 None + %71 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 + OpStore %71 %70 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat4x2_f32_std140_uint_4_0 None %88 @@ -155,21 +155,21 @@ OpLoopMerge %98 %96 None OpBranch %95 %95 = OpLabel - %101 = OpUGreaterThanEqual %bool %99 %uint_4 - OpSelectionMerge %102 None - OpBranchConditional %101 %103 %102 - %103 = OpLabel + %102 = OpUGreaterThanEqual %bool %99 %uint_4 + OpSelectionMerge %103 None + OpBranchConditional %102 %104 %103 + %104 = OpLabel OpBranch %98 - %102 = OpLabel - %104 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %90 %99 - %105 = OpLoad %mat4x2_f32_std140 %104 None - %106 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %92 %99 - OpStore %106 %105 None + %103 = OpLabel + %105 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %90 %99 + %106 = OpLoad %mat4x2_f32_std140 %105 None + %107 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %92 %99 + OpStore %107 %106 None OpBranch %96 %96 = OpLabel %100 = OpIAdd %uint %99 %uint_1 OpBranch %97 %98 = OpLabel - %107 = OpLoad %_arr_mat4x2_f32_std140_uint_4_0 %92 None - OpReturnValue %107 + %101 = OpLoad %_arr_mat4x2_f32_std140_uint_4_0 %92 None + OpReturnValue %101 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_storage.wgsl.expected.spvasm index 8ef06a1..6bb19af 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_storage.wgsl.expected.spvasm
@@ -62,18 +62,18 @@ %_arr_mat4v2float_uint_4_0 = OpTypeArray %mat4v2float %uint_4 %_ptr_Function__arr_mat4v2float_uint_4_0 = OpTypePointer Function %_arr_mat4v2float_uint_4_0 %31 = OpConstantNull %_arr_mat4v2float_uint_4_0 - %bool = OpTypeBool -%_ptr_Function_mat4v2float = OpTypePointer Function %mat4v2float -%_ptr_Function_mat4x2_f32_std140 = OpTypePointer Function %mat4x2_f32_std140 - %uint_1 = OpConstant %uint 1 %_ptr_StorageBuffer__arr_mat4v2float_uint_4 = OpTypePointer StorageBuffer %_arr_mat4v2float_uint_4 %_ptr_StorageBuffer_mat4v2float = OpTypePointer StorageBuffer %mat4v2float + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float %uint_2 = OpConstant %uint 2 %uint_3 = OpConstant %uint 3 %_ptr_StorageBuffer_v2float = OpTypePointer StorageBuffer %v2float %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float + %bool = OpTypeBool +%_ptr_Function_mat4v2float = OpTypePointer Function %mat4v2float +%_ptr_Function_mat4x2_f32_std140 = OpTypePointer Function %mat4x2_f32_std140 %86 = OpTypeFunction %_arr_mat4v2float_uint_4 %_arr_mat4v2float_uint_4_0 %_ptr_Function__arr_mat4v2float_uint_4 = OpTypePointer Function %_arr_mat4v2float_uint_4 %91 = OpConstantNull %_arr_mat4v2float_uint_4 @@ -96,52 +96,52 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_4 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %71 = OpUGreaterThanEqual %bool %37 %uint_4 + OpSelectionMerge %73 None + OpBranchConditional %71 %74 %73 + %74 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Function_mat4v2float %28 %37 - %45 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %26 %37 - %47 = OpLoad %mat4x2_f32_std140 %45 None - %48 = OpCompositeExtract %v2float %47 0 - %49 = OpCompositeExtract %v2float %47 1 - %50 = OpCompositeExtract %v2float %47 2 - %51 = OpCompositeExtract %v2float %47 3 - %52 = OpCompositeConstruct %mat4v2float %48 %49 %50 %51 - OpStore %43 %52 None + %73 = OpLabel + %75 = OpAccessChain %_ptr_Function_mat4v2float %28 %37 + %77 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %26 %37 + %79 = OpLoad %mat4x2_f32_std140 %77 None + %80 = OpCompositeExtract %v2float %79 0 + %81 = OpCompositeExtract %v2float %79 1 + %82 = OpCompositeExtract %v2float %79 2 + %83 = OpCompositeExtract %v2float %79 3 + %84 = OpCompositeConstruct %mat4v2float %80 %81 %82 %83 + OpStore %75 %84 None OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel - %54 = OpLoad %_arr_mat4v2float_uint_4_0 %28 None - %55 = OpAccessChain %_ptr_StorageBuffer__arr_mat4v2float_uint_4 %10 %uint_0 - %57 = OpFunctionCall %_arr_mat4v2float_uint_4 %tint_convert_explicit_layout %54 - OpStore %55 %57 None - %59 = OpAccessChain %_ptr_StorageBuffer_mat4v2float %10 %uint_0 %uint_1 - %61 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_0 - %64 = OpLoad %v2float %61 None - %65 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 - %66 = OpLoad %v2float %65 None - %67 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 - %68 = OpLoad %v2float %67 None - %69 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_3 - %71 = OpLoad %v2float %69 None - %72 = OpCompositeConstruct %mat4v2float %64 %66 %68 %71 - OpStore %59 %72 None - %73 = OpAccessChain %_ptr_StorageBuffer_v2float %10 %uint_0 %uint_1 %uint_0 - %75 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_1 - %76 = OpLoad %v2float %75 None - %77 = OpVectorShuffle %v2float %76 %76 1 0 - OpStore %73 %77 None - %78 = OpAccessChain %_ptr_StorageBuffer_v2float %10 %uint_0 %uint_1 %uint_0 - %79 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_1 - %80 = OpAccessChain %_ptr_Uniform_float %79 %uint_0 - %82 = OpLoad %float %80 None - %83 = OpAccessChain %_ptr_StorageBuffer_float %78 %uint_0 - OpStore %83 %82 None + %39 = OpLoad %_arr_mat4v2float_uint_4_0 %28 None + %40 = OpAccessChain %_ptr_StorageBuffer__arr_mat4v2float_uint_4 %10 %uint_0 + %42 = OpFunctionCall %_arr_mat4v2float_uint_4 %tint_convert_explicit_layout %39 + OpStore %40 %42 None + %44 = OpAccessChain %_ptr_StorageBuffer_mat4v2float %10 %uint_0 %uint_1 + %47 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_0 + %50 = OpLoad %v2float %47 None + %51 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 + %52 = OpLoad %v2float %51 None + %53 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 + %54 = OpLoad %v2float %53 None + %55 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_3 + %57 = OpLoad %v2float %55 None + %58 = OpCompositeConstruct %mat4v2float %50 %52 %54 %57 + OpStore %44 %58 None + %59 = OpAccessChain %_ptr_StorageBuffer_v2float %10 %uint_0 %uint_1 %uint_0 + %61 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_1 + %62 = OpLoad %v2float %61 None + %63 = OpVectorShuffle %v2float %62 %62 1 0 + OpStore %59 %63 None + %64 = OpAccessChain %_ptr_StorageBuffer_v2float %10 %uint_0 %uint_1 %uint_0 + %65 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_1 + %66 = OpAccessChain %_ptr_Uniform_float %65 %uint_0 + %68 = OpLoad %float %66 None + %69 = OpAccessChain %_ptr_StorageBuffer_float %64 %uint_0 + OpStore %69 %68 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat4v2float_uint_4 None %86 @@ -158,23 +158,23 @@ OpLoopMerge %96 %94 None OpBranch %93 %93 = OpLabel - %99 = OpUGreaterThanEqual %bool %97 %uint_4 - OpSelectionMerge %100 None - OpBranchConditional %99 %101 %100 - %101 = OpLabel + %100 = OpUGreaterThanEqual %bool %97 %uint_4 + OpSelectionMerge %101 None + OpBranchConditional %100 %102 %101 + %102 = OpLabel OpBranch %96 - %100 = OpLabel - %102 = OpAccessChain %_ptr_Function_mat4v2float %88 %97 - %103 = OpLoad %mat4v2float %102 None - %104 = OpAccessChain %_ptr_Function_mat4v2float %89 %97 - OpStore %104 %103 None + %101 = OpLabel + %103 = OpAccessChain %_ptr_Function_mat4v2float %88 %97 + %104 = OpLoad %mat4v2float %103 None + %105 = OpAccessChain %_ptr_Function_mat4v2float %89 %97 + OpStore %105 %104 None OpBranch %94 %94 = OpLabel %98 = OpIAdd %uint %97 %uint_1 OpBranch %95 %96 = OpLabel - %105 = OpLoad %_arr_mat4v2float_uint_4 %89 None - OpReturnValue %105 + %99 = OpLoad %_arr_mat4v2float_uint_4 %89 None + OpReturnValue %99 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %_arr_mat4x2_f32_std140_uint_4_0 None %107 %tint_source_0 = OpFunctionParameter %_arr_mat4x2_f32_std140_uint_4 @@ -190,21 +190,21 @@ OpLoopMerge %117 %115 None OpBranch %114 %114 = OpLabel - %120 = OpUGreaterThanEqual %bool %118 %uint_4 - OpSelectionMerge %121 None - OpBranchConditional %120 %122 %121 - %122 = OpLabel + %121 = OpUGreaterThanEqual %bool %118 %uint_4 + OpSelectionMerge %122 None + OpBranchConditional %121 %123 %122 + %123 = OpLabel OpBranch %117 - %121 = OpLabel - %123 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %109 %118 - %124 = OpLoad %mat4x2_f32_std140 %123 None - %125 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %111 %118 - OpStore %125 %124 None + %122 = OpLabel + %124 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %109 %118 + %125 = OpLoad %mat4x2_f32_std140 %124 None + %126 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %111 %118 + OpStore %126 %125 None OpBranch %115 %115 = OpLabel %119 = OpIAdd %uint %118 %uint_1 OpBranch %116 %117 = OpLabel - %126 = OpLoad %_arr_mat4x2_f32_std140_uint_4_0 %111 None - OpReturnValue %126 + %120 = OpLoad %_arr_mat4x2_f32_std140_uint_4_0 %111 None + OpReturnValue %120 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_workgroup.wgsl.expected.spvasm index 9faf708..6e01d85 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_workgroup.wgsl.expected.spvasm
@@ -49,10 +49,6 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %19 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_mat4v2float = OpTypePointer Workgroup %mat4v2float - %34 = OpConstantNull %mat4v2float - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_mat4x2_f32_std140_uint_4 = OpTypePointer Uniform %_arr_mat4x2_f32_std140_uint_4 @@ -60,14 +56,18 @@ %_arr_mat4x2_f32_std140_uint_4_0 = OpTypeArray %mat4x2_f32_std140 %uint_4 %_ptr_Function__arr_mat4x2_f32_std140_uint_4_0 = OpTypePointer Function %_arr_mat4x2_f32_std140_uint_4_0 %_ptr_Function__arr_mat4v2float_uint_4 = OpTypePointer Function %_arr_mat4v2float_uint_4 - %50 = OpConstantNull %_arr_mat4v2float_uint_4 -%_ptr_Function_mat4v2float = OpTypePointer Function %mat4v2float -%_ptr_Function_mat4x2_f32_std140 = OpTypePointer Function %mat4x2_f32_std140 + %42 = OpConstantNull %_arr_mat4v2float_uint_4 +%_ptr_Workgroup_mat4v2float = OpTypePointer Workgroup %mat4v2float + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float %uint_3 = OpConstant %uint 3 %_ptr_Workgroup_v2float = OpTypePointer Workgroup %v2float %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Workgroup_float = OpTypePointer Workgroup %float + %bool = OpTypeBool + %82 = OpConstantNull %mat4v2float +%_ptr_Function_mat4v2float = OpTypePointer Function %mat4v2float +%_ptr_Function_mat4x2_f32_std140 = OpTypePointer Function %mat4x2_f32_std140 %97 = OpTypeFunction %void %102 = OpTypeFunction %_arr_mat4x2_f32_std140_uint_4_0 %_arr_mat4x2_f32_std140_uint_4 %_ptr_Function__arr_mat4x2_f32_std140_uint_4 = OpTypePointer Function %_arr_mat4x2_f32_std140_uint_4 @@ -75,8 +75,8 @@ %f_inner = OpFunction %void None %19 %tint_local_index = OpFunctionParameter %uint %20 = OpLabel - %46 = OpVariable %_ptr_Function__arr_mat4x2_f32_std140_uint_4_0 Function - %48 = OpVariable %_ptr_Function__arr_mat4v2float_uint_4 Function %50 + %38 = OpVariable %_ptr_Function__arr_mat4x2_f32_std140_uint_4_0 Function + %40 = OpVariable %_ptr_Function__arr_mat4v2float_uint_4 Function %42 OpBranch %21 %21 = OpLabel OpBranch %24 @@ -85,76 +85,76 @@ OpLoopMerge %25 %23 None OpBranch %22 %22 = OpLabel - %28 = OpUGreaterThanEqual %bool %26 %uint_4 - OpSelectionMerge %30 None - OpBranchConditional %28 %31 %30 - %31 = OpLabel + %77 = OpUGreaterThanEqual %bool %26 %uint_4 + OpSelectionMerge %79 None + OpBranchConditional %77 %80 %79 + %80 = OpLabel OpBranch %25 - %30 = OpLabel - %32 = OpAccessChain %_ptr_Workgroup_mat4v2float %w %26 - OpStore %32 %34 None + %79 = OpLabel + %81 = OpAccessChain %_ptr_Workgroup_mat4v2float %w %26 + OpStore %81 %82 None OpBranch %23 %23 = OpLabel %27 = OpIAdd %uint %26 %uint_1 OpBranch %24 %25 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %39 = OpAccessChain %_ptr_Uniform__arr_mat4x2_f32_std140_uint_4 %1 %uint_0 - %42 = OpLoad %_arr_mat4x2_f32_std140_uint_4 %39 None - %43 = OpFunctionCall %_arr_mat4x2_f32_std140_uint_4_0 %tint_convert_explicit_layout %42 - OpStore %46 %43 - OpBranch %51 - %51 = OpLabel - OpBranch %54 - %54 = OpLabel - %56 = OpPhi %uint %uint_0 %51 %57 %53 - OpLoopMerge %55 %53 None - OpBranch %52 - %52 = OpLabel - %58 = OpUGreaterThanEqual %bool %56 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %58 %60 %59 - %60 = OpLabel - OpBranch %55 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_mat4v2float %48 %56 - %63 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %46 %56 - %65 = OpLoad %mat4x2_f32_std140 %63 None - %66 = OpCompositeExtract %v2float %65 0 - %67 = OpCompositeExtract %v2float %65 1 - %68 = OpCompositeExtract %v2float %65 2 - %69 = OpCompositeExtract %v2float %65 3 - %70 = OpCompositeConstruct %mat4v2float %66 %67 %68 %69 - OpStore %61 %70 None - OpBranch %53 - %53 = OpLabel - %57 = OpIAdd %uint %56 %uint_1 - OpBranch %54 - %55 = OpLabel - %71 = OpLoad %_arr_mat4v2float_uint_4 %48 None - OpStore %w %71 None - %72 = OpAccessChain %_ptr_Workgroup_mat4v2float %w %uint_1 - %73 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_0 - %75 = OpLoad %v2float %73 None - %76 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 - %77 = OpLoad %v2float %76 None - %78 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 - %79 = OpLoad %v2float %78 None - %80 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_3 - %82 = OpLoad %v2float %80 None - %83 = OpCompositeConstruct %mat4v2float %75 %77 %79 %82 - OpStore %72 %83 None - %84 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_1 %uint_0 - %86 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_1 - %87 = OpLoad %v2float %86 None - %88 = OpVectorShuffle %v2float %87 %87 1 0 - OpStore %84 %88 None - %89 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_1 %uint_0 - %90 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_1 - %91 = OpAccessChain %_ptr_Uniform_float %90 %uint_0 - %93 = OpLoad %float %91 None - %94 = OpAccessChain %_ptr_Workgroup_float %89 %uint_0 - OpStore %94 %93 None + %31 = OpAccessChain %_ptr_Uniform__arr_mat4x2_f32_std140_uint_4 %1 %uint_0 + %34 = OpLoad %_arr_mat4x2_f32_std140_uint_4 %31 None + %35 = OpFunctionCall %_arr_mat4x2_f32_std140_uint_4_0 %tint_convert_explicit_layout %34 + OpStore %38 %35 + OpBranch %43 + %43 = OpLabel + OpBranch %46 + %46 = OpLabel + %48 = OpPhi %uint %uint_0 %43 %49 %45 + OpLoopMerge %47 %45 None + OpBranch %44 + %44 = OpLabel + %83 = OpUGreaterThanEqual %bool %48 %uint_4 + OpSelectionMerge %84 None + OpBranchConditional %83 %85 %84 + %85 = OpLabel + OpBranch %47 + %84 = OpLabel + %86 = OpAccessChain %_ptr_Function_mat4v2float %40 %48 + %88 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %38 %48 + %90 = OpLoad %mat4x2_f32_std140 %88 None + %91 = OpCompositeExtract %v2float %90 0 + %92 = OpCompositeExtract %v2float %90 1 + %93 = OpCompositeExtract %v2float %90 2 + %94 = OpCompositeExtract %v2float %90 3 + %95 = OpCompositeConstruct %mat4v2float %91 %92 %93 %94 + OpStore %86 %95 None + OpBranch %45 + %45 = OpLabel + %49 = OpIAdd %uint %48 %uint_1 + OpBranch %46 + %47 = OpLabel + %50 = OpLoad %_arr_mat4v2float_uint_4 %40 None + OpStore %w %50 None + %51 = OpAccessChain %_ptr_Workgroup_mat4v2float %w %uint_1 + %54 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_0 + %56 = OpLoad %v2float %54 None + %57 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 + %58 = OpLoad %v2float %57 None + %59 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 + %60 = OpLoad %v2float %59 None + %61 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_3 + %63 = OpLoad %v2float %61 None + %64 = OpCompositeConstruct %mat4v2float %56 %58 %60 %63 + OpStore %51 %64 None + %65 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_1 %uint_0 + %67 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_1 + %68 = OpLoad %v2float %67 None + %69 = OpVectorShuffle %v2float %68 %68 1 0 + OpStore %65 %69 None + %70 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_1 %uint_0 + %71 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_1 + %72 = OpAccessChain %_ptr_Uniform_float %71 %uint_0 + %74 = OpLoad %float %72 None + %75 = OpAccessChain %_ptr_Workgroup_float %70 %uint_0 + OpStore %75 %74 None OpReturn OpFunctionEnd %f = OpFunction %void None %97 @@ -177,21 +177,21 @@ OpLoopMerge %112 %110 None OpBranch %109 %109 = OpLabel - %115 = OpUGreaterThanEqual %bool %113 %uint_4 - OpSelectionMerge %116 None - OpBranchConditional %115 %117 %116 - %117 = OpLabel + %116 = OpUGreaterThanEqual %bool %113 %uint_4 + OpSelectionMerge %117 None + OpBranchConditional %116 %118 %117 + %118 = OpLabel OpBranch %112 - %116 = OpLabel - %118 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %104 %113 - %119 = OpLoad %mat4x2_f32_std140 %118 None - %120 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %106 %113 - OpStore %120 %119 None + %117 = OpLabel + %119 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %104 %113 + %120 = OpLoad %mat4x2_f32_std140 %119 None + %121 = OpAccessChain %_ptr_Function_mat4x2_f32_std140 %106 %113 + OpStore %121 %120 None OpBranch %110 %110 = OpLabel %114 = OpIAdd %uint %113 %uint_1 OpBranch %111 %112 = OpLabel - %121 = OpLoad %_arr_mat4x2_f32_std140_uint_4_0 %106 None - OpReturnValue %121 + %115 = OpLoad %_arr_mat4x2_f32_std140_uint_4_0 %106 None + OpReturnValue %115 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.spvasm index d85262d..efa2753 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -77,9 +77,9 @@ %_arr_mat4v3half_uint_4 = OpTypeArray %mat4v3half %uint_4 %_ptr_Function__arr_mat4v3half_uint_4 = OpTypePointer Function %_arr_mat4v3half_uint_4 %66 = OpConstantNull %_arr_mat4v3half_uint_4 +%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half %bool = OpTypeBool %_ptr_Function_mat4x3_f16_std140 = OpTypePointer Function %mat4x3_f16_std140 -%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half %98 = OpTypeFunction %_arr_mat4x3_f16_std140_uint_4_0 %_arr_mat4x3_f16_std140_uint_4 %_ptr_Function__arr_mat4x3_f16_std140_uint_4 = OpTypePointer Function %_arr_mat4x3_f16_std140_uint_4 %103 = OpConstantNull %_arr_mat4x3_f16_std140_uint_4_0 @@ -126,36 +126,36 @@ OpLoopMerge %71 %69 None OpBranch %68 %68 = OpLabel - %74 = OpUGreaterThanEqual %bool %72 %uint_4 - OpSelectionMerge %76 None - OpBranchConditional %74 %77 %76 - %77 = OpLabel + %84 = OpUGreaterThanEqual %bool %72 %uint_4 + OpSelectionMerge %86 None + OpBranchConditional %84 %87 %86 + %87 = OpLabel OpBranch %71 - %76 = OpLabel - %78 = OpAccessChain %_ptr_Function_mat4v3half %63 %72 - %79 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %61 %72 - %81 = OpLoad %mat4x3_f16_std140 %79 None - %82 = OpCompositeExtract %v3half %81 0 - %83 = OpCompositeExtract %v3half %81 1 - %84 = OpCompositeExtract %v3half %81 2 - %85 = OpCompositeExtract %v3half %81 3 - %86 = OpCompositeConstruct %mat4v3half %82 %83 %84 %85 - OpStore %78 %86 None + %86 = OpLabel + %88 = OpAccessChain %_ptr_Function_mat4v3half %63 %72 + %89 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %61 %72 + %91 = OpLoad %mat4x3_f16_std140 %89 None + %92 = OpCompositeExtract %v3half %91 0 + %93 = OpCompositeExtract %v3half %91 1 + %94 = OpCompositeExtract %v3half %91 2 + %95 = OpCompositeExtract %v3half %91 3 + %96 = OpCompositeConstruct %mat4v3half %92 %93 %94 %95 + OpStore %88 %96 None OpBranch %69 %69 = OpLabel %73 = OpIAdd %uint %72 %uint_1 OpBranch %70 %71 = OpLabel %l_a = OpLoad %_arr_mat4v3half_uint_4 %63 None - %88 = OpCompositeExtract %half %l_a_i_i 0 - %89 = OpCompositeExtract %half %l_a 0 0 0 - %90 = OpFAdd %half %88 %89 - %91 = OpCompositeExtract %half %l_a_i 0 0 - %92 = OpFAdd %half %90 %91 - %93 = OpCompositeExtract %half %l_a_i_i 0 - %94 = OpFAdd %half %92 %93 - %95 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 - OpStore %95 %94 None + %75 = OpCompositeExtract %half %l_a_i_i 0 + %76 = OpCompositeExtract %half %l_a 0 0 0 + %77 = OpFAdd %half %75 %76 + %78 = OpCompositeExtract %half %l_a_i 0 0 + %79 = OpFAdd %half %77 %78 + %80 = OpCompositeExtract %half %l_a_i_i 0 + %81 = OpFAdd %half %79 %80 + %82 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 + OpStore %82 %81 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat4x3_f16_std140_uint_4_0 None %98 @@ -172,21 +172,21 @@ OpLoopMerge %108 %106 None OpBranch %105 %105 = OpLabel - %111 = OpUGreaterThanEqual %bool %109 %uint_4 - OpSelectionMerge %112 None - OpBranchConditional %111 %113 %112 - %113 = OpLabel + %112 = OpUGreaterThanEqual %bool %109 %uint_4 + OpSelectionMerge %113 None + OpBranchConditional %112 %114 %113 + %114 = OpLabel OpBranch %108 - %112 = OpLabel - %114 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %100 %109 - %115 = OpLoad %mat4x3_f16_std140 %114 None - %116 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %102 %109 - OpStore %116 %115 None + %113 = OpLabel + %115 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %100 %109 + %116 = OpLoad %mat4x3_f16_std140 %115 None + %117 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %102 %109 + OpStore %117 %116 None OpBranch %106 %106 = OpLabel %110 = OpIAdd %uint %109 %uint_1 OpBranch %107 %108 = OpLabel - %117 = OpLoad %_arr_mat4x3_f16_std140_uint_4_0 %102 None - OpReturnValue %117 + %111 = OpLoad %_arr_mat4x3_f16_std140_uint_4_0 %102 None + OpReturnValue %111 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.spvasm index e680cb0..620a6e7 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.spvasm
@@ -66,10 +66,10 @@ %_arr_mat4v3half_uint_4 = OpTypeArray %mat4v3half %uint_4 %_ptr_Function__arr_mat4v3half_uint_4 = OpTypePointer Function %_arr_mat4v3half_uint_4 %44 = OpConstantNull %_arr_mat4v3half_uint_4 +%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half %bool = OpTypeBool %_ptr_Function_mat4v3half = OpTypePointer Function %mat4v3half %_ptr_Function_mat4x3_f16_std140 = OpTypePointer Function %mat4x3_f16_std140 -%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half %77 = OpTypeFunction %_arr_mat4x3_f16_std140_uint_4_0 %_arr_mat4x3_f16_std140_uint_4 %_ptr_Function__arr_mat4x3_f16_std140_uint_4 = OpTypePointer Function %_arr_mat4x3_f16_std140_uint_4 %82 = OpConstantNull %_arr_mat4x3_f16_std140_uint_4_0 @@ -99,36 +99,36 @@ OpLoopMerge %49 %47 None OpBranch %46 %46 = OpLabel - %52 = OpUGreaterThanEqual %bool %50 %uint_4 - OpSelectionMerge %54 None - OpBranchConditional %52 %55 %54 - %55 = OpLabel + %62 = OpUGreaterThanEqual %bool %50 %uint_4 + OpSelectionMerge %64 None + OpBranchConditional %62 %65 %64 + %65 = OpLabel OpBranch %49 - %54 = OpLabel - %56 = OpAccessChain %_ptr_Function_mat4v3half %41 %50 - %58 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %39 %50 - %60 = OpLoad %mat4x3_f16_std140 %58 None - %61 = OpCompositeExtract %v3half %60 0 - %62 = OpCompositeExtract %v3half %60 1 - %63 = OpCompositeExtract %v3half %60 2 - %64 = OpCompositeExtract %v3half %60 3 - %65 = OpCompositeConstruct %mat4v3half %61 %62 %63 %64 - OpStore %56 %65 None + %64 = OpLabel + %66 = OpAccessChain %_ptr_Function_mat4v3half %41 %50 + %68 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %39 %50 + %70 = OpLoad %mat4x3_f16_std140 %68 None + %71 = OpCompositeExtract %v3half %70 0 + %72 = OpCompositeExtract %v3half %70 1 + %73 = OpCompositeExtract %v3half %70 2 + %74 = OpCompositeExtract %v3half %70 3 + %75 = OpCompositeConstruct %mat4v3half %71 %72 %73 %74 + OpStore %66 %75 None OpBranch %47 %47 = OpLabel %51 = OpIAdd %uint %50 %uint_1 OpBranch %48 %49 = OpLabel %l_a = OpLoad %_arr_mat4v3half_uint_4 %41 None - %67 = OpCompositeExtract %half %l_a_i_i 0 - %68 = OpCompositeExtract %half %l_a 0 0 0 - %69 = OpFAdd %half %67 %68 - %70 = OpCompositeExtract %half %l_a_i 0 0 - %71 = OpFAdd %half %69 %70 - %72 = OpCompositeExtract %half %l_a_i_i 0 - %73 = OpFAdd %half %71 %72 - %74 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 - OpStore %74 %73 None + %53 = OpCompositeExtract %half %l_a_i_i 0 + %54 = OpCompositeExtract %half %l_a 0 0 0 + %55 = OpFAdd %half %53 %54 + %56 = OpCompositeExtract %half %l_a_i 0 0 + %57 = OpFAdd %half %55 %56 + %58 = OpCompositeExtract %half %l_a_i_i 0 + %59 = OpFAdd %half %57 %58 + %60 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 + OpStore %60 %59 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat4x3_f16_std140_uint_4_0 None %77 @@ -145,21 +145,21 @@ OpLoopMerge %87 %85 None OpBranch %84 %84 = OpLabel - %90 = OpUGreaterThanEqual %bool %88 %uint_4 - OpSelectionMerge %91 None - OpBranchConditional %90 %92 %91 - %92 = OpLabel + %91 = OpUGreaterThanEqual %bool %88 %uint_4 + OpSelectionMerge %92 None + OpBranchConditional %91 %93 %92 + %93 = OpLabel OpBranch %87 - %91 = OpLabel - %93 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %79 %88 - %94 = OpLoad %mat4x3_f16_std140 %93 None - %95 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %81 %88 - OpStore %95 %94 None + %92 = OpLabel + %94 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %79 %88 + %95 = OpLoad %mat4x3_f16_std140 %94 None + %96 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %81 %88 + OpStore %96 %95 None OpBranch %85 %85 = OpLabel %89 = OpIAdd %uint %88 %uint_1 OpBranch %86 %87 = OpLabel - %96 = OpLoad %_arr_mat4x3_f16_std140_uint_4_0 %81 None - OpReturnValue %96 + %90 = OpLoad %_arr_mat4x3_f16_std140_uint_4_0 %81 None + OpReturnValue %90 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_fn.wgsl.expected.spvasm index c6375fe..37a474f 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_fn.wgsl.expected.spvasm
@@ -71,14 +71,14 @@ %_ptr_Function__arr_mat4x3_f16_std140_uint_4_0 = OpTypePointer Function %_arr_mat4x3_f16_std140_uint_4_0 %_ptr_Function__arr_mat4v3half_uint_4 = OpTypePointer Function %_arr_mat4v3half_uint_4 %49 = OpConstantNull %_arr_mat4v3half_uint_4 - %bool = OpTypeBool -%_ptr_Function_mat4v3half = OpTypePointer Function %mat4v3half -%_ptr_Function_mat4x3_f16_std140 = OpTypePointer Function %mat4x3_f16_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v3half = OpTypePointer Uniform %v3half + %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_3 = OpConstant %uint 3 %_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half + %bool = OpTypeBool +%_ptr_Function_mat4v3half = OpTypePointer Function %mat4v3half +%_ptr_Function_mat4x3_f16_std140 = OpTypePointer Function %mat4x3_f16_std140 %102 = OpTypeFunction %_arr_mat4x3_f16_std140_uint_4_0 %_arr_mat4x3_f16_std140_uint_4 %_ptr_Function__arr_mat4x3_f16_std140_uint_4 = OpTypePointer Function %_arr_mat4x3_f16_std140_uint_4 %107 = OpConstantNull %_arr_mat4x3_f16_std140_uint_4_0 @@ -121,52 +121,52 @@ OpLoopMerge %54 %52 None OpBranch %51 %51 = OpLabel - %57 = OpUGreaterThanEqual %bool %55 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel + %87 = OpUGreaterThanEqual %bool %55 %uint_4 + OpSelectionMerge %89 None + OpBranchConditional %87 %90 %89 + %90 = OpLabel OpBranch %54 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_mat4v3half %47 %55 - %63 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %45 %55 - %65 = OpLoad %mat4x3_f16_std140 %63 None - %66 = OpCompositeExtract %v3half %65 0 - %67 = OpCompositeExtract %v3half %65 1 - %68 = OpCompositeExtract %v3half %65 2 - %69 = OpCompositeExtract %v3half %65 3 - %70 = OpCompositeConstruct %mat4v3half %66 %67 %68 %69 - OpStore %61 %70 None + %89 = OpLabel + %91 = OpAccessChain %_ptr_Function_mat4v3half %47 %55 + %93 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %45 %55 + %95 = OpLoad %mat4x3_f16_std140 %93 None + %96 = OpCompositeExtract %v3half %95 0 + %97 = OpCompositeExtract %v3half %95 1 + %98 = OpCompositeExtract %v3half %95 2 + %99 = OpCompositeExtract %v3half %95 3 + %100 = OpCompositeConstruct %mat4v3half %96 %97 %98 %99 + OpStore %91 %100 None OpBranch %52 %52 = OpLabel %56 = OpIAdd %uint %55 %uint_1 OpBranch %53 %54 = OpLabel - %72 = OpLoad %_arr_mat4v3half_uint_4 %47 None - %73 = OpFunctionCall %half %a %72 + %57 = OpLoad %_arr_mat4v3half_uint_4 %47 None + %58 = OpFunctionCall %half %a %57 + %59 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_1 %uint_0 + %62 = OpLoad %v3half %59 None + %63 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_1 %uint_1 + %64 = OpLoad %v3half %63 None + %65 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_1 %uint_2 + %67 = OpLoad %v3half %65 None + %68 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_1 %uint_3 + %70 = OpLoad %v3half %68 None + %71 = OpCompositeConstruct %mat4v3half %62 %64 %67 %70 + %72 = OpFunctionCall %half %b %71 + %73 = OpFAdd %half %58 %72 %74 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_1 %uint_0 - %76 = OpLoad %v3half %74 None - %77 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_1 %uint_1 - %78 = OpLoad %v3half %77 None - %79 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_1 %uint_2 - %81 = OpLoad %v3half %79 None - %82 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_1 %uint_3 - %84 = OpLoad %v3half %82 None - %85 = OpCompositeConstruct %mat4v3half %76 %78 %81 %84 - %86 = OpFunctionCall %half %b %85 - %87 = OpFAdd %half %73 %86 - %88 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_1 %uint_0 - %89 = OpLoad %v3half %88 None - %90 = OpVectorShuffle %v3half %89 %89 2 0 1 - %91 = OpFunctionCall %half %c %90 - %92 = OpFAdd %half %87 %91 - %93 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_1 %uint_0 - %94 = OpLoad %v3half %93 None - %95 = OpVectorShuffle %v3half %94 %94 2 0 1 - %96 = OpCompositeExtract %half %95 0 - %97 = OpFunctionCall %half %d %96 - %98 = OpFAdd %half %92 %97 - %99 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 - OpStore %99 %98 None + %75 = OpLoad %v3half %74 None + %76 = OpVectorShuffle %v3half %75 %75 2 0 1 + %77 = OpFunctionCall %half %c %76 + %78 = OpFAdd %half %73 %77 + %79 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_1 %uint_0 + %80 = OpLoad %v3half %79 None + %81 = OpVectorShuffle %v3half %80 %80 2 0 1 + %82 = OpCompositeExtract %half %81 0 + %83 = OpFunctionCall %half %d %82 + %84 = OpFAdd %half %78 %83 + %85 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 + OpStore %85 %84 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat4x3_f16_std140_uint_4_0 None %102 @@ -183,21 +183,21 @@ OpLoopMerge %112 %110 None OpBranch %109 %109 = OpLabel - %115 = OpUGreaterThanEqual %bool %113 %uint_4 - OpSelectionMerge %116 None - OpBranchConditional %115 %117 %116 - %117 = OpLabel + %116 = OpUGreaterThanEqual %bool %113 %uint_4 + OpSelectionMerge %117 None + OpBranchConditional %116 %118 %117 + %118 = OpLabel OpBranch %112 - %116 = OpLabel - %118 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %104 %113 - %119 = OpLoad %mat4x3_f16_std140 %118 None - %120 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %106 %113 - OpStore %120 %119 None + %117 = OpLabel + %119 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %104 %113 + %120 = OpLoad %mat4x3_f16_std140 %119 None + %121 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %106 %113 + OpStore %121 %120 None OpBranch %110 %110 = OpLabel %114 = OpIAdd %uint %113 %uint_1 OpBranch %111 %112 = OpLabel - %121 = OpLoad %_arr_mat4x3_f16_std140_uint_4_0 %106 None - OpReturnValue %121 + %115 = OpLoad %_arr_mat4x3_f16_std140_uint_4_0 %106 None + OpReturnValue %115 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_private.wgsl.expected.spvasm index 2319364..e61d7e1 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_private.wgsl.expected.spvasm
@@ -62,11 +62,8 @@ %_arr_mat4x3_f16_std140_uint_4_0 = OpTypeArray %mat4x3_f16_std140 %uint_4 %_ptr_Function__arr_mat4x3_f16_std140_uint_4_0 = OpTypePointer Function %_arr_mat4x3_f16_std140_uint_4_0 %_ptr_Function__arr_mat4v3half_uint_4 = OpTypePointer Function %_arr_mat4v3half_uint_4 - %bool = OpTypeBool -%_ptr_Function_mat4v3half = OpTypePointer Function %mat4v3half -%_ptr_Function_mat4x3_f16_std140 = OpTypePointer Function %mat4x3_f16_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Private_mat4v3half = OpTypePointer Private %mat4v3half + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v3half = OpTypePointer Uniform %v3half %uint_2 = OpConstant %uint 2 %uint_3 = OpConstant %uint 3 @@ -74,6 +71,9 @@ %_ptr_Uniform_half = OpTypePointer Uniform %half %_ptr_Private_half = OpTypePointer Private %half %_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half + %bool = OpTypeBool +%_ptr_Function_mat4v3half = OpTypePointer Function %mat4v3half +%_ptr_Function_mat4x3_f16_std140 = OpTypePointer Function %mat4x3_f16_std140 %88 = OpTypeFunction %_arr_mat4x3_f16_std140_uint_4_0 %_arr_mat4x3_f16_std140_uint_4 %_ptr_Function__arr_mat4x3_f16_std140_uint_4 = OpTypePointer Function %_arr_mat4x3_f16_std140_uint_4 %93 = OpConstantNull %_arr_mat4x3_f16_std140_uint_4_0 @@ -93,55 +93,55 @@ OpLoopMerge %37 %35 None OpBranch %34 %34 = OpLabel - %40 = OpUGreaterThanEqual %bool %38 %uint_4 - OpSelectionMerge %42 None - OpBranchConditional %40 %43 %42 - %43 = OpLabel + %73 = OpUGreaterThanEqual %bool %38 %uint_4 + OpSelectionMerge %75 None + OpBranchConditional %73 %76 %75 + %76 = OpLabel OpBranch %37 - %42 = OpLabel - %44 = OpAccessChain %_ptr_Function_mat4v3half %31 %38 - %46 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %29 %38 - %48 = OpLoad %mat4x3_f16_std140 %46 None - %49 = OpCompositeExtract %v3half %48 0 - %50 = OpCompositeExtract %v3half %48 1 - %51 = OpCompositeExtract %v3half %48 2 - %52 = OpCompositeExtract %v3half %48 3 - %53 = OpCompositeConstruct %mat4v3half %49 %50 %51 %52 - OpStore %44 %53 None + %75 = OpLabel + %77 = OpAccessChain %_ptr_Function_mat4v3half %31 %38 + %79 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %29 %38 + %81 = OpLoad %mat4x3_f16_std140 %79 None + %82 = OpCompositeExtract %v3half %81 0 + %83 = OpCompositeExtract %v3half %81 1 + %84 = OpCompositeExtract %v3half %81 2 + %85 = OpCompositeExtract %v3half %81 3 + %86 = OpCompositeConstruct %mat4v3half %82 %83 %84 %85 + OpStore %77 %86 None OpBranch %35 %35 = OpLabel %39 = OpIAdd %uint %38 %uint_1 OpBranch %36 %37 = OpLabel - %55 = OpLoad %_arr_mat4v3half_uint_4 %31 None - OpStore %p %55 None - %56 = OpAccessChain %_ptr_Private_mat4v3half %p %uint_1 - %58 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_0 - %61 = OpLoad %v3half %58 None - %62 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 - %63 = OpLoad %v3half %62 None - %64 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 - %65 = OpLoad %v3half %64 None - %66 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_3 - %68 = OpLoad %v3half %66 None - %69 = OpCompositeConstruct %mat4v3half %61 %63 %65 %68 - OpStore %56 %69 None - %70 = OpAccessChain %_ptr_Private_v3half %p %uint_1 %uint_0 - %72 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_1 - %73 = OpLoad %v3half %72 None - %74 = OpVectorShuffle %v3half %73 %73 2 0 1 - OpStore %70 %74 None - %75 = OpAccessChain %_ptr_Private_v3half %p %uint_1 %uint_0 - %76 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_1 - %77 = OpAccessChain %_ptr_Uniform_half %76 %uint_0 - %79 = OpLoad %half %77 None - %80 = OpAccessChain %_ptr_Private_half %75 %uint_0 - OpStore %80 %79 None - %82 = OpAccessChain %_ptr_Private_v3half %p %uint_1 %uint_0 - %83 = OpAccessChain %_ptr_Private_half %82 %uint_0 - %84 = OpLoad %half %83 None - %85 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 - OpStore %85 %84 None + %40 = OpLoad %_arr_mat4v3half_uint_4 %31 None + OpStore %p %40 None + %41 = OpAccessChain %_ptr_Private_mat4v3half %p %uint_1 + %44 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_0 + %47 = OpLoad %v3half %44 None + %48 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 + %49 = OpLoad %v3half %48 None + %50 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 + %51 = OpLoad %v3half %50 None + %52 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_3 + %54 = OpLoad %v3half %52 None + %55 = OpCompositeConstruct %mat4v3half %47 %49 %51 %54 + OpStore %41 %55 None + %56 = OpAccessChain %_ptr_Private_v3half %p %uint_1 %uint_0 + %58 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_1 + %59 = OpLoad %v3half %58 None + %60 = OpVectorShuffle %v3half %59 %59 2 0 1 + OpStore %56 %60 None + %61 = OpAccessChain %_ptr_Private_v3half %p %uint_1 %uint_0 + %62 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_1 + %63 = OpAccessChain %_ptr_Uniform_half %62 %uint_0 + %65 = OpLoad %half %63 None + %66 = OpAccessChain %_ptr_Private_half %61 %uint_0 + OpStore %66 %65 None + %68 = OpAccessChain %_ptr_Private_v3half %p %uint_1 %uint_0 + %69 = OpAccessChain %_ptr_Private_half %68 %uint_0 + %70 = OpLoad %half %69 None + %71 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 + OpStore %71 %70 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat4x3_f16_std140_uint_4_0 None %88 @@ -158,21 +158,21 @@ OpLoopMerge %98 %96 None OpBranch %95 %95 = OpLabel - %101 = OpUGreaterThanEqual %bool %99 %uint_4 - OpSelectionMerge %102 None - OpBranchConditional %101 %103 %102 - %103 = OpLabel + %102 = OpUGreaterThanEqual %bool %99 %uint_4 + OpSelectionMerge %103 None + OpBranchConditional %102 %104 %103 + %104 = OpLabel OpBranch %98 - %102 = OpLabel - %104 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %90 %99 - %105 = OpLoad %mat4x3_f16_std140 %104 None - %106 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %92 %99 - OpStore %106 %105 None + %103 = OpLabel + %105 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %90 %99 + %106 = OpLoad %mat4x3_f16_std140 %105 None + %107 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %92 %99 + OpStore %107 %106 None OpBranch %96 %96 = OpLabel %100 = OpIAdd %uint %99 %uint_1 OpBranch %97 %98 = OpLabel - %107 = OpLoad %_arr_mat4x3_f16_std140_uint_4_0 %92 None - OpReturnValue %107 + %101 = OpLoad %_arr_mat4x3_f16_std140_uint_4_0 %92 None + OpReturnValue %101 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_storage.wgsl.expected.spvasm index 603123c..78af9b7 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_storage.wgsl.expected.spvasm
@@ -68,17 +68,17 @@ %_arr_mat4v3half_uint_4_0 = OpTypeArray %mat4v3half %uint_4 %_ptr_Function__arr_mat4v3half_uint_4_0 = OpTypePointer Function %_arr_mat4v3half_uint_4_0 %31 = OpConstantNull %_arr_mat4v3half_uint_4_0 - %bool = OpTypeBool -%_ptr_Function_mat4v3half = OpTypePointer Function %mat4v3half -%_ptr_Function_mat4x3_f16_std140 = OpTypePointer Function %mat4x3_f16_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v3half = OpTypePointer Uniform %v3half %uint_2 = OpConstant %uint 2 + %uint_1 = OpConstant %uint 1 %uint_3 = OpConstant %uint 3 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1 %_ptr_StorageBuffer_v3half = OpTypePointer StorageBuffer %v3half %_ptr_Uniform_half = OpTypePointer Uniform %half %_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half + %bool = OpTypeBool +%_ptr_Function_mat4v3half = OpTypePointer Function %mat4v3half +%_ptr_Function_mat4x3_f16_std140 = OpTypePointer Function %mat4x3_f16_std140 %86 = OpTypeFunction %void %_arr_mat4v3half_uint_4_0 %105 = OpTypeFunction %void %_arr_uint_uint_1 %mat4v3half %117 = OpTypeFunction %_arr_mat4x3_f16_std140_uint_4_0 %_arr_mat4x3_f16_std140_uint_4 @@ -100,50 +100,50 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_4 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %71 = OpUGreaterThanEqual %bool %37 %uint_4 + OpSelectionMerge %73 None + OpBranchConditional %71 %74 %73 + %74 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Function_mat4v3half %28 %37 - %45 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %26 %37 - %47 = OpLoad %mat4x3_f16_std140 %45 None - %48 = OpCompositeExtract %v3half %47 0 - %49 = OpCompositeExtract %v3half %47 1 - %50 = OpCompositeExtract %v3half %47 2 - %51 = OpCompositeExtract %v3half %47 3 - %52 = OpCompositeConstruct %mat4v3half %48 %49 %50 %51 - OpStore %43 %52 None + %73 = OpLabel + %75 = OpAccessChain %_ptr_Function_mat4v3half %28 %37 + %77 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %26 %37 + %79 = OpLoad %mat4x3_f16_std140 %77 None + %80 = OpCompositeExtract %v3half %79 0 + %81 = OpCompositeExtract %v3half %79 1 + %82 = OpCompositeExtract %v3half %79 2 + %83 = OpCompositeExtract %v3half %79 3 + %84 = OpCompositeConstruct %mat4v3half %80 %81 %82 %83 + OpStore %75 %84 None OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel - %54 = OpLoad %_arr_mat4v3half_uint_4_0 %28 None - %55 = OpFunctionCall %void %tint_store_and_preserve_padding %54 - %57 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_0 - %60 = OpLoad %v3half %57 None - %61 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 + %39 = OpLoad %_arr_mat4v3half_uint_4_0 %28 None + %40 = OpFunctionCall %void %tint_store_and_preserve_padding %39 + %42 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_0 + %45 = OpLoad %v3half %42 None + %46 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 + %48 = OpLoad %v3half %46 None + %49 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 + %50 = OpLoad %v3half %49 None + %51 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_3 + %53 = OpLoad %v3half %51 None + %54 = OpCompositeConstruct %mat4v3half %45 %48 %50 %53 + %56 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 + %57 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %56 %54 + %59 = OpAccessChain %_ptr_StorageBuffer_v3half %10 %uint_0 %uint_1 %uint_0 + %61 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_1 %62 = OpLoad %v3half %61 None - %63 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 - %64 = OpLoad %v3half %63 None - %65 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_3 - %67 = OpLoad %v3half %65 None - %68 = OpCompositeConstruct %mat4v3half %60 %62 %64 %67 - %70 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 - %71 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %70 %68 - %73 = OpAccessChain %_ptr_StorageBuffer_v3half %10 %uint_0 %uint_1 %uint_0 - %75 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_1 - %76 = OpLoad %v3half %75 None - %77 = OpVectorShuffle %v3half %76 %76 2 0 1 - OpStore %73 %77 None - %78 = OpAccessChain %_ptr_StorageBuffer_v3half %10 %uint_0 %uint_1 %uint_0 - %79 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_1 - %80 = OpAccessChain %_ptr_Uniform_half %79 %uint_0 - %82 = OpLoad %half %80 None - %83 = OpAccessChain %_ptr_StorageBuffer_half %78 %uint_0 - OpStore %83 %82 None + %63 = OpVectorShuffle %v3half %62 %62 2 0 1 + OpStore %59 %63 None + %64 = OpAccessChain %_ptr_StorageBuffer_v3half %10 %uint_0 %uint_1 %uint_0 + %65 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_1 + %66 = OpAccessChain %_ptr_Uniform_half %65 %uint_0 + %68 = OpLoad %half %66 None + %69 = OpAccessChain %_ptr_StorageBuffer_half %64 %uint_0 + OpStore %69 %68 None OpReturn OpFunctionEnd %tint_store_and_preserve_padding = OpFunction %void None %86 @@ -209,21 +209,21 @@ OpLoopMerge %127 %125 None OpBranch %124 %124 = OpLabel - %130 = OpUGreaterThanEqual %bool %128 %uint_4 - OpSelectionMerge %131 None - OpBranchConditional %130 %132 %131 - %132 = OpLabel + %131 = OpUGreaterThanEqual %bool %128 %uint_4 + OpSelectionMerge %132 None + OpBranchConditional %131 %133 %132 + %133 = OpLabel OpBranch %127 - %131 = OpLabel - %133 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %119 %128 - %134 = OpLoad %mat4x3_f16_std140 %133 None - %135 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %121 %128 - OpStore %135 %134 None + %132 = OpLabel + %134 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %119 %128 + %135 = OpLoad %mat4x3_f16_std140 %134 None + %136 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %121 %128 + OpStore %136 %135 None OpBranch %125 %125 = OpLabel %129 = OpIAdd %uint %128 %uint_1 OpBranch %126 %127 = OpLabel - %136 = OpLoad %_arr_mat4x3_f16_std140_uint_4_0 %121 None - OpReturnValue %136 + %130 = OpLoad %_arr_mat4x3_f16_std140_uint_4_0 %121 None + OpReturnValue %130 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_workgroup.wgsl.expected.spvasm index 4c748a8..f037a8f 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_workgroup.wgsl.expected.spvasm
@@ -52,10 +52,6 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %19 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_mat4v3half = OpTypePointer Workgroup %mat4v3half - %34 = OpConstantNull %mat4v3half - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_mat4x3_f16_std140_uint_4 = OpTypePointer Uniform %_arr_mat4x3_f16_std140_uint_4 @@ -63,14 +59,18 @@ %_arr_mat4x3_f16_std140_uint_4_0 = OpTypeArray %mat4x3_f16_std140 %uint_4 %_ptr_Function__arr_mat4x3_f16_std140_uint_4_0 = OpTypePointer Function %_arr_mat4x3_f16_std140_uint_4_0 %_ptr_Function__arr_mat4v3half_uint_4 = OpTypePointer Function %_arr_mat4v3half_uint_4 - %50 = OpConstantNull %_arr_mat4v3half_uint_4 -%_ptr_Function_mat4v3half = OpTypePointer Function %mat4v3half -%_ptr_Function_mat4x3_f16_std140 = OpTypePointer Function %mat4x3_f16_std140 + %42 = OpConstantNull %_arr_mat4v3half_uint_4 +%_ptr_Workgroup_mat4v3half = OpTypePointer Workgroup %mat4v3half + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v3half = OpTypePointer Uniform %v3half %uint_3 = OpConstant %uint 3 %_ptr_Workgroup_v3half = OpTypePointer Workgroup %v3half %_ptr_Uniform_half = OpTypePointer Uniform %half %_ptr_Workgroup_half = OpTypePointer Workgroup %half + %bool = OpTypeBool + %82 = OpConstantNull %mat4v3half +%_ptr_Function_mat4v3half = OpTypePointer Function %mat4v3half +%_ptr_Function_mat4x3_f16_std140 = OpTypePointer Function %mat4x3_f16_std140 %97 = OpTypeFunction %void %102 = OpTypeFunction %_arr_mat4x3_f16_std140_uint_4_0 %_arr_mat4x3_f16_std140_uint_4 %_ptr_Function__arr_mat4x3_f16_std140_uint_4 = OpTypePointer Function %_arr_mat4x3_f16_std140_uint_4 @@ -78,8 +78,8 @@ %f_inner = OpFunction %void None %19 %tint_local_index = OpFunctionParameter %uint %20 = OpLabel - %46 = OpVariable %_ptr_Function__arr_mat4x3_f16_std140_uint_4_0 Function - %48 = OpVariable %_ptr_Function__arr_mat4v3half_uint_4 Function %50 + %38 = OpVariable %_ptr_Function__arr_mat4x3_f16_std140_uint_4_0 Function + %40 = OpVariable %_ptr_Function__arr_mat4v3half_uint_4 Function %42 OpBranch %21 %21 = OpLabel OpBranch %24 @@ -88,76 +88,76 @@ OpLoopMerge %25 %23 None OpBranch %22 %22 = OpLabel - %28 = OpUGreaterThanEqual %bool %26 %uint_4 - OpSelectionMerge %30 None - OpBranchConditional %28 %31 %30 - %31 = OpLabel + %77 = OpUGreaterThanEqual %bool %26 %uint_4 + OpSelectionMerge %79 None + OpBranchConditional %77 %80 %79 + %80 = OpLabel OpBranch %25 - %30 = OpLabel - %32 = OpAccessChain %_ptr_Workgroup_mat4v3half %w %26 - OpStore %32 %34 None + %79 = OpLabel + %81 = OpAccessChain %_ptr_Workgroup_mat4v3half %w %26 + OpStore %81 %82 None OpBranch %23 %23 = OpLabel %27 = OpIAdd %uint %26 %uint_1 OpBranch %24 %25 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %39 = OpAccessChain %_ptr_Uniform__arr_mat4x3_f16_std140_uint_4 %1 %uint_0 - %42 = OpLoad %_arr_mat4x3_f16_std140_uint_4 %39 None - %43 = OpFunctionCall %_arr_mat4x3_f16_std140_uint_4_0 %tint_convert_explicit_layout %42 - OpStore %46 %43 - OpBranch %51 - %51 = OpLabel - OpBranch %54 - %54 = OpLabel - %56 = OpPhi %uint %uint_0 %51 %57 %53 - OpLoopMerge %55 %53 None - OpBranch %52 - %52 = OpLabel - %58 = OpUGreaterThanEqual %bool %56 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %58 %60 %59 - %60 = OpLabel - OpBranch %55 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_mat4v3half %48 %56 - %63 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %46 %56 - %65 = OpLoad %mat4x3_f16_std140 %63 None - %66 = OpCompositeExtract %v3half %65 0 - %67 = OpCompositeExtract %v3half %65 1 - %68 = OpCompositeExtract %v3half %65 2 - %69 = OpCompositeExtract %v3half %65 3 - %70 = OpCompositeConstruct %mat4v3half %66 %67 %68 %69 - OpStore %61 %70 None - OpBranch %53 - %53 = OpLabel - %57 = OpIAdd %uint %56 %uint_1 - OpBranch %54 - %55 = OpLabel - %71 = OpLoad %_arr_mat4v3half_uint_4 %48 None - OpStore %w %71 None - %72 = OpAccessChain %_ptr_Workgroup_mat4v3half %w %uint_1 - %73 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_0 - %75 = OpLoad %v3half %73 None - %76 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 - %77 = OpLoad %v3half %76 None - %78 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 - %79 = OpLoad %v3half %78 None - %80 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_3 - %82 = OpLoad %v3half %80 None - %83 = OpCompositeConstruct %mat4v3half %75 %77 %79 %82 - OpStore %72 %83 None - %84 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 %uint_0 - %86 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_1 - %87 = OpLoad %v3half %86 None - %88 = OpVectorShuffle %v3half %87 %87 2 0 1 - OpStore %84 %88 None - %89 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 %uint_0 - %90 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_1 - %91 = OpAccessChain %_ptr_Uniform_half %90 %uint_0 - %93 = OpLoad %half %91 None - %94 = OpAccessChain %_ptr_Workgroup_half %89 %uint_0 - OpStore %94 %93 None + %31 = OpAccessChain %_ptr_Uniform__arr_mat4x3_f16_std140_uint_4 %1 %uint_0 + %34 = OpLoad %_arr_mat4x3_f16_std140_uint_4 %31 None + %35 = OpFunctionCall %_arr_mat4x3_f16_std140_uint_4_0 %tint_convert_explicit_layout %34 + OpStore %38 %35 + OpBranch %43 + %43 = OpLabel + OpBranch %46 + %46 = OpLabel + %48 = OpPhi %uint %uint_0 %43 %49 %45 + OpLoopMerge %47 %45 None + OpBranch %44 + %44 = OpLabel + %83 = OpUGreaterThanEqual %bool %48 %uint_4 + OpSelectionMerge %84 None + OpBranchConditional %83 %85 %84 + %85 = OpLabel + OpBranch %47 + %84 = OpLabel + %86 = OpAccessChain %_ptr_Function_mat4v3half %40 %48 + %88 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %38 %48 + %90 = OpLoad %mat4x3_f16_std140 %88 None + %91 = OpCompositeExtract %v3half %90 0 + %92 = OpCompositeExtract %v3half %90 1 + %93 = OpCompositeExtract %v3half %90 2 + %94 = OpCompositeExtract %v3half %90 3 + %95 = OpCompositeConstruct %mat4v3half %91 %92 %93 %94 + OpStore %86 %95 None + OpBranch %45 + %45 = OpLabel + %49 = OpIAdd %uint %48 %uint_1 + OpBranch %46 + %47 = OpLabel + %50 = OpLoad %_arr_mat4v3half_uint_4 %40 None + OpStore %w %50 None + %51 = OpAccessChain %_ptr_Workgroup_mat4v3half %w %uint_1 + %54 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_0 + %56 = OpLoad %v3half %54 None + %57 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 + %58 = OpLoad %v3half %57 None + %59 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 + %60 = OpLoad %v3half %59 None + %61 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_3 + %63 = OpLoad %v3half %61 None + %64 = OpCompositeConstruct %mat4v3half %56 %58 %60 %63 + OpStore %51 %64 None + %65 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 %uint_0 + %67 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_1 + %68 = OpLoad %v3half %67 None + %69 = OpVectorShuffle %v3half %68 %68 2 0 1 + OpStore %65 %69 None + %70 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 %uint_0 + %71 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_1 + %72 = OpAccessChain %_ptr_Uniform_half %71 %uint_0 + %74 = OpLoad %half %72 None + %75 = OpAccessChain %_ptr_Workgroup_half %70 %uint_0 + OpStore %75 %74 None OpReturn OpFunctionEnd %f = OpFunction %void None %97 @@ -180,21 +180,21 @@ OpLoopMerge %112 %110 None OpBranch %109 %109 = OpLabel - %115 = OpUGreaterThanEqual %bool %113 %uint_4 - OpSelectionMerge %116 None - OpBranchConditional %115 %117 %116 - %117 = OpLabel + %116 = OpUGreaterThanEqual %bool %113 %uint_4 + OpSelectionMerge %117 None + OpBranchConditional %116 %118 %117 + %118 = OpLabel OpBranch %112 - %116 = OpLabel - %118 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %104 %113 - %119 = OpLoad %mat4x3_f16_std140 %118 None - %120 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %106 %113 - OpStore %120 %119 None + %117 = OpLabel + %119 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %104 %113 + %120 = OpLoad %mat4x3_f16_std140 %119 None + %121 = OpAccessChain %_ptr_Function_mat4x3_f16_std140 %106 %113 + OpStore %121 %120 None OpBranch %110 %110 = OpLabel %114 = OpIAdd %uint %113 %uint_1 OpBranch %111 %112 = OpLabel - %121 = OpLoad %_arr_mat4x3_f16_std140_uint_4_0 %106 None - OpReturnValue %121 + %115 = OpLoad %_arr_mat4x3_f16_std140_uint_4_0 %106 None + OpReturnValue %115 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.spvasm index ddbf072..d664283 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -74,9 +74,9 @@ %_arr_mat4v3float_uint_4 = OpTypeArray %mat4v3float %uint_4 %_ptr_Function__arr_mat4v3float_uint_4 = OpTypePointer Function %_arr_mat4v3float_uint_4 %66 = OpConstantNull %_arr_mat4v3float_uint_4 +%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %bool = OpTypeBool %_ptr_Function_mat4x3_f32_std140 = OpTypePointer Function %mat4x3_f32_std140 -%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %98 = OpTypeFunction %_arr_mat4x3_f32_std140_uint_4_0 %_arr_mat4x3_f32_std140_uint_4 %_ptr_Function__arr_mat4x3_f32_std140_uint_4 = OpTypePointer Function %_arr_mat4x3_f32_std140_uint_4 %103 = OpConstantNull %_arr_mat4x3_f32_std140_uint_4_0 @@ -123,36 +123,36 @@ OpLoopMerge %71 %69 None OpBranch %68 %68 = OpLabel - %74 = OpUGreaterThanEqual %bool %72 %uint_4 - OpSelectionMerge %76 None - OpBranchConditional %74 %77 %76 - %77 = OpLabel + %84 = OpUGreaterThanEqual %bool %72 %uint_4 + OpSelectionMerge %86 None + OpBranchConditional %84 %87 %86 + %87 = OpLabel OpBranch %71 - %76 = OpLabel - %78 = OpAccessChain %_ptr_Function_mat4v3float %63 %72 - %79 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %61 %72 - %81 = OpLoad %mat4x3_f32_std140 %79 None - %82 = OpCompositeExtract %v3float %81 0 - %83 = OpCompositeExtract %v3float %81 1 - %84 = OpCompositeExtract %v3float %81 2 - %85 = OpCompositeExtract %v3float %81 3 - %86 = OpCompositeConstruct %mat4v3float %82 %83 %84 %85 - OpStore %78 %86 None + %86 = OpLabel + %88 = OpAccessChain %_ptr_Function_mat4v3float %63 %72 + %89 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %61 %72 + %91 = OpLoad %mat4x3_f32_std140 %89 None + %92 = OpCompositeExtract %v3float %91 0 + %93 = OpCompositeExtract %v3float %91 1 + %94 = OpCompositeExtract %v3float %91 2 + %95 = OpCompositeExtract %v3float %91 3 + %96 = OpCompositeConstruct %mat4v3float %92 %93 %94 %95 + OpStore %88 %96 None OpBranch %69 %69 = OpLabel %73 = OpIAdd %uint %72 %uint_1 OpBranch %70 %71 = OpLabel %l_a = OpLoad %_arr_mat4v3float_uint_4 %63 None - %88 = OpCompositeExtract %float %l_a_i_i 0 - %89 = OpCompositeExtract %float %l_a 0 0 0 - %90 = OpFAdd %float %88 %89 - %91 = OpCompositeExtract %float %l_a_i 0 0 - %92 = OpFAdd %float %90 %91 - %93 = OpCompositeExtract %float %l_a_i_i 0 - %94 = OpFAdd %float %92 %93 - %95 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 - OpStore %95 %94 None + %75 = OpCompositeExtract %float %l_a_i_i 0 + %76 = OpCompositeExtract %float %l_a 0 0 0 + %77 = OpFAdd %float %75 %76 + %78 = OpCompositeExtract %float %l_a_i 0 0 + %79 = OpFAdd %float %77 %78 + %80 = OpCompositeExtract %float %l_a_i_i 0 + %81 = OpFAdd %float %79 %80 + %82 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 + OpStore %82 %81 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat4x3_f32_std140_uint_4_0 None %98 @@ -169,21 +169,21 @@ OpLoopMerge %108 %106 None OpBranch %105 %105 = OpLabel - %111 = OpUGreaterThanEqual %bool %109 %uint_4 - OpSelectionMerge %112 None - OpBranchConditional %111 %113 %112 - %113 = OpLabel + %112 = OpUGreaterThanEqual %bool %109 %uint_4 + OpSelectionMerge %113 None + OpBranchConditional %112 %114 %113 + %114 = OpLabel OpBranch %108 - %112 = OpLabel - %114 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %100 %109 - %115 = OpLoad %mat4x3_f32_std140 %114 None - %116 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %102 %109 - OpStore %116 %115 None + %113 = OpLabel + %115 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %100 %109 + %116 = OpLoad %mat4x3_f32_std140 %115 None + %117 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %102 %109 + OpStore %117 %116 None OpBranch %106 %106 = OpLabel %110 = OpIAdd %uint %109 %uint_1 OpBranch %107 %108 = OpLabel - %117 = OpLoad %_arr_mat4x3_f32_std140_uint_4_0 %102 None - OpReturnValue %117 + %111 = OpLoad %_arr_mat4x3_f32_std140_uint_4_0 %102 None + OpReturnValue %111 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.spvasm index f44befa..0ae7086 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.spvasm
@@ -63,10 +63,10 @@ %_arr_mat4v3float_uint_4 = OpTypeArray %mat4v3float %uint_4 %_ptr_Function__arr_mat4v3float_uint_4 = OpTypePointer Function %_arr_mat4v3float_uint_4 %44 = OpConstantNull %_arr_mat4v3float_uint_4 +%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %bool = OpTypeBool %_ptr_Function_mat4v3float = OpTypePointer Function %mat4v3float %_ptr_Function_mat4x3_f32_std140 = OpTypePointer Function %mat4x3_f32_std140 -%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %77 = OpTypeFunction %_arr_mat4x3_f32_std140_uint_4_0 %_arr_mat4x3_f32_std140_uint_4 %_ptr_Function__arr_mat4x3_f32_std140_uint_4 = OpTypePointer Function %_arr_mat4x3_f32_std140_uint_4 %82 = OpConstantNull %_arr_mat4x3_f32_std140_uint_4_0 @@ -96,36 +96,36 @@ OpLoopMerge %49 %47 None OpBranch %46 %46 = OpLabel - %52 = OpUGreaterThanEqual %bool %50 %uint_4 - OpSelectionMerge %54 None - OpBranchConditional %52 %55 %54 - %55 = OpLabel + %62 = OpUGreaterThanEqual %bool %50 %uint_4 + OpSelectionMerge %64 None + OpBranchConditional %62 %65 %64 + %65 = OpLabel OpBranch %49 - %54 = OpLabel - %56 = OpAccessChain %_ptr_Function_mat4v3float %41 %50 - %58 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %39 %50 - %60 = OpLoad %mat4x3_f32_std140 %58 None - %61 = OpCompositeExtract %v3float %60 0 - %62 = OpCompositeExtract %v3float %60 1 - %63 = OpCompositeExtract %v3float %60 2 - %64 = OpCompositeExtract %v3float %60 3 - %65 = OpCompositeConstruct %mat4v3float %61 %62 %63 %64 - OpStore %56 %65 None + %64 = OpLabel + %66 = OpAccessChain %_ptr_Function_mat4v3float %41 %50 + %68 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %39 %50 + %70 = OpLoad %mat4x3_f32_std140 %68 None + %71 = OpCompositeExtract %v3float %70 0 + %72 = OpCompositeExtract %v3float %70 1 + %73 = OpCompositeExtract %v3float %70 2 + %74 = OpCompositeExtract %v3float %70 3 + %75 = OpCompositeConstruct %mat4v3float %71 %72 %73 %74 + OpStore %66 %75 None OpBranch %47 %47 = OpLabel %51 = OpIAdd %uint %50 %uint_1 OpBranch %48 %49 = OpLabel %l_a = OpLoad %_arr_mat4v3float_uint_4 %41 None - %67 = OpCompositeExtract %float %l_a_i_i 0 - %68 = OpCompositeExtract %float %l_a 0 0 0 - %69 = OpFAdd %float %67 %68 - %70 = OpCompositeExtract %float %l_a_i 0 0 - %71 = OpFAdd %float %69 %70 - %72 = OpCompositeExtract %float %l_a_i_i 0 - %73 = OpFAdd %float %71 %72 - %74 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 - OpStore %74 %73 None + %53 = OpCompositeExtract %float %l_a_i_i 0 + %54 = OpCompositeExtract %float %l_a 0 0 0 + %55 = OpFAdd %float %53 %54 + %56 = OpCompositeExtract %float %l_a_i 0 0 + %57 = OpFAdd %float %55 %56 + %58 = OpCompositeExtract %float %l_a_i_i 0 + %59 = OpFAdd %float %57 %58 + %60 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 + OpStore %60 %59 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat4x3_f32_std140_uint_4_0 None %77 @@ -142,21 +142,21 @@ OpLoopMerge %87 %85 None OpBranch %84 %84 = OpLabel - %90 = OpUGreaterThanEqual %bool %88 %uint_4 - OpSelectionMerge %91 None - OpBranchConditional %90 %92 %91 - %92 = OpLabel + %91 = OpUGreaterThanEqual %bool %88 %uint_4 + OpSelectionMerge %92 None + OpBranchConditional %91 %93 %92 + %93 = OpLabel OpBranch %87 - %91 = OpLabel - %93 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %79 %88 - %94 = OpLoad %mat4x3_f32_std140 %93 None - %95 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %81 %88 - OpStore %95 %94 None + %92 = OpLabel + %94 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %79 %88 + %95 = OpLoad %mat4x3_f32_std140 %94 None + %96 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %81 %88 + OpStore %96 %95 None OpBranch %85 %85 = OpLabel %89 = OpIAdd %uint %88 %uint_1 OpBranch %86 %87 = OpLabel - %96 = OpLoad %_arr_mat4x3_f32_std140_uint_4_0 %81 None - OpReturnValue %96 + %90 = OpLoad %_arr_mat4x3_f32_std140_uint_4_0 %81 None + OpReturnValue %90 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_fn.wgsl.expected.spvasm index 6a4f56d..7572d06 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_fn.wgsl.expected.spvasm
@@ -68,14 +68,14 @@ %_ptr_Function__arr_mat4x3_f32_std140_uint_4_0 = OpTypePointer Function %_arr_mat4x3_f32_std140_uint_4_0 %_ptr_Function__arr_mat4v3float_uint_4 = OpTypePointer Function %_arr_mat4v3float_uint_4 %49 = OpConstantNull %_arr_mat4v3float_uint_4 - %bool = OpTypeBool -%_ptr_Function_mat4v3float = OpTypePointer Function %mat4v3float -%_ptr_Function_mat4x3_f32_std140 = OpTypePointer Function %mat4x3_f32_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float + %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_3 = OpConstant %uint 3 %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float + %bool = OpTypeBool +%_ptr_Function_mat4v3float = OpTypePointer Function %mat4v3float +%_ptr_Function_mat4x3_f32_std140 = OpTypePointer Function %mat4x3_f32_std140 %102 = OpTypeFunction %_arr_mat4x3_f32_std140_uint_4_0 %_arr_mat4x3_f32_std140_uint_4 %_ptr_Function__arr_mat4x3_f32_std140_uint_4 = OpTypePointer Function %_arr_mat4x3_f32_std140_uint_4 %107 = OpConstantNull %_arr_mat4x3_f32_std140_uint_4_0 @@ -118,52 +118,52 @@ OpLoopMerge %54 %52 None OpBranch %51 %51 = OpLabel - %57 = OpUGreaterThanEqual %bool %55 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel + %87 = OpUGreaterThanEqual %bool %55 %uint_4 + OpSelectionMerge %89 None + OpBranchConditional %87 %90 %89 + %90 = OpLabel OpBranch %54 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_mat4v3float %47 %55 - %63 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %45 %55 - %65 = OpLoad %mat4x3_f32_std140 %63 None - %66 = OpCompositeExtract %v3float %65 0 - %67 = OpCompositeExtract %v3float %65 1 - %68 = OpCompositeExtract %v3float %65 2 - %69 = OpCompositeExtract %v3float %65 3 - %70 = OpCompositeConstruct %mat4v3float %66 %67 %68 %69 - OpStore %61 %70 None + %89 = OpLabel + %91 = OpAccessChain %_ptr_Function_mat4v3float %47 %55 + %93 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %45 %55 + %95 = OpLoad %mat4x3_f32_std140 %93 None + %96 = OpCompositeExtract %v3float %95 0 + %97 = OpCompositeExtract %v3float %95 1 + %98 = OpCompositeExtract %v3float %95 2 + %99 = OpCompositeExtract %v3float %95 3 + %100 = OpCompositeConstruct %mat4v3float %96 %97 %98 %99 + OpStore %91 %100 None OpBranch %52 %52 = OpLabel %56 = OpIAdd %uint %55 %uint_1 OpBranch %53 %54 = OpLabel - %72 = OpLoad %_arr_mat4v3float_uint_4 %47 None - %73 = OpFunctionCall %float %a %72 + %57 = OpLoad %_arr_mat4v3float_uint_4 %47 None + %58 = OpFunctionCall %float %a %57 + %59 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_0 + %62 = OpLoad %v3float %59 None + %63 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_1 + %64 = OpLoad %v3float %63 None + %65 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_2 + %67 = OpLoad %v3float %65 None + %68 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_3 + %70 = OpLoad %v3float %68 None + %71 = OpCompositeConstruct %mat4v3float %62 %64 %67 %70 + %72 = OpFunctionCall %float %b %71 + %73 = OpFAdd %float %58 %72 %74 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_0 - %76 = OpLoad %v3float %74 None - %77 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_1 - %78 = OpLoad %v3float %77 None - %79 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_2 - %81 = OpLoad %v3float %79 None - %82 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_3 - %84 = OpLoad %v3float %82 None - %85 = OpCompositeConstruct %mat4v3float %76 %78 %81 %84 - %86 = OpFunctionCall %float %b %85 - %87 = OpFAdd %float %73 %86 - %88 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_0 - %89 = OpLoad %v3float %88 None - %90 = OpVectorShuffle %v3float %89 %89 2 0 1 - %91 = OpFunctionCall %float %c %90 - %92 = OpFAdd %float %87 %91 - %93 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_0 - %94 = OpLoad %v3float %93 None - %95 = OpVectorShuffle %v3float %94 %94 2 0 1 - %96 = OpCompositeExtract %float %95 0 - %97 = OpFunctionCall %float %d %96 - %98 = OpFAdd %float %92 %97 - %99 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 - OpStore %99 %98 None + %75 = OpLoad %v3float %74 None + %76 = OpVectorShuffle %v3float %75 %75 2 0 1 + %77 = OpFunctionCall %float %c %76 + %78 = OpFAdd %float %73 %77 + %79 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_1 %uint_0 + %80 = OpLoad %v3float %79 None + %81 = OpVectorShuffle %v3float %80 %80 2 0 1 + %82 = OpCompositeExtract %float %81 0 + %83 = OpFunctionCall %float %d %82 + %84 = OpFAdd %float %78 %83 + %85 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 + OpStore %85 %84 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat4x3_f32_std140_uint_4_0 None %102 @@ -180,21 +180,21 @@ OpLoopMerge %112 %110 None OpBranch %109 %109 = OpLabel - %115 = OpUGreaterThanEqual %bool %113 %uint_4 - OpSelectionMerge %116 None - OpBranchConditional %115 %117 %116 - %117 = OpLabel + %116 = OpUGreaterThanEqual %bool %113 %uint_4 + OpSelectionMerge %117 None + OpBranchConditional %116 %118 %117 + %118 = OpLabel OpBranch %112 - %116 = OpLabel - %118 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %104 %113 - %119 = OpLoad %mat4x3_f32_std140 %118 None - %120 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %106 %113 - OpStore %120 %119 None + %117 = OpLabel + %119 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %104 %113 + %120 = OpLoad %mat4x3_f32_std140 %119 None + %121 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %106 %113 + OpStore %121 %120 None OpBranch %110 %110 = OpLabel %114 = OpIAdd %uint %113 %uint_1 OpBranch %111 %112 = OpLabel - %121 = OpLoad %_arr_mat4x3_f32_std140_uint_4_0 %106 None - OpReturnValue %121 + %115 = OpLoad %_arr_mat4x3_f32_std140_uint_4_0 %106 None + OpReturnValue %115 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_private.wgsl.expected.spvasm index 6180dae..4166830 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_private.wgsl.expected.spvasm
@@ -59,11 +59,8 @@ %_arr_mat4x3_f32_std140_uint_4_0 = OpTypeArray %mat4x3_f32_std140 %uint_4 %_ptr_Function__arr_mat4x3_f32_std140_uint_4_0 = OpTypePointer Function %_arr_mat4x3_f32_std140_uint_4_0 %_ptr_Function__arr_mat4v3float_uint_4 = OpTypePointer Function %_arr_mat4v3float_uint_4 - %bool = OpTypeBool -%_ptr_Function_mat4v3float = OpTypePointer Function %mat4v3float -%_ptr_Function_mat4x3_f32_std140 = OpTypePointer Function %mat4x3_f32_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Private_mat4v3float = OpTypePointer Private %mat4v3float + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float %uint_2 = OpConstant %uint 2 %uint_3 = OpConstant %uint 3 @@ -71,6 +68,9 @@ %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Private_float = OpTypePointer Private %float %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float + %bool = OpTypeBool +%_ptr_Function_mat4v3float = OpTypePointer Function %mat4v3float +%_ptr_Function_mat4x3_f32_std140 = OpTypePointer Function %mat4x3_f32_std140 %88 = OpTypeFunction %_arr_mat4x3_f32_std140_uint_4_0 %_arr_mat4x3_f32_std140_uint_4 %_ptr_Function__arr_mat4x3_f32_std140_uint_4 = OpTypePointer Function %_arr_mat4x3_f32_std140_uint_4 %93 = OpConstantNull %_arr_mat4x3_f32_std140_uint_4_0 @@ -90,55 +90,55 @@ OpLoopMerge %37 %35 None OpBranch %34 %34 = OpLabel - %40 = OpUGreaterThanEqual %bool %38 %uint_4 - OpSelectionMerge %42 None - OpBranchConditional %40 %43 %42 - %43 = OpLabel + %73 = OpUGreaterThanEqual %bool %38 %uint_4 + OpSelectionMerge %75 None + OpBranchConditional %73 %76 %75 + %76 = OpLabel OpBranch %37 - %42 = OpLabel - %44 = OpAccessChain %_ptr_Function_mat4v3float %31 %38 - %46 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %29 %38 - %48 = OpLoad %mat4x3_f32_std140 %46 None - %49 = OpCompositeExtract %v3float %48 0 - %50 = OpCompositeExtract %v3float %48 1 - %51 = OpCompositeExtract %v3float %48 2 - %52 = OpCompositeExtract %v3float %48 3 - %53 = OpCompositeConstruct %mat4v3float %49 %50 %51 %52 - OpStore %44 %53 None + %75 = OpLabel + %77 = OpAccessChain %_ptr_Function_mat4v3float %31 %38 + %79 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %29 %38 + %81 = OpLoad %mat4x3_f32_std140 %79 None + %82 = OpCompositeExtract %v3float %81 0 + %83 = OpCompositeExtract %v3float %81 1 + %84 = OpCompositeExtract %v3float %81 2 + %85 = OpCompositeExtract %v3float %81 3 + %86 = OpCompositeConstruct %mat4v3float %82 %83 %84 %85 + OpStore %77 %86 None OpBranch %35 %35 = OpLabel %39 = OpIAdd %uint %38 %uint_1 OpBranch %36 %37 = OpLabel - %55 = OpLoad %_arr_mat4v3float_uint_4 %31 None - OpStore %p %55 None - %56 = OpAccessChain %_ptr_Private_mat4v3float %p %uint_1 - %58 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_0 - %61 = OpLoad %v3float %58 None - %62 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 - %63 = OpLoad %v3float %62 None - %64 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 - %65 = OpLoad %v3float %64 None - %66 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_3 - %68 = OpLoad %v3float %66 None - %69 = OpCompositeConstruct %mat4v3float %61 %63 %65 %68 - OpStore %56 %69 None - %70 = OpAccessChain %_ptr_Private_v3float %p %uint_1 %uint_0 - %72 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 - %73 = OpLoad %v3float %72 None - %74 = OpVectorShuffle %v3float %73 %73 2 0 1 - OpStore %70 %74 None - %75 = OpAccessChain %_ptr_Private_v3float %p %uint_1 %uint_0 - %76 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 - %77 = OpAccessChain %_ptr_Uniform_float %76 %uint_0 - %79 = OpLoad %float %77 None - %80 = OpAccessChain %_ptr_Private_float %75 %uint_0 - OpStore %80 %79 None - %82 = OpAccessChain %_ptr_Private_v3float %p %uint_1 %uint_0 - %83 = OpAccessChain %_ptr_Private_float %82 %uint_0 - %84 = OpLoad %float %83 None - %85 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 - OpStore %85 %84 None + %40 = OpLoad %_arr_mat4v3float_uint_4 %31 None + OpStore %p %40 None + %41 = OpAccessChain %_ptr_Private_mat4v3float %p %uint_1 + %44 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_0 + %47 = OpLoad %v3float %44 None + %48 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 + %49 = OpLoad %v3float %48 None + %50 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 + %51 = OpLoad %v3float %50 None + %52 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_3 + %54 = OpLoad %v3float %52 None + %55 = OpCompositeConstruct %mat4v3float %47 %49 %51 %54 + OpStore %41 %55 None + %56 = OpAccessChain %_ptr_Private_v3float %p %uint_1 %uint_0 + %58 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 + %59 = OpLoad %v3float %58 None + %60 = OpVectorShuffle %v3float %59 %59 2 0 1 + OpStore %56 %60 None + %61 = OpAccessChain %_ptr_Private_v3float %p %uint_1 %uint_0 + %62 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 + %63 = OpAccessChain %_ptr_Uniform_float %62 %uint_0 + %65 = OpLoad %float %63 None + %66 = OpAccessChain %_ptr_Private_float %61 %uint_0 + OpStore %66 %65 None + %68 = OpAccessChain %_ptr_Private_v3float %p %uint_1 %uint_0 + %69 = OpAccessChain %_ptr_Private_float %68 %uint_0 + %70 = OpLoad %float %69 None + %71 = OpAccessChain %_ptr_StorageBuffer_float %10 %uint_0 + OpStore %71 %70 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat4x3_f32_std140_uint_4_0 None %88 @@ -155,21 +155,21 @@ OpLoopMerge %98 %96 None OpBranch %95 %95 = OpLabel - %101 = OpUGreaterThanEqual %bool %99 %uint_4 - OpSelectionMerge %102 None - OpBranchConditional %101 %103 %102 - %103 = OpLabel + %102 = OpUGreaterThanEqual %bool %99 %uint_4 + OpSelectionMerge %103 None + OpBranchConditional %102 %104 %103 + %104 = OpLabel OpBranch %98 - %102 = OpLabel - %104 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %90 %99 - %105 = OpLoad %mat4x3_f32_std140 %104 None - %106 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %92 %99 - OpStore %106 %105 None + %103 = OpLabel + %105 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %90 %99 + %106 = OpLoad %mat4x3_f32_std140 %105 None + %107 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %92 %99 + OpStore %107 %106 None OpBranch %96 %96 = OpLabel %100 = OpIAdd %uint %99 %uint_1 OpBranch %97 %98 = OpLabel - %107 = OpLoad %_arr_mat4x3_f32_std140_uint_4_0 %92 None - OpReturnValue %107 + %101 = OpLoad %_arr_mat4x3_f32_std140_uint_4_0 %92 None + OpReturnValue %101 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_storage.wgsl.expected.spvasm index 9e256bf..6593b74 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_storage.wgsl.expected.spvasm
@@ -65,17 +65,17 @@ %_arr_mat4v3float_uint_4_0 = OpTypeArray %mat4v3float %uint_4 %_ptr_Function__arr_mat4v3float_uint_4_0 = OpTypePointer Function %_arr_mat4v3float_uint_4_0 %31 = OpConstantNull %_arr_mat4v3float_uint_4_0 - %bool = OpTypeBool -%_ptr_Function_mat4v3float = OpTypePointer Function %mat4v3float -%_ptr_Function_mat4x3_f32_std140 = OpTypePointer Function %mat4x3_f32_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float %uint_2 = OpConstant %uint 2 + %uint_1 = OpConstant %uint 1 %uint_3 = OpConstant %uint 3 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1 %_ptr_StorageBuffer_v3float = OpTypePointer StorageBuffer %v3float %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float + %bool = OpTypeBool +%_ptr_Function_mat4v3float = OpTypePointer Function %mat4v3float +%_ptr_Function_mat4x3_f32_std140 = OpTypePointer Function %mat4x3_f32_std140 %86 = OpTypeFunction %void %_arr_mat4v3float_uint_4_0 %105 = OpTypeFunction %void %_arr_uint_uint_1 %mat4v3float %117 = OpTypeFunction %_arr_mat4x3_f32_std140_uint_4_0 %_arr_mat4x3_f32_std140_uint_4 @@ -97,50 +97,50 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_4 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %71 = OpUGreaterThanEqual %bool %37 %uint_4 + OpSelectionMerge %73 None + OpBranchConditional %71 %74 %73 + %74 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Function_mat4v3float %28 %37 - %45 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %26 %37 - %47 = OpLoad %mat4x3_f32_std140 %45 None - %48 = OpCompositeExtract %v3float %47 0 - %49 = OpCompositeExtract %v3float %47 1 - %50 = OpCompositeExtract %v3float %47 2 - %51 = OpCompositeExtract %v3float %47 3 - %52 = OpCompositeConstruct %mat4v3float %48 %49 %50 %51 - OpStore %43 %52 None + %73 = OpLabel + %75 = OpAccessChain %_ptr_Function_mat4v3float %28 %37 + %77 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %26 %37 + %79 = OpLoad %mat4x3_f32_std140 %77 None + %80 = OpCompositeExtract %v3float %79 0 + %81 = OpCompositeExtract %v3float %79 1 + %82 = OpCompositeExtract %v3float %79 2 + %83 = OpCompositeExtract %v3float %79 3 + %84 = OpCompositeConstruct %mat4v3float %80 %81 %82 %83 + OpStore %75 %84 None OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel - %54 = OpLoad %_arr_mat4v3float_uint_4_0 %28 None - %55 = OpFunctionCall %void %tint_store_and_preserve_padding %54 - %57 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_0 - %60 = OpLoad %v3float %57 None - %61 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 + %39 = OpLoad %_arr_mat4v3float_uint_4_0 %28 None + %40 = OpFunctionCall %void %tint_store_and_preserve_padding %39 + %42 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_0 + %45 = OpLoad %v3float %42 None + %46 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 + %48 = OpLoad %v3float %46 None + %49 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 + %50 = OpLoad %v3float %49 None + %51 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_3 + %53 = OpLoad %v3float %51 None + %54 = OpCompositeConstruct %mat4v3float %45 %48 %50 %53 + %56 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 + %57 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %56 %54 + %59 = OpAccessChain %_ptr_StorageBuffer_v3float %10 %uint_0 %uint_1 %uint_0 + %61 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 %62 = OpLoad %v3float %61 None - %63 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 - %64 = OpLoad %v3float %63 None - %65 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_3 - %67 = OpLoad %v3float %65 None - %68 = OpCompositeConstruct %mat4v3float %60 %62 %64 %67 - %70 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 - %71 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %70 %68 - %73 = OpAccessChain %_ptr_StorageBuffer_v3float %10 %uint_0 %uint_1 %uint_0 - %75 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 - %76 = OpLoad %v3float %75 None - %77 = OpVectorShuffle %v3float %76 %76 2 0 1 - OpStore %73 %77 None - %78 = OpAccessChain %_ptr_StorageBuffer_v3float %10 %uint_0 %uint_1 %uint_0 - %79 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 - %80 = OpAccessChain %_ptr_Uniform_float %79 %uint_0 - %82 = OpLoad %float %80 None - %83 = OpAccessChain %_ptr_StorageBuffer_float %78 %uint_0 - OpStore %83 %82 None + %63 = OpVectorShuffle %v3float %62 %62 2 0 1 + OpStore %59 %63 None + %64 = OpAccessChain %_ptr_StorageBuffer_v3float %10 %uint_0 %uint_1 %uint_0 + %65 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 + %66 = OpAccessChain %_ptr_Uniform_float %65 %uint_0 + %68 = OpLoad %float %66 None + %69 = OpAccessChain %_ptr_StorageBuffer_float %64 %uint_0 + OpStore %69 %68 None OpReturn OpFunctionEnd %tint_store_and_preserve_padding = OpFunction %void None %86 @@ -206,21 +206,21 @@ OpLoopMerge %127 %125 None OpBranch %124 %124 = OpLabel - %130 = OpUGreaterThanEqual %bool %128 %uint_4 - OpSelectionMerge %131 None - OpBranchConditional %130 %132 %131 - %132 = OpLabel + %131 = OpUGreaterThanEqual %bool %128 %uint_4 + OpSelectionMerge %132 None + OpBranchConditional %131 %133 %132 + %133 = OpLabel OpBranch %127 - %131 = OpLabel - %133 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %119 %128 - %134 = OpLoad %mat4x3_f32_std140 %133 None - %135 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %121 %128 - OpStore %135 %134 None + %132 = OpLabel + %134 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %119 %128 + %135 = OpLoad %mat4x3_f32_std140 %134 None + %136 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %121 %128 + OpStore %136 %135 None OpBranch %125 %125 = OpLabel %129 = OpIAdd %uint %128 %uint_1 OpBranch %126 %127 = OpLabel - %136 = OpLoad %_arr_mat4x3_f32_std140_uint_4_0 %121 None - OpReturnValue %136 + %130 = OpLoad %_arr_mat4x3_f32_std140_uint_4_0 %121 None + OpReturnValue %130 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_workgroup.wgsl.expected.spvasm index efa5272..227242f 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_workgroup.wgsl.expected.spvasm
@@ -49,10 +49,6 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %19 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_mat4v3float = OpTypePointer Workgroup %mat4v3float - %34 = OpConstantNull %mat4v3float - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_mat4x3_f32_std140_uint_4 = OpTypePointer Uniform %_arr_mat4x3_f32_std140_uint_4 @@ -60,14 +56,18 @@ %_arr_mat4x3_f32_std140_uint_4_0 = OpTypeArray %mat4x3_f32_std140 %uint_4 %_ptr_Function__arr_mat4x3_f32_std140_uint_4_0 = OpTypePointer Function %_arr_mat4x3_f32_std140_uint_4_0 %_ptr_Function__arr_mat4v3float_uint_4 = OpTypePointer Function %_arr_mat4v3float_uint_4 - %50 = OpConstantNull %_arr_mat4v3float_uint_4 -%_ptr_Function_mat4v3float = OpTypePointer Function %mat4v3float -%_ptr_Function_mat4x3_f32_std140 = OpTypePointer Function %mat4x3_f32_std140 + %42 = OpConstantNull %_arr_mat4v3float_uint_4 +%_ptr_Workgroup_mat4v3float = OpTypePointer Workgroup %mat4v3float + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float %uint_3 = OpConstant %uint 3 %_ptr_Workgroup_v3float = OpTypePointer Workgroup %v3float %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Workgroup_float = OpTypePointer Workgroup %float + %bool = OpTypeBool + %82 = OpConstantNull %mat4v3float +%_ptr_Function_mat4v3float = OpTypePointer Function %mat4v3float +%_ptr_Function_mat4x3_f32_std140 = OpTypePointer Function %mat4x3_f32_std140 %97 = OpTypeFunction %void %102 = OpTypeFunction %_arr_mat4x3_f32_std140_uint_4_0 %_arr_mat4x3_f32_std140_uint_4 %_ptr_Function__arr_mat4x3_f32_std140_uint_4 = OpTypePointer Function %_arr_mat4x3_f32_std140_uint_4 @@ -75,8 +75,8 @@ %f_inner = OpFunction %void None %19 %tint_local_index = OpFunctionParameter %uint %20 = OpLabel - %46 = OpVariable %_ptr_Function__arr_mat4x3_f32_std140_uint_4_0 Function - %48 = OpVariable %_ptr_Function__arr_mat4v3float_uint_4 Function %50 + %38 = OpVariable %_ptr_Function__arr_mat4x3_f32_std140_uint_4_0 Function + %40 = OpVariable %_ptr_Function__arr_mat4v3float_uint_4 Function %42 OpBranch %21 %21 = OpLabel OpBranch %24 @@ -85,76 +85,76 @@ OpLoopMerge %25 %23 None OpBranch %22 %22 = OpLabel - %28 = OpUGreaterThanEqual %bool %26 %uint_4 - OpSelectionMerge %30 None - OpBranchConditional %28 %31 %30 - %31 = OpLabel + %77 = OpUGreaterThanEqual %bool %26 %uint_4 + OpSelectionMerge %79 None + OpBranchConditional %77 %80 %79 + %80 = OpLabel OpBranch %25 - %30 = OpLabel - %32 = OpAccessChain %_ptr_Workgroup_mat4v3float %w %26 - OpStore %32 %34 None + %79 = OpLabel + %81 = OpAccessChain %_ptr_Workgroup_mat4v3float %w %26 + OpStore %81 %82 None OpBranch %23 %23 = OpLabel %27 = OpIAdd %uint %26 %uint_1 OpBranch %24 %25 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %39 = OpAccessChain %_ptr_Uniform__arr_mat4x3_f32_std140_uint_4 %1 %uint_0 - %42 = OpLoad %_arr_mat4x3_f32_std140_uint_4 %39 None - %43 = OpFunctionCall %_arr_mat4x3_f32_std140_uint_4_0 %tint_convert_explicit_layout %42 - OpStore %46 %43 - OpBranch %51 - %51 = OpLabel - OpBranch %54 - %54 = OpLabel - %56 = OpPhi %uint %uint_0 %51 %57 %53 - OpLoopMerge %55 %53 None - OpBranch %52 - %52 = OpLabel - %58 = OpUGreaterThanEqual %bool %56 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %58 %60 %59 - %60 = OpLabel - OpBranch %55 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_mat4v3float %48 %56 - %63 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %46 %56 - %65 = OpLoad %mat4x3_f32_std140 %63 None - %66 = OpCompositeExtract %v3float %65 0 - %67 = OpCompositeExtract %v3float %65 1 - %68 = OpCompositeExtract %v3float %65 2 - %69 = OpCompositeExtract %v3float %65 3 - %70 = OpCompositeConstruct %mat4v3float %66 %67 %68 %69 - OpStore %61 %70 None - OpBranch %53 - %53 = OpLabel - %57 = OpIAdd %uint %56 %uint_1 - OpBranch %54 - %55 = OpLabel - %71 = OpLoad %_arr_mat4v3float_uint_4 %48 None - OpStore %w %71 None - %72 = OpAccessChain %_ptr_Workgroup_mat4v3float %w %uint_1 - %73 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_0 - %75 = OpLoad %v3float %73 None - %76 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 - %77 = OpLoad %v3float %76 None - %78 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 - %79 = OpLoad %v3float %78 None - %80 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_3 - %82 = OpLoad %v3float %80 None - %83 = OpCompositeConstruct %mat4v3float %75 %77 %79 %82 - OpStore %72 %83 None - %84 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 %uint_0 - %86 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 - %87 = OpLoad %v3float %86 None - %88 = OpVectorShuffle %v3float %87 %87 2 0 1 - OpStore %84 %88 None - %89 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 %uint_0 - %90 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 - %91 = OpAccessChain %_ptr_Uniform_float %90 %uint_0 - %93 = OpLoad %float %91 None - %94 = OpAccessChain %_ptr_Workgroup_float %89 %uint_0 - OpStore %94 %93 None + %31 = OpAccessChain %_ptr_Uniform__arr_mat4x3_f32_std140_uint_4 %1 %uint_0 + %34 = OpLoad %_arr_mat4x3_f32_std140_uint_4 %31 None + %35 = OpFunctionCall %_arr_mat4x3_f32_std140_uint_4_0 %tint_convert_explicit_layout %34 + OpStore %38 %35 + OpBranch %43 + %43 = OpLabel + OpBranch %46 + %46 = OpLabel + %48 = OpPhi %uint %uint_0 %43 %49 %45 + OpLoopMerge %47 %45 None + OpBranch %44 + %44 = OpLabel + %83 = OpUGreaterThanEqual %bool %48 %uint_4 + OpSelectionMerge %84 None + OpBranchConditional %83 %85 %84 + %85 = OpLabel + OpBranch %47 + %84 = OpLabel + %86 = OpAccessChain %_ptr_Function_mat4v3float %40 %48 + %88 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %38 %48 + %90 = OpLoad %mat4x3_f32_std140 %88 None + %91 = OpCompositeExtract %v3float %90 0 + %92 = OpCompositeExtract %v3float %90 1 + %93 = OpCompositeExtract %v3float %90 2 + %94 = OpCompositeExtract %v3float %90 3 + %95 = OpCompositeConstruct %mat4v3float %91 %92 %93 %94 + OpStore %86 %95 None + OpBranch %45 + %45 = OpLabel + %49 = OpIAdd %uint %48 %uint_1 + OpBranch %46 + %47 = OpLabel + %50 = OpLoad %_arr_mat4v3float_uint_4 %40 None + OpStore %w %50 None + %51 = OpAccessChain %_ptr_Workgroup_mat4v3float %w %uint_1 + %54 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_0 + %56 = OpLoad %v3float %54 None + %57 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 + %58 = OpLoad %v3float %57 None + %59 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 + %60 = OpLoad %v3float %59 None + %61 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_3 + %63 = OpLoad %v3float %61 None + %64 = OpCompositeConstruct %mat4v3float %56 %58 %60 %63 + OpStore %51 %64 None + %65 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 %uint_0 + %67 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 + %68 = OpLoad %v3float %67 None + %69 = OpVectorShuffle %v3float %68 %68 2 0 1 + OpStore %65 %69 None + %70 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 %uint_0 + %71 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_1 + %72 = OpAccessChain %_ptr_Uniform_float %71 %uint_0 + %74 = OpLoad %float %72 None + %75 = OpAccessChain %_ptr_Workgroup_float %70 %uint_0 + OpStore %75 %74 None OpReturn OpFunctionEnd %f = OpFunction %void None %97 @@ -177,21 +177,21 @@ OpLoopMerge %112 %110 None OpBranch %109 %109 = OpLabel - %115 = OpUGreaterThanEqual %bool %113 %uint_4 - OpSelectionMerge %116 None - OpBranchConditional %115 %117 %116 - %117 = OpLabel + %116 = OpUGreaterThanEqual %bool %113 %uint_4 + OpSelectionMerge %117 None + OpBranchConditional %116 %118 %117 + %118 = OpLabel OpBranch %112 - %116 = OpLabel - %118 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %104 %113 - %119 = OpLoad %mat4x3_f32_std140 %118 None - %120 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %106 %113 - OpStore %120 %119 None + %117 = OpLabel + %119 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %104 %113 + %120 = OpLoad %mat4x3_f32_std140 %119 None + %121 = OpAccessChain %_ptr_Function_mat4x3_f32_std140 %106 %113 + OpStore %121 %120 None OpBranch %110 %110 = OpLabel %114 = OpIAdd %uint %113 %uint_1 OpBranch %111 %112 = OpLabel - %121 = OpLoad %_arr_mat4x3_f32_std140_uint_4_0 %106 None - OpReturnValue %121 + %115 = OpLoad %_arr_mat4x3_f32_std140_uint_4_0 %106 None + OpReturnValue %115 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.spvasm index a81adc9..0eec30d 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -77,9 +77,9 @@ %_arr_mat4v4half_uint_4 = OpTypeArray %mat4v4half %uint_4 %_ptr_Function__arr_mat4v4half_uint_4 = OpTypePointer Function %_arr_mat4v4half_uint_4 %66 = OpConstantNull %_arr_mat4v4half_uint_4 +%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half %bool = OpTypeBool %_ptr_Function_mat4x4_f16_std140 = OpTypePointer Function %mat4x4_f16_std140 -%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half %98 = OpTypeFunction %_arr_mat4x4_f16_std140_uint_4_0 %_arr_mat4x4_f16_std140_uint_4 %_ptr_Function__arr_mat4x4_f16_std140_uint_4 = OpTypePointer Function %_arr_mat4x4_f16_std140_uint_4 %103 = OpConstantNull %_arr_mat4x4_f16_std140_uint_4_0 @@ -126,36 +126,36 @@ OpLoopMerge %71 %69 None OpBranch %68 %68 = OpLabel - %74 = OpUGreaterThanEqual %bool %72 %uint_4 - OpSelectionMerge %76 None - OpBranchConditional %74 %77 %76 - %77 = OpLabel + %84 = OpUGreaterThanEqual %bool %72 %uint_4 + OpSelectionMerge %86 None + OpBranchConditional %84 %87 %86 + %87 = OpLabel OpBranch %71 - %76 = OpLabel - %78 = OpAccessChain %_ptr_Function_mat4v4half %63 %72 - %79 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %61 %72 - %81 = OpLoad %mat4x4_f16_std140 %79 None - %82 = OpCompositeExtract %v4half %81 0 - %83 = OpCompositeExtract %v4half %81 1 - %84 = OpCompositeExtract %v4half %81 2 - %85 = OpCompositeExtract %v4half %81 3 - %86 = OpCompositeConstruct %mat4v4half %82 %83 %84 %85 - OpStore %78 %86 None + %86 = OpLabel + %88 = OpAccessChain %_ptr_Function_mat4v4half %63 %72 + %89 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %61 %72 + %91 = OpLoad %mat4x4_f16_std140 %89 None + %92 = OpCompositeExtract %v4half %91 0 + %93 = OpCompositeExtract %v4half %91 1 + %94 = OpCompositeExtract %v4half %91 2 + %95 = OpCompositeExtract %v4half %91 3 + %96 = OpCompositeConstruct %mat4v4half %92 %93 %94 %95 + OpStore %88 %96 None OpBranch %69 %69 = OpLabel %73 = OpIAdd %uint %72 %uint_1 OpBranch %70 %71 = OpLabel %l_a = OpLoad %_arr_mat4v4half_uint_4 %63 None - %88 = OpCompositeExtract %half %l_a_i_i 0 - %89 = OpCompositeExtract %half %l_a 0 0 0 - %90 = OpFAdd %half %88 %89 - %91 = OpCompositeExtract %half %l_a_i 0 0 - %92 = OpFAdd %half %90 %91 - %93 = OpCompositeExtract %half %l_a_i_i 0 - %94 = OpFAdd %half %92 %93 - %95 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 - OpStore %95 %94 None + %75 = OpCompositeExtract %half %l_a_i_i 0 + %76 = OpCompositeExtract %half %l_a 0 0 0 + %77 = OpFAdd %half %75 %76 + %78 = OpCompositeExtract %half %l_a_i 0 0 + %79 = OpFAdd %half %77 %78 + %80 = OpCompositeExtract %half %l_a_i_i 0 + %81 = OpFAdd %half %79 %80 + %82 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 + OpStore %82 %81 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat4x4_f16_std140_uint_4_0 None %98 @@ -172,21 +172,21 @@ OpLoopMerge %108 %106 None OpBranch %105 %105 = OpLabel - %111 = OpUGreaterThanEqual %bool %109 %uint_4 - OpSelectionMerge %112 None - OpBranchConditional %111 %113 %112 - %113 = OpLabel + %112 = OpUGreaterThanEqual %bool %109 %uint_4 + OpSelectionMerge %113 None + OpBranchConditional %112 %114 %113 + %114 = OpLabel OpBranch %108 - %112 = OpLabel - %114 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %100 %109 - %115 = OpLoad %mat4x4_f16_std140 %114 None - %116 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %102 %109 - OpStore %116 %115 None + %113 = OpLabel + %115 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %100 %109 + %116 = OpLoad %mat4x4_f16_std140 %115 None + %117 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %102 %109 + OpStore %117 %116 None OpBranch %106 %106 = OpLabel %110 = OpIAdd %uint %109 %uint_1 OpBranch %107 %108 = OpLabel - %117 = OpLoad %_arr_mat4x4_f16_std140_uint_4_0 %102 None - OpReturnValue %117 + %111 = OpLoad %_arr_mat4x4_f16_std140_uint_4_0 %102 None + OpReturnValue %111 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.spvasm index 41e9364..9a68921 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.spvasm
@@ -66,10 +66,10 @@ %_arr_mat4v4half_uint_4 = OpTypeArray %mat4v4half %uint_4 %_ptr_Function__arr_mat4v4half_uint_4 = OpTypePointer Function %_arr_mat4v4half_uint_4 %44 = OpConstantNull %_arr_mat4v4half_uint_4 +%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half %bool = OpTypeBool %_ptr_Function_mat4v4half = OpTypePointer Function %mat4v4half %_ptr_Function_mat4x4_f16_std140 = OpTypePointer Function %mat4x4_f16_std140 -%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half %77 = OpTypeFunction %_arr_mat4x4_f16_std140_uint_4_0 %_arr_mat4x4_f16_std140_uint_4 %_ptr_Function__arr_mat4x4_f16_std140_uint_4 = OpTypePointer Function %_arr_mat4x4_f16_std140_uint_4 %82 = OpConstantNull %_arr_mat4x4_f16_std140_uint_4_0 @@ -99,36 +99,36 @@ OpLoopMerge %49 %47 None OpBranch %46 %46 = OpLabel - %52 = OpUGreaterThanEqual %bool %50 %uint_4 - OpSelectionMerge %54 None - OpBranchConditional %52 %55 %54 - %55 = OpLabel + %62 = OpUGreaterThanEqual %bool %50 %uint_4 + OpSelectionMerge %64 None + OpBranchConditional %62 %65 %64 + %65 = OpLabel OpBranch %49 - %54 = OpLabel - %56 = OpAccessChain %_ptr_Function_mat4v4half %41 %50 - %58 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %39 %50 - %60 = OpLoad %mat4x4_f16_std140 %58 None - %61 = OpCompositeExtract %v4half %60 0 - %62 = OpCompositeExtract %v4half %60 1 - %63 = OpCompositeExtract %v4half %60 2 - %64 = OpCompositeExtract %v4half %60 3 - %65 = OpCompositeConstruct %mat4v4half %61 %62 %63 %64 - OpStore %56 %65 None + %64 = OpLabel + %66 = OpAccessChain %_ptr_Function_mat4v4half %41 %50 + %68 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %39 %50 + %70 = OpLoad %mat4x4_f16_std140 %68 None + %71 = OpCompositeExtract %v4half %70 0 + %72 = OpCompositeExtract %v4half %70 1 + %73 = OpCompositeExtract %v4half %70 2 + %74 = OpCompositeExtract %v4half %70 3 + %75 = OpCompositeConstruct %mat4v4half %71 %72 %73 %74 + OpStore %66 %75 None OpBranch %47 %47 = OpLabel %51 = OpIAdd %uint %50 %uint_1 OpBranch %48 %49 = OpLabel %l_a = OpLoad %_arr_mat4v4half_uint_4 %41 None - %67 = OpCompositeExtract %half %l_a_i_i 0 - %68 = OpCompositeExtract %half %l_a 0 0 0 - %69 = OpFAdd %half %67 %68 - %70 = OpCompositeExtract %half %l_a_i 0 0 - %71 = OpFAdd %half %69 %70 - %72 = OpCompositeExtract %half %l_a_i_i 0 - %73 = OpFAdd %half %71 %72 - %74 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 - OpStore %74 %73 None + %53 = OpCompositeExtract %half %l_a_i_i 0 + %54 = OpCompositeExtract %half %l_a 0 0 0 + %55 = OpFAdd %half %53 %54 + %56 = OpCompositeExtract %half %l_a_i 0 0 + %57 = OpFAdd %half %55 %56 + %58 = OpCompositeExtract %half %l_a_i_i 0 + %59 = OpFAdd %half %57 %58 + %60 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 + OpStore %60 %59 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat4x4_f16_std140_uint_4_0 None %77 @@ -145,21 +145,21 @@ OpLoopMerge %87 %85 None OpBranch %84 %84 = OpLabel - %90 = OpUGreaterThanEqual %bool %88 %uint_4 - OpSelectionMerge %91 None - OpBranchConditional %90 %92 %91 - %92 = OpLabel + %91 = OpUGreaterThanEqual %bool %88 %uint_4 + OpSelectionMerge %92 None + OpBranchConditional %91 %93 %92 + %93 = OpLabel OpBranch %87 - %91 = OpLabel - %93 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %79 %88 - %94 = OpLoad %mat4x4_f16_std140 %93 None - %95 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %81 %88 - OpStore %95 %94 None + %92 = OpLabel + %94 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %79 %88 + %95 = OpLoad %mat4x4_f16_std140 %94 None + %96 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %81 %88 + OpStore %96 %95 None OpBranch %85 %85 = OpLabel %89 = OpIAdd %uint %88 %uint_1 OpBranch %86 %87 = OpLabel - %96 = OpLoad %_arr_mat4x4_f16_std140_uint_4_0 %81 None - OpReturnValue %96 + %90 = OpLoad %_arr_mat4x4_f16_std140_uint_4_0 %81 None + OpReturnValue %90 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_fn.wgsl.expected.spvasm index 005d978..15f5620 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_fn.wgsl.expected.spvasm
@@ -71,14 +71,14 @@ %_ptr_Function__arr_mat4x4_f16_std140_uint_4_0 = OpTypePointer Function %_arr_mat4x4_f16_std140_uint_4_0 %_ptr_Function__arr_mat4v4half_uint_4 = OpTypePointer Function %_arr_mat4v4half_uint_4 %49 = OpConstantNull %_arr_mat4v4half_uint_4 - %bool = OpTypeBool -%_ptr_Function_mat4v4half = OpTypePointer Function %mat4v4half -%_ptr_Function_mat4x4_f16_std140 = OpTypePointer Function %mat4x4_f16_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v4half = OpTypePointer Uniform %v4half + %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_3 = OpConstant %uint 3 %_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half + %bool = OpTypeBool +%_ptr_Function_mat4v4half = OpTypePointer Function %mat4v4half +%_ptr_Function_mat4x4_f16_std140 = OpTypePointer Function %mat4x4_f16_std140 %102 = OpTypeFunction %_arr_mat4x4_f16_std140_uint_4_0 %_arr_mat4x4_f16_std140_uint_4 %_ptr_Function__arr_mat4x4_f16_std140_uint_4 = OpTypePointer Function %_arr_mat4x4_f16_std140_uint_4 %107 = OpConstantNull %_arr_mat4x4_f16_std140_uint_4_0 @@ -121,52 +121,52 @@ OpLoopMerge %54 %52 None OpBranch %51 %51 = OpLabel - %57 = OpUGreaterThanEqual %bool %55 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel + %87 = OpUGreaterThanEqual %bool %55 %uint_4 + OpSelectionMerge %89 None + OpBranchConditional %87 %90 %89 + %90 = OpLabel OpBranch %54 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_mat4v4half %47 %55 - %63 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %45 %55 - %65 = OpLoad %mat4x4_f16_std140 %63 None - %66 = OpCompositeExtract %v4half %65 0 - %67 = OpCompositeExtract %v4half %65 1 - %68 = OpCompositeExtract %v4half %65 2 - %69 = OpCompositeExtract %v4half %65 3 - %70 = OpCompositeConstruct %mat4v4half %66 %67 %68 %69 - OpStore %61 %70 None + %89 = OpLabel + %91 = OpAccessChain %_ptr_Function_mat4v4half %47 %55 + %93 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %45 %55 + %95 = OpLoad %mat4x4_f16_std140 %93 None + %96 = OpCompositeExtract %v4half %95 0 + %97 = OpCompositeExtract %v4half %95 1 + %98 = OpCompositeExtract %v4half %95 2 + %99 = OpCompositeExtract %v4half %95 3 + %100 = OpCompositeConstruct %mat4v4half %96 %97 %98 %99 + OpStore %91 %100 None OpBranch %52 %52 = OpLabel %56 = OpIAdd %uint %55 %uint_1 OpBranch %53 %54 = OpLabel - %72 = OpLoad %_arr_mat4v4half_uint_4 %47 None - %73 = OpFunctionCall %half %a %72 + %57 = OpLoad %_arr_mat4v4half_uint_4 %47 None + %58 = OpFunctionCall %half %a %57 + %59 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_1 %uint_0 + %62 = OpLoad %v4half %59 None + %63 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_1 %uint_1 + %64 = OpLoad %v4half %63 None + %65 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_1 %uint_2 + %67 = OpLoad %v4half %65 None + %68 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_1 %uint_3 + %70 = OpLoad %v4half %68 None + %71 = OpCompositeConstruct %mat4v4half %62 %64 %67 %70 + %72 = OpFunctionCall %half %b %71 + %73 = OpFAdd %half %58 %72 %74 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_1 %uint_0 - %76 = OpLoad %v4half %74 None - %77 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_1 %uint_1 - %78 = OpLoad %v4half %77 None - %79 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_1 %uint_2 - %81 = OpLoad %v4half %79 None - %82 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_1 %uint_3 - %84 = OpLoad %v4half %82 None - %85 = OpCompositeConstruct %mat4v4half %76 %78 %81 %84 - %86 = OpFunctionCall %half %b %85 - %87 = OpFAdd %half %73 %86 - %88 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_1 %uint_0 - %89 = OpLoad %v4half %88 None - %90 = OpVectorShuffle %v4half %89 %89 1 3 0 2 - %91 = OpFunctionCall %half %c %90 - %92 = OpFAdd %half %87 %91 - %93 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_1 %uint_0 - %94 = OpLoad %v4half %93 None - %95 = OpVectorShuffle %v4half %94 %94 1 3 0 2 - %96 = OpCompositeExtract %half %95 0 - %97 = OpFunctionCall %half %d %96 - %98 = OpFAdd %half %92 %97 - %99 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 - OpStore %99 %98 None + %75 = OpLoad %v4half %74 None + %76 = OpVectorShuffle %v4half %75 %75 1 3 0 2 + %77 = OpFunctionCall %half %c %76 + %78 = OpFAdd %half %73 %77 + %79 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_1 %uint_0 + %80 = OpLoad %v4half %79 None + %81 = OpVectorShuffle %v4half %80 %80 1 3 0 2 + %82 = OpCompositeExtract %half %81 0 + %83 = OpFunctionCall %half %d %82 + %84 = OpFAdd %half %78 %83 + %85 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 + OpStore %85 %84 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat4x4_f16_std140_uint_4_0 None %102 @@ -183,21 +183,21 @@ OpLoopMerge %112 %110 None OpBranch %109 %109 = OpLabel - %115 = OpUGreaterThanEqual %bool %113 %uint_4 - OpSelectionMerge %116 None - OpBranchConditional %115 %117 %116 - %117 = OpLabel + %116 = OpUGreaterThanEqual %bool %113 %uint_4 + OpSelectionMerge %117 None + OpBranchConditional %116 %118 %117 + %118 = OpLabel OpBranch %112 - %116 = OpLabel - %118 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %104 %113 - %119 = OpLoad %mat4x4_f16_std140 %118 None - %120 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %106 %113 - OpStore %120 %119 None + %117 = OpLabel + %119 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %104 %113 + %120 = OpLoad %mat4x4_f16_std140 %119 None + %121 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %106 %113 + OpStore %121 %120 None OpBranch %110 %110 = OpLabel %114 = OpIAdd %uint %113 %uint_1 OpBranch %111 %112 = OpLabel - %121 = OpLoad %_arr_mat4x4_f16_std140_uint_4_0 %106 None - OpReturnValue %121 + %115 = OpLoad %_arr_mat4x4_f16_std140_uint_4_0 %106 None + OpReturnValue %115 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_private.wgsl.expected.spvasm index 16b3ff48..2ce6354 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_private.wgsl.expected.spvasm
@@ -62,11 +62,8 @@ %_arr_mat4x4_f16_std140_uint_4_0 = OpTypeArray %mat4x4_f16_std140 %uint_4 %_ptr_Function__arr_mat4x4_f16_std140_uint_4_0 = OpTypePointer Function %_arr_mat4x4_f16_std140_uint_4_0 %_ptr_Function__arr_mat4v4half_uint_4 = OpTypePointer Function %_arr_mat4v4half_uint_4 - %bool = OpTypeBool -%_ptr_Function_mat4v4half = OpTypePointer Function %mat4v4half -%_ptr_Function_mat4x4_f16_std140 = OpTypePointer Function %mat4x4_f16_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Private_mat4v4half = OpTypePointer Private %mat4v4half + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v4half = OpTypePointer Uniform %v4half %uint_2 = OpConstant %uint 2 %uint_3 = OpConstant %uint 3 @@ -74,6 +71,9 @@ %_ptr_Uniform_half = OpTypePointer Uniform %half %_ptr_Private_half = OpTypePointer Private %half %_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half + %bool = OpTypeBool +%_ptr_Function_mat4v4half = OpTypePointer Function %mat4v4half +%_ptr_Function_mat4x4_f16_std140 = OpTypePointer Function %mat4x4_f16_std140 %88 = OpTypeFunction %_arr_mat4x4_f16_std140_uint_4_0 %_arr_mat4x4_f16_std140_uint_4 %_ptr_Function__arr_mat4x4_f16_std140_uint_4 = OpTypePointer Function %_arr_mat4x4_f16_std140_uint_4 %93 = OpConstantNull %_arr_mat4x4_f16_std140_uint_4_0 @@ -93,55 +93,55 @@ OpLoopMerge %37 %35 None OpBranch %34 %34 = OpLabel - %40 = OpUGreaterThanEqual %bool %38 %uint_4 - OpSelectionMerge %42 None - OpBranchConditional %40 %43 %42 - %43 = OpLabel + %73 = OpUGreaterThanEqual %bool %38 %uint_4 + OpSelectionMerge %75 None + OpBranchConditional %73 %76 %75 + %76 = OpLabel OpBranch %37 - %42 = OpLabel - %44 = OpAccessChain %_ptr_Function_mat4v4half %31 %38 - %46 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %29 %38 - %48 = OpLoad %mat4x4_f16_std140 %46 None - %49 = OpCompositeExtract %v4half %48 0 - %50 = OpCompositeExtract %v4half %48 1 - %51 = OpCompositeExtract %v4half %48 2 - %52 = OpCompositeExtract %v4half %48 3 - %53 = OpCompositeConstruct %mat4v4half %49 %50 %51 %52 - OpStore %44 %53 None + %75 = OpLabel + %77 = OpAccessChain %_ptr_Function_mat4v4half %31 %38 + %79 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %29 %38 + %81 = OpLoad %mat4x4_f16_std140 %79 None + %82 = OpCompositeExtract %v4half %81 0 + %83 = OpCompositeExtract %v4half %81 1 + %84 = OpCompositeExtract %v4half %81 2 + %85 = OpCompositeExtract %v4half %81 3 + %86 = OpCompositeConstruct %mat4v4half %82 %83 %84 %85 + OpStore %77 %86 None OpBranch %35 %35 = OpLabel %39 = OpIAdd %uint %38 %uint_1 OpBranch %36 %37 = OpLabel - %55 = OpLoad %_arr_mat4v4half_uint_4 %31 None - OpStore %p %55 None - %56 = OpAccessChain %_ptr_Private_mat4v4half %p %uint_1 - %58 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_0 - %61 = OpLoad %v4half %58 None - %62 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 - %63 = OpLoad %v4half %62 None - %64 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 - %65 = OpLoad %v4half %64 None - %66 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_3 - %68 = OpLoad %v4half %66 None - %69 = OpCompositeConstruct %mat4v4half %61 %63 %65 %68 - OpStore %56 %69 None - %70 = OpAccessChain %_ptr_Private_v4half %p %uint_1 %uint_0 - %72 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_1 - %73 = OpLoad %v4half %72 None - %74 = OpVectorShuffle %v4half %73 %73 1 3 0 2 - OpStore %70 %74 None - %75 = OpAccessChain %_ptr_Private_v4half %p %uint_1 %uint_0 - %76 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_1 - %77 = OpAccessChain %_ptr_Uniform_half %76 %uint_0 - %79 = OpLoad %half %77 None - %80 = OpAccessChain %_ptr_Private_half %75 %uint_0 - OpStore %80 %79 None - %82 = OpAccessChain %_ptr_Private_v4half %p %uint_1 %uint_0 - %83 = OpAccessChain %_ptr_Private_half %82 %uint_0 - %84 = OpLoad %half %83 None - %85 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 - OpStore %85 %84 None + %40 = OpLoad %_arr_mat4v4half_uint_4 %31 None + OpStore %p %40 None + %41 = OpAccessChain %_ptr_Private_mat4v4half %p %uint_1 + %44 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_0 + %47 = OpLoad %v4half %44 None + %48 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 + %49 = OpLoad %v4half %48 None + %50 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 + %51 = OpLoad %v4half %50 None + %52 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_3 + %54 = OpLoad %v4half %52 None + %55 = OpCompositeConstruct %mat4v4half %47 %49 %51 %54 + OpStore %41 %55 None + %56 = OpAccessChain %_ptr_Private_v4half %p %uint_1 %uint_0 + %58 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_1 + %59 = OpLoad %v4half %58 None + %60 = OpVectorShuffle %v4half %59 %59 1 3 0 2 + OpStore %56 %60 None + %61 = OpAccessChain %_ptr_Private_v4half %p %uint_1 %uint_0 + %62 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_1 + %63 = OpAccessChain %_ptr_Uniform_half %62 %uint_0 + %65 = OpLoad %half %63 None + %66 = OpAccessChain %_ptr_Private_half %61 %uint_0 + OpStore %66 %65 None + %68 = OpAccessChain %_ptr_Private_v4half %p %uint_1 %uint_0 + %69 = OpAccessChain %_ptr_Private_half %68 %uint_0 + %70 = OpLoad %half %69 None + %71 = OpAccessChain %_ptr_StorageBuffer_half %10 %uint_0 + OpStore %71 %70 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat4x4_f16_std140_uint_4_0 None %88 @@ -158,21 +158,21 @@ OpLoopMerge %98 %96 None OpBranch %95 %95 = OpLabel - %101 = OpUGreaterThanEqual %bool %99 %uint_4 - OpSelectionMerge %102 None - OpBranchConditional %101 %103 %102 - %103 = OpLabel + %102 = OpUGreaterThanEqual %bool %99 %uint_4 + OpSelectionMerge %103 None + OpBranchConditional %102 %104 %103 + %104 = OpLabel OpBranch %98 - %102 = OpLabel - %104 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %90 %99 - %105 = OpLoad %mat4x4_f16_std140 %104 None - %106 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %92 %99 - OpStore %106 %105 None + %103 = OpLabel + %105 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %90 %99 + %106 = OpLoad %mat4x4_f16_std140 %105 None + %107 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %92 %99 + OpStore %107 %106 None OpBranch %96 %96 = OpLabel %100 = OpIAdd %uint %99 %uint_1 OpBranch %97 %98 = OpLabel - %107 = OpLoad %_arr_mat4x4_f16_std140_uint_4_0 %92 None - OpReturnValue %107 + %101 = OpLoad %_arr_mat4x4_f16_std140_uint_4_0 %92 None + OpReturnValue %101 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_storage.wgsl.expected.spvasm index 1dc249d..8c9c387 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_storage.wgsl.expected.spvasm
@@ -65,18 +65,18 @@ %_arr_mat4v4half_uint_4_0 = OpTypeArray %mat4v4half %uint_4 %_ptr_Function__arr_mat4v4half_uint_4_0 = OpTypePointer Function %_arr_mat4v4half_uint_4_0 %31 = OpConstantNull %_arr_mat4v4half_uint_4_0 - %bool = OpTypeBool -%_ptr_Function_mat4v4half = OpTypePointer Function %mat4v4half -%_ptr_Function_mat4x4_f16_std140 = OpTypePointer Function %mat4x4_f16_std140 - %uint_1 = OpConstant %uint 1 %_ptr_StorageBuffer__arr_mat4v4half_uint_4 = OpTypePointer StorageBuffer %_arr_mat4v4half_uint_4 %_ptr_StorageBuffer_mat4v4half = OpTypePointer StorageBuffer %mat4v4half + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v4half = OpTypePointer Uniform %v4half %uint_2 = OpConstant %uint 2 %uint_3 = OpConstant %uint 3 %_ptr_StorageBuffer_v4half = OpTypePointer StorageBuffer %v4half %_ptr_Uniform_half = OpTypePointer Uniform %half %_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half + %bool = OpTypeBool +%_ptr_Function_mat4v4half = OpTypePointer Function %mat4v4half +%_ptr_Function_mat4x4_f16_std140 = OpTypePointer Function %mat4x4_f16_std140 %86 = OpTypeFunction %_arr_mat4v4half_uint_4 %_arr_mat4v4half_uint_4_0 %_ptr_Function__arr_mat4v4half_uint_4 = OpTypePointer Function %_arr_mat4v4half_uint_4 %91 = OpConstantNull %_arr_mat4v4half_uint_4 @@ -99,52 +99,52 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_4 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %71 = OpUGreaterThanEqual %bool %37 %uint_4 + OpSelectionMerge %73 None + OpBranchConditional %71 %74 %73 + %74 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Function_mat4v4half %28 %37 - %45 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %26 %37 - %47 = OpLoad %mat4x4_f16_std140 %45 None - %48 = OpCompositeExtract %v4half %47 0 - %49 = OpCompositeExtract %v4half %47 1 - %50 = OpCompositeExtract %v4half %47 2 - %51 = OpCompositeExtract %v4half %47 3 - %52 = OpCompositeConstruct %mat4v4half %48 %49 %50 %51 - OpStore %43 %52 None + %73 = OpLabel + %75 = OpAccessChain %_ptr_Function_mat4v4half %28 %37 + %77 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %26 %37 + %79 = OpLoad %mat4x4_f16_std140 %77 None + %80 = OpCompositeExtract %v4half %79 0 + %81 = OpCompositeExtract %v4half %79 1 + %82 = OpCompositeExtract %v4half %79 2 + %83 = OpCompositeExtract %v4half %79 3 + %84 = OpCompositeConstruct %mat4v4half %80 %81 %82 %83 + OpStore %75 %84 None OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel - %54 = OpLoad %_arr_mat4v4half_uint_4_0 %28 None - %55 = OpAccessChain %_ptr_StorageBuffer__arr_mat4v4half_uint_4 %10 %uint_0 - %57 = OpFunctionCall %_arr_mat4v4half_uint_4 %tint_convert_explicit_layout %54 - OpStore %55 %57 None - %59 = OpAccessChain %_ptr_StorageBuffer_mat4v4half %10 %uint_0 %uint_1 - %61 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_0 - %64 = OpLoad %v4half %61 None - %65 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 - %66 = OpLoad %v4half %65 None - %67 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 - %68 = OpLoad %v4half %67 None - %69 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_3 - %71 = OpLoad %v4half %69 None - %72 = OpCompositeConstruct %mat4v4half %64 %66 %68 %71 - OpStore %59 %72 None - %73 = OpAccessChain %_ptr_StorageBuffer_v4half %10 %uint_0 %uint_1 %uint_0 - %75 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_1 - %76 = OpLoad %v4half %75 None - %77 = OpVectorShuffle %v4half %76 %76 1 3 0 2 - OpStore %73 %77 None - %78 = OpAccessChain %_ptr_StorageBuffer_v4half %10 %uint_0 %uint_1 %uint_0 - %79 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_1 - %80 = OpAccessChain %_ptr_Uniform_half %79 %uint_0 - %82 = OpLoad %half %80 None - %83 = OpAccessChain %_ptr_StorageBuffer_half %78 %uint_0 - OpStore %83 %82 None + %39 = OpLoad %_arr_mat4v4half_uint_4_0 %28 None + %40 = OpAccessChain %_ptr_StorageBuffer__arr_mat4v4half_uint_4 %10 %uint_0 + %42 = OpFunctionCall %_arr_mat4v4half_uint_4 %tint_convert_explicit_layout %39 + OpStore %40 %42 None + %44 = OpAccessChain %_ptr_StorageBuffer_mat4v4half %10 %uint_0 %uint_1 + %47 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_0 + %50 = OpLoad %v4half %47 None + %51 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 + %52 = OpLoad %v4half %51 None + %53 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 + %54 = OpLoad %v4half %53 None + %55 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_3 + %57 = OpLoad %v4half %55 None + %58 = OpCompositeConstruct %mat4v4half %50 %52 %54 %57 + OpStore %44 %58 None + %59 = OpAccessChain %_ptr_StorageBuffer_v4half %10 %uint_0 %uint_1 %uint_0 + %61 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_1 + %62 = OpLoad %v4half %61 None + %63 = OpVectorShuffle %v4half %62 %62 1 3 0 2 + OpStore %59 %63 None + %64 = OpAccessChain %_ptr_StorageBuffer_v4half %10 %uint_0 %uint_1 %uint_0 + %65 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_1 + %66 = OpAccessChain %_ptr_Uniform_half %65 %uint_0 + %68 = OpLoad %half %66 None + %69 = OpAccessChain %_ptr_StorageBuffer_half %64 %uint_0 + OpStore %69 %68 None OpReturn OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_mat4v4half_uint_4 None %86 @@ -161,23 +161,23 @@ OpLoopMerge %96 %94 None OpBranch %93 %93 = OpLabel - %99 = OpUGreaterThanEqual %bool %97 %uint_4 - OpSelectionMerge %100 None - OpBranchConditional %99 %101 %100 - %101 = OpLabel + %100 = OpUGreaterThanEqual %bool %97 %uint_4 + OpSelectionMerge %101 None + OpBranchConditional %100 %102 %101 + %102 = OpLabel OpBranch %96 - %100 = OpLabel - %102 = OpAccessChain %_ptr_Function_mat4v4half %88 %97 - %103 = OpLoad %mat4v4half %102 None - %104 = OpAccessChain %_ptr_Function_mat4v4half %89 %97 - OpStore %104 %103 None + %101 = OpLabel + %103 = OpAccessChain %_ptr_Function_mat4v4half %88 %97 + %104 = OpLoad %mat4v4half %103 None + %105 = OpAccessChain %_ptr_Function_mat4v4half %89 %97 + OpStore %105 %104 None OpBranch %94 %94 = OpLabel %98 = OpIAdd %uint %97 %uint_1 OpBranch %95 %96 = OpLabel - %105 = OpLoad %_arr_mat4v4half_uint_4 %89 None - OpReturnValue %105 + %99 = OpLoad %_arr_mat4v4half_uint_4 %89 None + OpReturnValue %99 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %_arr_mat4x4_f16_std140_uint_4_0 None %107 %tint_source_0 = OpFunctionParameter %_arr_mat4x4_f16_std140_uint_4 @@ -193,21 +193,21 @@ OpLoopMerge %117 %115 None OpBranch %114 %114 = OpLabel - %120 = OpUGreaterThanEqual %bool %118 %uint_4 - OpSelectionMerge %121 None - OpBranchConditional %120 %122 %121 - %122 = OpLabel + %121 = OpUGreaterThanEqual %bool %118 %uint_4 + OpSelectionMerge %122 None + OpBranchConditional %121 %123 %122 + %123 = OpLabel OpBranch %117 - %121 = OpLabel - %123 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %109 %118 - %124 = OpLoad %mat4x4_f16_std140 %123 None - %125 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %111 %118 - OpStore %125 %124 None + %122 = OpLabel + %124 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %109 %118 + %125 = OpLoad %mat4x4_f16_std140 %124 None + %126 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %111 %118 + OpStore %126 %125 None OpBranch %115 %115 = OpLabel %119 = OpIAdd %uint %118 %uint_1 OpBranch %116 %117 = OpLabel - %126 = OpLoad %_arr_mat4x4_f16_std140_uint_4_0 %111 None - OpReturnValue %126 + %120 = OpLoad %_arr_mat4x4_f16_std140_uint_4_0 %111 None + OpReturnValue %120 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_workgroup.wgsl.expected.spvasm index b3cbe04..a635bb6 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_workgroup.wgsl.expected.spvasm
@@ -52,10 +52,6 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %19 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_mat4v4half = OpTypePointer Workgroup %mat4v4half - %34 = OpConstantNull %mat4v4half - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_mat4x4_f16_std140_uint_4 = OpTypePointer Uniform %_arr_mat4x4_f16_std140_uint_4 @@ -63,14 +59,18 @@ %_arr_mat4x4_f16_std140_uint_4_0 = OpTypeArray %mat4x4_f16_std140 %uint_4 %_ptr_Function__arr_mat4x4_f16_std140_uint_4_0 = OpTypePointer Function %_arr_mat4x4_f16_std140_uint_4_0 %_ptr_Function__arr_mat4v4half_uint_4 = OpTypePointer Function %_arr_mat4v4half_uint_4 - %50 = OpConstantNull %_arr_mat4v4half_uint_4 -%_ptr_Function_mat4v4half = OpTypePointer Function %mat4v4half -%_ptr_Function_mat4x4_f16_std140 = OpTypePointer Function %mat4x4_f16_std140 + %42 = OpConstantNull %_arr_mat4v4half_uint_4 +%_ptr_Workgroup_mat4v4half = OpTypePointer Workgroup %mat4v4half + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_v4half = OpTypePointer Uniform %v4half %uint_3 = OpConstant %uint 3 %_ptr_Workgroup_v4half = OpTypePointer Workgroup %v4half %_ptr_Uniform_half = OpTypePointer Uniform %half %_ptr_Workgroup_half = OpTypePointer Workgroup %half + %bool = OpTypeBool + %82 = OpConstantNull %mat4v4half +%_ptr_Function_mat4v4half = OpTypePointer Function %mat4v4half +%_ptr_Function_mat4x4_f16_std140 = OpTypePointer Function %mat4x4_f16_std140 %97 = OpTypeFunction %void %102 = OpTypeFunction %_arr_mat4x4_f16_std140_uint_4_0 %_arr_mat4x4_f16_std140_uint_4 %_ptr_Function__arr_mat4x4_f16_std140_uint_4 = OpTypePointer Function %_arr_mat4x4_f16_std140_uint_4 @@ -78,8 +78,8 @@ %f_inner = OpFunction %void None %19 %tint_local_index = OpFunctionParameter %uint %20 = OpLabel - %46 = OpVariable %_ptr_Function__arr_mat4x4_f16_std140_uint_4_0 Function - %48 = OpVariable %_ptr_Function__arr_mat4v4half_uint_4 Function %50 + %38 = OpVariable %_ptr_Function__arr_mat4x4_f16_std140_uint_4_0 Function + %40 = OpVariable %_ptr_Function__arr_mat4v4half_uint_4 Function %42 OpBranch %21 %21 = OpLabel OpBranch %24 @@ -88,76 +88,76 @@ OpLoopMerge %25 %23 None OpBranch %22 %22 = OpLabel - %28 = OpUGreaterThanEqual %bool %26 %uint_4 - OpSelectionMerge %30 None - OpBranchConditional %28 %31 %30 - %31 = OpLabel + %77 = OpUGreaterThanEqual %bool %26 %uint_4 + OpSelectionMerge %79 None + OpBranchConditional %77 %80 %79 + %80 = OpLabel OpBranch %25 - %30 = OpLabel - %32 = OpAccessChain %_ptr_Workgroup_mat4v4half %w %26 - OpStore %32 %34 None + %79 = OpLabel + %81 = OpAccessChain %_ptr_Workgroup_mat4v4half %w %26 + OpStore %81 %82 None OpBranch %23 %23 = OpLabel %27 = OpIAdd %uint %26 %uint_1 OpBranch %24 %25 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %39 = OpAccessChain %_ptr_Uniform__arr_mat4x4_f16_std140_uint_4 %1 %uint_0 - %42 = OpLoad %_arr_mat4x4_f16_std140_uint_4 %39 None - %43 = OpFunctionCall %_arr_mat4x4_f16_std140_uint_4_0 %tint_convert_explicit_layout %42 - OpStore %46 %43 - OpBranch %51 - %51 = OpLabel - OpBranch %54 - %54 = OpLabel - %56 = OpPhi %uint %uint_0 %51 %57 %53 - OpLoopMerge %55 %53 None - OpBranch %52 - %52 = OpLabel - %58 = OpUGreaterThanEqual %bool %56 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %58 %60 %59 - %60 = OpLabel - OpBranch %55 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_mat4v4half %48 %56 - %63 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %46 %56 - %65 = OpLoad %mat4x4_f16_std140 %63 None - %66 = OpCompositeExtract %v4half %65 0 - %67 = OpCompositeExtract %v4half %65 1 - %68 = OpCompositeExtract %v4half %65 2 - %69 = OpCompositeExtract %v4half %65 3 - %70 = OpCompositeConstruct %mat4v4half %66 %67 %68 %69 - OpStore %61 %70 None - OpBranch %53 - %53 = OpLabel - %57 = OpIAdd %uint %56 %uint_1 - OpBranch %54 - %55 = OpLabel - %71 = OpLoad %_arr_mat4v4half_uint_4 %48 None - OpStore %w %71 None - %72 = OpAccessChain %_ptr_Workgroup_mat4v4half %w %uint_1 - %73 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_0 - %75 = OpLoad %v4half %73 None - %76 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 - %77 = OpLoad %v4half %76 None - %78 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 - %79 = OpLoad %v4half %78 None - %80 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_3 - %82 = OpLoad %v4half %80 None - %83 = OpCompositeConstruct %mat4v4half %75 %77 %79 %82 - OpStore %72 %83 None - %84 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_1 %uint_0 - %86 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_1 - %87 = OpLoad %v4half %86 None - %88 = OpVectorShuffle %v4half %87 %87 1 3 0 2 - OpStore %84 %88 None - %89 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_1 %uint_0 - %90 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_1 - %91 = OpAccessChain %_ptr_Uniform_half %90 %uint_0 - %93 = OpLoad %half %91 None - %94 = OpAccessChain %_ptr_Workgroup_half %89 %uint_0 - OpStore %94 %93 None + %31 = OpAccessChain %_ptr_Uniform__arr_mat4x4_f16_std140_uint_4 %1 %uint_0 + %34 = OpLoad %_arr_mat4x4_f16_std140_uint_4 %31 None + %35 = OpFunctionCall %_arr_mat4x4_f16_std140_uint_4_0 %tint_convert_explicit_layout %34 + OpStore %38 %35 + OpBranch %43 + %43 = OpLabel + OpBranch %46 + %46 = OpLabel + %48 = OpPhi %uint %uint_0 %43 %49 %45 + OpLoopMerge %47 %45 None + OpBranch %44 + %44 = OpLabel + %83 = OpUGreaterThanEqual %bool %48 %uint_4 + OpSelectionMerge %84 None + OpBranchConditional %83 %85 %84 + %85 = OpLabel + OpBranch %47 + %84 = OpLabel + %86 = OpAccessChain %_ptr_Function_mat4v4half %40 %48 + %88 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %38 %48 + %90 = OpLoad %mat4x4_f16_std140 %88 None + %91 = OpCompositeExtract %v4half %90 0 + %92 = OpCompositeExtract %v4half %90 1 + %93 = OpCompositeExtract %v4half %90 2 + %94 = OpCompositeExtract %v4half %90 3 + %95 = OpCompositeConstruct %mat4v4half %91 %92 %93 %94 + OpStore %86 %95 None + OpBranch %45 + %45 = OpLabel + %49 = OpIAdd %uint %48 %uint_1 + OpBranch %46 + %47 = OpLabel + %50 = OpLoad %_arr_mat4v4half_uint_4 %40 None + OpStore %w %50 None + %51 = OpAccessChain %_ptr_Workgroup_mat4v4half %w %uint_1 + %54 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_0 + %56 = OpLoad %v4half %54 None + %57 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 + %58 = OpLoad %v4half %57 None + %59 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 + %60 = OpLoad %v4half %59 None + %61 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_3 + %63 = OpLoad %v4half %61 None + %64 = OpCompositeConstruct %mat4v4half %56 %58 %60 %63 + OpStore %51 %64 None + %65 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_1 %uint_0 + %67 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_1 + %68 = OpLoad %v4half %67 None + %69 = OpVectorShuffle %v4half %68 %68 1 3 0 2 + OpStore %65 %69 None + %70 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_1 %uint_0 + %71 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_1 + %72 = OpAccessChain %_ptr_Uniform_half %71 %uint_0 + %74 = OpLoad %half %72 None + %75 = OpAccessChain %_ptr_Workgroup_half %70 %uint_0 + OpStore %75 %74 None OpReturn OpFunctionEnd %f = OpFunction %void None %97 @@ -180,21 +180,21 @@ OpLoopMerge %112 %110 None OpBranch %109 %109 = OpLabel - %115 = OpUGreaterThanEqual %bool %113 %uint_4 - OpSelectionMerge %116 None - OpBranchConditional %115 %117 %116 - %117 = OpLabel + %116 = OpUGreaterThanEqual %bool %113 %uint_4 + OpSelectionMerge %117 None + OpBranchConditional %116 %118 %117 + %118 = OpLabel OpBranch %112 - %116 = OpLabel - %118 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %104 %113 - %119 = OpLoad %mat4x4_f16_std140 %118 None - %120 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %106 %113 - OpStore %120 %119 None + %117 = OpLabel + %119 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %104 %113 + %120 = OpLoad %mat4x4_f16_std140 %119 None + %121 = OpAccessChain %_ptr_Function_mat4x4_f16_std140 %106 %113 + OpStore %121 %120 None OpBranch %110 %110 = OpLabel %114 = OpIAdd %uint %113 %uint_1 OpBranch %111 %112 = OpLabel - %121 = OpLoad %_arr_mat4x4_f16_std140_uint_4_0 %106 None - OpReturnValue %121 + %115 = OpLoad %_arr_mat4x4_f16_std140_uint_4_0 %106 None + OpReturnValue %115 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.spvasm index 397fd19..ce91537 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -120,21 +120,21 @@ OpLoopMerge %72 %70 None OpBranch %69 %69 = OpLabel - %75 = OpUGreaterThanEqual %bool %73 %uint_4 - OpSelectionMerge %77 None - OpBranchConditional %75 %78 %77 - %78 = OpLabel + %76 = OpUGreaterThanEqual %bool %73 %uint_4 + OpSelectionMerge %78 None + OpBranchConditional %76 %79 %78 + %79 = OpLabel OpBranch %72 - %77 = OpLabel - %79 = OpAccessChain %_ptr_Function_mat4v4float %63 %73 - %81 = OpLoad %mat4v4float %79 None - %82 = OpAccessChain %_ptr_Function_mat4v4float %65 %73 - OpStore %82 %81 None + %78 = OpLabel + %80 = OpAccessChain %_ptr_Function_mat4v4float %63 %73 + %82 = OpLoad %mat4v4float %80 None + %83 = OpAccessChain %_ptr_Function_mat4v4float %65 %73 + OpStore %83 %82 None OpBranch %70 %70 = OpLabel %74 = OpIAdd %uint %73 %uint_1 OpBranch %71 %72 = OpLabel - %84 = OpLoad %_arr_mat4v4float_uint_4_0 %65 None - OpReturnValue %84 + %75 = OpLoad %_arr_mat4v4float_uint_4_0 %65 None + OpReturnValue %75 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.spvasm index 748852b..52755aa 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.spvasm
@@ -97,21 +97,21 @@ OpLoopMerge %55 %53 None OpBranch %52 %52 = OpLabel - %58 = OpUGreaterThanEqual %bool %56 %uint_4 - OpSelectionMerge %60 None - OpBranchConditional %58 %61 %60 - %61 = OpLabel + %59 = OpUGreaterThanEqual %bool %56 %uint_4 + OpSelectionMerge %61 None + OpBranchConditional %59 %62 %61 + %62 = OpLabel OpBranch %55 - %60 = OpLabel - %62 = OpAccessChain %_ptr_Function_mat4v4float %46 %56 - %64 = OpLoad %mat4v4float %62 None - %65 = OpAccessChain %_ptr_Function_mat4v4float %48 %56 - OpStore %65 %64 None + %61 = OpLabel + %63 = OpAccessChain %_ptr_Function_mat4v4float %46 %56 + %65 = OpLoad %mat4v4float %63 None + %66 = OpAccessChain %_ptr_Function_mat4v4float %48 %56 + OpStore %66 %65 None OpBranch %53 %53 = OpLabel %57 = OpIAdd %uint %56 %uint_1 OpBranch %54 %55 = OpLabel - %66 = OpLoad %_arr_mat4v4float_uint_4_0 %48 None - OpReturnValue %66 + %58 = OpLoad %_arr_mat4v4float_uint_4_0 %48 None + OpReturnValue %58 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_fn.wgsl.expected.spvasm index 3b63319..f4261e0 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_fn.wgsl.expected.spvasm
@@ -128,21 +128,21 @@ OpLoopMerge %76 %74 None OpBranch %73 %73 = OpLabel - %79 = OpUGreaterThanEqual %bool %77 %uint_4 - OpSelectionMerge %81 None - OpBranchConditional %79 %82 %81 - %82 = OpLabel + %80 = OpUGreaterThanEqual %bool %77 %uint_4 + OpSelectionMerge %82 None + OpBranchConditional %80 %83 %82 + %83 = OpLabel OpBranch %76 - %81 = OpLabel - %83 = OpAccessChain %_ptr_Function_mat4v4float %67 %77 - %85 = OpLoad %mat4v4float %83 None - %86 = OpAccessChain %_ptr_Function_mat4v4float %69 %77 - OpStore %86 %85 None + %82 = OpLabel + %84 = OpAccessChain %_ptr_Function_mat4v4float %67 %77 + %86 = OpLoad %mat4v4float %84 None + %87 = OpAccessChain %_ptr_Function_mat4v4float %69 %77 + OpStore %87 %86 None OpBranch %74 %74 = OpLabel %78 = OpIAdd %uint %77 %uint_1 OpBranch %75 %76 = OpLabel - %87 = OpLoad %_arr_mat4v4float_uint_4_0 %69 None - OpReturnValue %87 + %79 = OpLoad %_arr_mat4v4float_uint_4_0 %69 None + OpReturnValue %79 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_private.wgsl.expected.spvasm index b3c7f13..6a5d3d7 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_private.wgsl.expected.spvasm
@@ -104,21 +104,21 @@ OpLoopMerge %63 %61 None OpBranch %60 %60 = OpLabel - %66 = OpUGreaterThanEqual %bool %64 %uint_4 - OpSelectionMerge %68 None - OpBranchConditional %66 %69 %68 - %69 = OpLabel + %67 = OpUGreaterThanEqual %bool %64 %uint_4 + OpSelectionMerge %69 None + OpBranchConditional %67 %70 %69 + %70 = OpLabel OpBranch %63 - %68 = OpLabel - %70 = OpAccessChain %_ptr_Function_mat4v4float %55 %64 - %72 = OpLoad %mat4v4float %70 None - %73 = OpAccessChain %_ptr_Function_mat4v4float %57 %64 - OpStore %73 %72 None + %69 = OpLabel + %71 = OpAccessChain %_ptr_Function_mat4v4float %55 %64 + %73 = OpLoad %mat4v4float %71 None + %74 = OpAccessChain %_ptr_Function_mat4v4float %57 %64 + OpStore %74 %73 None OpBranch %61 %61 = OpLabel %65 = OpIAdd %uint %64 %uint_1 OpBranch %62 %63 = OpLabel - %74 = OpLoad %_arr_mat4v4float_uint_4_0 %57 None - OpReturnValue %74 + %66 = OpLoad %_arr_mat4v4float_uint_4_0 %57 None + OpReturnValue %66 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_storage.wgsl.expected.spvasm index a3e6616..651912d 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_storage.wgsl.expected.spvasm
@@ -104,23 +104,23 @@ OpLoopMerge %60 %58 None OpBranch %57 %57 = OpLabel - %63 = OpUGreaterThanEqual %bool %61 %uint_4 - OpSelectionMerge %65 None - OpBranchConditional %63 %66 %65 - %66 = OpLabel + %64 = OpUGreaterThanEqual %bool %61 %uint_4 + OpSelectionMerge %66 None + OpBranchConditional %64 %67 %66 + %67 = OpLabel OpBranch %60 - %65 = OpLabel - %67 = OpAccessChain %_ptr_Function_mat4v4float %51 %61 - %69 = OpLoad %mat4v4float %67 None - %70 = OpAccessChain %_ptr_Function_mat4v4float %53 %61 - OpStore %70 %69 None + %66 = OpLabel + %68 = OpAccessChain %_ptr_Function_mat4v4float %51 %61 + %70 = OpLoad %mat4v4float %68 None + %71 = OpAccessChain %_ptr_Function_mat4v4float %53 %61 + OpStore %71 %70 None OpBranch %58 %58 = OpLabel %62 = OpIAdd %uint %61 %uint_1 OpBranch %59 %60 = OpLabel - %71 = OpLoad %_arr_mat4v4float_uint_4_0 %53 None - OpReturnValue %71 + %63 = OpLoad %_arr_mat4v4float_uint_4_0 %53 None + OpReturnValue %63 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %_arr_mat4v4float_uint_4 None %73 %tint_source_0 = OpFunctionParameter %_arr_mat4v4float_uint_4_0 @@ -136,21 +136,21 @@ OpLoopMerge %82 %80 None OpBranch %79 %79 = OpLabel - %85 = OpUGreaterThanEqual %bool %83 %uint_4 - OpSelectionMerge %86 None - OpBranchConditional %85 %87 %86 - %87 = OpLabel + %86 = OpUGreaterThanEqual %bool %83 %uint_4 + OpSelectionMerge %87 None + OpBranchConditional %86 %88 %87 + %88 = OpLabel OpBranch %82 - %86 = OpLabel - %88 = OpAccessChain %_ptr_Function_mat4v4float %75 %83 - %89 = OpLoad %mat4v4float %88 None - %90 = OpAccessChain %_ptr_Function_mat4v4float %76 %83 - OpStore %90 %89 None + %87 = OpLabel + %89 = OpAccessChain %_ptr_Function_mat4v4float %75 %83 + %90 = OpLoad %mat4v4float %89 None + %91 = OpAccessChain %_ptr_Function_mat4v4float %76 %83 + OpStore %91 %90 None OpBranch %80 %80 = OpLabel %84 = OpIAdd %uint %83 %uint_1 OpBranch %81 %82 = OpLabel - %91 = OpLoad %_arr_mat4v4float_uint_4 %76 None - OpReturnValue %91 + %85 = OpLoad %_arr_mat4v4float_uint_4 %76 None + OpReturnValue %85 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_workgroup.wgsl.expected.spvasm index 234f243..c4e28e9 100644 --- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_workgroup.wgsl.expected.spvasm
@@ -41,19 +41,19 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %18 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_mat4v4float = OpTypePointer Workgroup %mat4v4float - %33 = OpConstantNull %mat4v4float - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_mat4v4float_uint_4 = OpTypePointer Uniform %_arr_mat4v4float_uint_4 %uint_0 = OpConstant %uint 0 +%_ptr_Workgroup_mat4v4float = OpTypePointer Workgroup %mat4v4float + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float %_ptr_Workgroup_v4float = OpTypePointer Workgroup %v4float %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Workgroup_float = OpTypePointer Workgroup %float + %bool = OpTypeBool + %60 = OpConstantNull %mat4v4float %62 = OpTypeFunction %void %67 = OpTypeFunction %_arr_mat4v4float_uint_4_0 %_arr_mat4v4float_uint_4 %_ptr_Function__arr_mat4v4float_uint_4 = OpTypePointer Function %_arr_mat4v4float_uint_4 @@ -71,39 +71,39 @@ OpLoopMerge %24 %22 None OpBranch %21 %21 = OpLabel - %27 = OpUGreaterThanEqual %bool %25 %uint_4 - OpSelectionMerge %29 None - OpBranchConditional %27 %30 %29 - %30 = OpLabel + %55 = OpUGreaterThanEqual %bool %25 %uint_4 + OpSelectionMerge %57 None + OpBranchConditional %55 %58 %57 + %58 = OpLabel OpBranch %24 - %29 = OpLabel - %31 = OpAccessChain %_ptr_Workgroup_mat4v4float %w %25 - OpStore %31 %33 None + %57 = OpLabel + %59 = OpAccessChain %_ptr_Workgroup_mat4v4float %w %25 + OpStore %59 %60 None OpBranch %22 %22 = OpLabel %26 = OpIAdd %uint %25 %uint_1 OpBranch %23 %24 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %38 = OpAccessChain %_ptr_Uniform__arr_mat4v4float_uint_4 %1 %uint_0 - %41 = OpLoad %_arr_mat4v4float_uint_4 %38 None - %42 = OpFunctionCall %_arr_mat4v4float_uint_4_0 %tint_convert_explicit_layout %41 - OpStore %w %42 None - %44 = OpAccessChain %_ptr_Workgroup_mat4v4float %w %uint_1 - %45 = OpAccessChain %_ptr_Uniform_mat4v4float %1 %uint_0 %uint_2 - %47 = OpLoad %mat4v4float %45 None - OpStore %44 %47 None + %30 = OpAccessChain %_ptr_Uniform__arr_mat4v4float_uint_4 %1 %uint_0 + %33 = OpLoad %_arr_mat4v4float_uint_4 %30 None + %34 = OpFunctionCall %_arr_mat4v4float_uint_4_0 %tint_convert_explicit_layout %33 + OpStore %w %34 None + %36 = OpAccessChain %_ptr_Workgroup_mat4v4float %w %uint_1 + %39 = OpAccessChain %_ptr_Uniform_mat4v4float %1 %uint_0 %uint_2 + %41 = OpLoad %mat4v4float %39 None + OpStore %36 %41 None + %42 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 %uint_0 + %44 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 %uint_1 + %46 = OpLoad %v4float %44 None + %47 = OpVectorShuffle %v4float %46 %46 1 3 0 2 + OpStore %42 %47 None %48 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 %uint_0 - %50 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 %uint_1 - %52 = OpLoad %v4float %50 None - %53 = OpVectorShuffle %v4float %52 %52 1 3 0 2 - OpStore %48 %53 None - %54 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 %uint_0 - %55 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 %uint_1 - %56 = OpAccessChain %_ptr_Uniform_float %55 %uint_0 - %58 = OpLoad %float %56 None - %59 = OpAccessChain %_ptr_Workgroup_float %54 %uint_0 - OpStore %59 %58 None + %49 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 %uint_1 + %50 = OpAccessChain %_ptr_Uniform_float %49 %uint_0 + %52 = OpLoad %float %50 None + %53 = OpAccessChain %_ptr_Workgroup_float %48 %uint_0 + OpStore %53 %52 None OpReturn OpFunctionEnd %f = OpFunction %void None %62 @@ -126,21 +126,21 @@ OpLoopMerge %78 %76 None OpBranch %75 %75 = OpLabel - %81 = OpUGreaterThanEqual %bool %79 %uint_4 - OpSelectionMerge %82 None - OpBranchConditional %81 %83 %82 - %83 = OpLabel + %82 = OpUGreaterThanEqual %bool %79 %uint_4 + OpSelectionMerge %83 None + OpBranchConditional %82 %84 %83 + %84 = OpLabel OpBranch %78 - %82 = OpLabel - %84 = OpAccessChain %_ptr_Function_mat4v4float %69 %79 - %86 = OpLoad %mat4v4float %84 None - %87 = OpAccessChain %_ptr_Function_mat4v4float %71 %79 - OpStore %87 %86 None + %83 = OpLabel + %85 = OpAccessChain %_ptr_Function_mat4v4float %69 %79 + %87 = OpLoad %mat4v4float %85 None + %88 = OpAccessChain %_ptr_Function_mat4v4float %71 %79 + OpStore %88 %87 None OpBranch %76 %76 = OpLabel %80 = OpIAdd %uint %79 %uint_1 OpBranch %77 %78 = OpLabel - %88 = OpLoad %_arr_mat4v4float_uint_4_0 %71 None - OpReturnValue %88 + %81 = OpLoad %_arr_mat4v4float_uint_4_0 %71 None + OpReturnValue %81 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.spvasm index 1873679..30d14d1 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -94,12 +94,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %74 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %95 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %105 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %131 = OpTypeFunction %Inner %Inner_std140 @@ -125,8 +125,8 @@ %52 = OpVariable %_ptr_Function_mat2v2half Function %66 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %68 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %74 - %101 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %103 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %105 + %91 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %93 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %95 %27 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %30 = OpFunctionCall %int %i %31 = OpBitcast %uint %30 @@ -159,60 +159,60 @@ OpLoopMerge %79 %77 None OpBranch %76 %76 = OpLabel - %82 = OpUGreaterThanEqual %bool %80 %uint_4 - OpSelectionMerge %84 None - OpBranchConditional %82 %85 %84 - %85 = OpLabel + %111 = OpUGreaterThanEqual %bool %80 %uint_4 + OpSelectionMerge %113 None + OpBranchConditional %111 %114 %113 + %114 = OpLabel OpBranch %79 - %84 = OpLabel - %86 = OpAccessChain %_ptr_Function_Outer %68 %80 - %88 = OpAccessChain %_ptr_Function_Outer_std140 %66 %80 - %90 = OpLoad %Outer_std140 %88 None - %91 = OpFunctionCall %Outer %tint_convert_Outer %90 - OpStore %86 %91 None + %113 = OpLabel + %115 = OpAccessChain %_ptr_Function_Outer %68 %80 + %117 = OpAccessChain %_ptr_Function_Outer_std140 %66 %80 + %119 = OpLoad %Outer_std140 %117 None + %120 = OpFunctionCall %Outer %tint_convert_Outer %119 + OpStore %115 %120 None OpBranch %77 %77 = OpLabel %81 = OpIAdd %uint %80 %uint_1 OpBranch %78 %79 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %68 None - %94 = OpLoad %Outer_std140_tint_explicit_layout %35 None - %95 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %94 - %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %95 - %98 = OpLoad %_arr_Inner_std140_uint_4 %37 None - %99 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %98 - OpStore %101 %99 - OpBranch %106 - %106 = OpLabel - OpBranch %109 - %109 = OpLabel - %111 = OpPhi %uint %uint_0 %106 %112 %108 - OpLoopMerge %110 %108 None - OpBranch %107 - %107 = OpLabel - %113 = OpUGreaterThanEqual %bool %111 %uint_4 - OpSelectionMerge %114 None - OpBranchConditional %113 %115 %114 - %115 = OpLabel - OpBranch %110 - %114 = OpLabel - %116 = OpAccessChain %_ptr_Function_Inner %103 %111 - %118 = OpAccessChain %_ptr_Function_Inner_std140 %101 %111 - %120 = OpLoad %Inner_std140 %118 None - %121 = OpFunctionCall %Inner %tint_convert_Inner %120 - OpStore %116 %121 None - OpBranch %108 - %108 = OpLabel - %112 = OpIAdd %uint %111 %uint_1 - OpBranch %109 - %110 = OpLabel - %l_a_i_a = OpLoad %_arr_Inner_uint_4 %103 None - %124 = OpLoad %Inner_std140 %42 None - %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %124 - %126 = OpFunctionCall %int %i - %127 = OpBitcast %uint %126 - %128 = OpExtInst %uint %33 UMin %127 %uint_1 -%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %half %l_a_i_a_i_m_i %128 + %83 = OpLoad %Outer_std140_tint_explicit_layout %35 None + %84 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %83 + %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %84 + %88 = OpLoad %_arr_Inner_std140_uint_4 %37 None + %89 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %88 + OpStore %91 %89 + OpBranch %96 + %96 = OpLabel + OpBranch %99 + %99 = OpLabel + %101 = OpPhi %uint %uint_0 %96 %102 %98 + OpLoopMerge %100 %98 None + OpBranch %97 + %97 = OpLabel + %121 = OpUGreaterThanEqual %bool %101 %uint_4 + OpSelectionMerge %122 None + OpBranchConditional %121 %123 %122 + %123 = OpLabel + OpBranch %100 + %122 = OpLabel + %124 = OpAccessChain %_ptr_Function_Inner %93 %101 + %126 = OpAccessChain %_ptr_Function_Inner_std140 %91 %101 + %128 = OpLoad %Inner_std140 %126 None + %129 = OpFunctionCall %Inner %tint_convert_Inner %128 + OpStore %124 %129 None + OpBranch %98 + %98 = OpLabel + %102 = OpIAdd %uint %101 %uint_1 + OpBranch %99 + %100 = OpLabel + %l_a_i_a = OpLoad %_arr_Inner_uint_4 %93 None + %104 = OpLoad %Inner_std140 %42 None + %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %104 + %107 = OpFunctionCall %int %i + %108 = OpBitcast %uint %107 + %109 = OpExtInst %uint %33 UMin %108 %uint_1 +%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %half %l_a_i_a_i_m_i %109 OpReturn OpFunctionEnd %tint_convert_Inner = OpFunction %Inner None %131 @@ -228,7 +228,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %139 = OpLabel %141 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %142 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %105 + %142 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %95 %140 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %141 %140 OpBranch %143 @@ -239,25 +239,25 @@ OpLoopMerge %147 %145 None OpBranch %144 %144 = OpLabel - %150 = OpUGreaterThanEqual %bool %148 %uint_4 - OpSelectionMerge %151 None - OpBranchConditional %150 %152 %151 - %152 = OpLabel + %152 = OpUGreaterThanEqual %bool %148 %uint_4 + OpSelectionMerge %153 None + OpBranchConditional %152 %154 %153 + %154 = OpLabel OpBranch %147 - %151 = OpLabel - %153 = OpAccessChain %_ptr_Function_Inner %142 %148 - %154 = OpAccessChain %_ptr_Function_Inner_std140 %141 %148 - %155 = OpLoad %Inner_std140 %154 None - %156 = OpFunctionCall %Inner %tint_convert_Inner %155 - OpStore %153 %156 None + %153 = OpLabel + %155 = OpAccessChain %_ptr_Function_Inner %142 %148 + %156 = OpAccessChain %_ptr_Function_Inner_std140 %141 %148 + %157 = OpLoad %Inner_std140 %156 None + %158 = OpFunctionCall %Inner %tint_convert_Inner %157 + OpStore %155 %158 None OpBranch %145 %145 = OpLabel %149 = OpIAdd %uint %148 %uint_1 OpBranch %146 %147 = OpLabel - %157 = OpLoad %_arr_Inner_uint_4 %142 None - %158 = OpCompositeConstruct %Outer %157 - OpReturnValue %158 + %150 = OpLoad %_arr_Inner_uint_4 %142 None + %151 = OpCompositeConstruct %Outer %150 + OpReturnValue %151 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %160 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -273,23 +273,23 @@ OpLoopMerge %170 %168 None OpBranch %167 %167 = OpLabel - %173 = OpUGreaterThanEqual %bool %171 %uint_4 - OpSelectionMerge %174 None - OpBranchConditional %173 %175 %174 - %175 = OpLabel + %174 = OpUGreaterThanEqual %bool %171 %uint_4 + OpSelectionMerge %175 None + OpBranchConditional %174 %176 %175 + %176 = OpLabel OpBranch %170 - %174 = OpLabel - %176 = OpAccessChain %_ptr_Function_Inner_std140 %162 %171 - %177 = OpLoad %Inner_std140 %176 None - %178 = OpAccessChain %_ptr_Function_Inner_std140 %164 %171 - OpStore %178 %177 None + %175 = OpLabel + %177 = OpAccessChain %_ptr_Function_Inner_std140 %162 %171 + %178 = OpLoad %Inner_std140 %177 None + %179 = OpAccessChain %_ptr_Function_Inner_std140 %164 %171 + OpStore %179 %178 None OpBranch %168 %168 = OpLabel %172 = OpIAdd %uint %171 %uint_1 OpBranch %169 %170 = OpLabel - %179 = OpLoad %_arr_Inner_std140_uint_4_0 %164 None - OpReturnValue %179 + %173 = OpLoad %_arr_Inner_std140_uint_4_0 %164 None + OpReturnValue %173 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %181 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -313,22 +313,22 @@ OpLoopMerge %197 %195 None OpBranch %194 %194 = OpLabel - %200 = OpUGreaterThanEqual %bool %198 %uint_4 - OpSelectionMerge %201 None - OpBranchConditional %200 %202 %201 - %202 = OpLabel + %201 = OpUGreaterThanEqual %bool %198 %uint_4 + OpSelectionMerge %202 None + OpBranchConditional %201 %203 %202 + %203 = OpLabel OpBranch %197 - %201 = OpLabel - %203 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %189 %198 - %205 = OpLoad %Outer_std140_tint_explicit_layout %203 None - %206 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %205 - %207 = OpAccessChain %_ptr_Function_Outer_std140 %191 %198 - OpStore %207 %206 None + %202 = OpLabel + %204 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %189 %198 + %206 = OpLoad %Outer_std140_tint_explicit_layout %204 None + %207 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %206 + %208 = OpAccessChain %_ptr_Function_Outer_std140 %191 %198 + OpStore %208 %207 None OpBranch %195 %195 = OpLabel %199 = OpIAdd %uint %198 %uint_1 OpBranch %196 %197 = OpLabel - %208 = OpLoad %_arr_Outer_std140_uint_4 %191 None - OpReturnValue %208 + %200 = OpLoad %_arr_Outer_std140_uint_4 %191 None + OpReturnValue %200 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.spvasm index fa57c8b..3ce4dd7 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.spvasm
@@ -84,12 +84,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %50 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %71 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %81 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %104 = OpTypeFunction %Inner %Inner_std140 @@ -106,8 +106,8 @@ %15 = OpLabel %42 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %44 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %50 - %77 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %79 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %81 + %67 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %69 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %71 %16 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %19 = OpAccessChain %_ptr_Uniform_Outer_std140_tint_explicit_layout %16 %uint_3 %22 = OpAccessChain %_ptr_Uniform__arr_Inner_std140_uint_4 %19 %uint_0 @@ -129,56 +129,56 @@ OpLoopMerge %55 %53 None OpBranch %52 %52 = OpLabel - %58 = OpUGreaterThanEqual %bool %56 %uint_4 - OpSelectionMerge %60 None - OpBranchConditional %58 %61 %60 - %61 = OpLabel + %84 = OpUGreaterThanEqual %bool %56 %uint_4 + OpSelectionMerge %86 None + OpBranchConditional %84 %87 %86 + %87 = OpLabel OpBranch %55 - %60 = OpLabel - %62 = OpAccessChain %_ptr_Function_Outer %44 %56 - %64 = OpAccessChain %_ptr_Function_Outer_std140 %42 %56 - %66 = OpLoad %Outer_std140 %64 None - %67 = OpFunctionCall %Outer %tint_convert_Outer %66 - OpStore %62 %67 None + %86 = OpLabel + %88 = OpAccessChain %_ptr_Function_Outer %44 %56 + %90 = OpAccessChain %_ptr_Function_Outer_std140 %42 %56 + %92 = OpLoad %Outer_std140 %90 None + %93 = OpFunctionCall %Outer %tint_convert_Outer %92 + OpStore %88 %93 None OpBranch %53 %53 = OpLabel %57 = OpIAdd %uint %56 %uint_1 OpBranch %54 %55 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %44 None - %70 = OpLoad %Outer_std140_tint_explicit_layout %19 None - %71 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %70 - %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %71 - %74 = OpLoad %_arr_Inner_std140_uint_4 %22 None - %75 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %74 - OpStore %77 %75 - OpBranch %82 - %82 = OpLabel - OpBranch %85 - %85 = OpLabel - %87 = OpPhi %uint %uint_0 %82 %88 %84 - OpLoopMerge %86 %84 None - OpBranch %83 - %83 = OpLabel - %89 = OpUGreaterThanEqual %bool %87 %uint_4 - OpSelectionMerge %90 None - OpBranchConditional %89 %91 %90 - %91 = OpLabel - OpBranch %86 - %90 = OpLabel - %92 = OpAccessChain %_ptr_Function_Inner %79 %87 - %94 = OpAccessChain %_ptr_Function_Inner_std140 %77 %87 - %96 = OpLoad %Inner_std140 %94 None - %97 = OpFunctionCall %Inner %tint_convert_Inner %96 - OpStore %92 %97 None - OpBranch %84 - %84 = OpLabel - %88 = OpIAdd %uint %87 %uint_1 - OpBranch %85 - %86 = OpLabel - %l_a_3_a = OpLoad %_arr_Inner_uint_4 %79 None - %100 = OpLoad %Inner_std140 %24 None - %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %100 + %59 = OpLoad %Outer_std140_tint_explicit_layout %19 None + %60 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %59 + %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %60 + %64 = OpLoad %_arr_Inner_std140_uint_4 %22 None + %65 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %64 + OpStore %67 %65 + OpBranch %72 + %72 = OpLabel + OpBranch %75 + %75 = OpLabel + %77 = OpPhi %uint %uint_0 %72 %78 %74 + OpLoopMerge %76 %74 None + OpBranch %73 + %73 = OpLabel + %94 = OpUGreaterThanEqual %bool %77 %uint_4 + OpSelectionMerge %95 None + OpBranchConditional %94 %96 %95 + %96 = OpLabel + OpBranch %76 + %95 = OpLabel + %97 = OpAccessChain %_ptr_Function_Inner %69 %77 + %99 = OpAccessChain %_ptr_Function_Inner_std140 %67 %77 + %101 = OpLoad %Inner_std140 %99 None + %102 = OpFunctionCall %Inner %tint_convert_Inner %101 + OpStore %97 %102 None + OpBranch %74 + %74 = OpLabel + %78 = OpIAdd %uint %77 %uint_1 + OpBranch %75 + %76 = OpLabel + %l_a_3_a = OpLoad %_arr_Inner_uint_4 %69 None + %80 = OpLoad %Inner_std140 %24 None + %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %80 %l_a_3_a_2_m_1_0 = OpCompositeExtract %half %l_a_3_a_2_m_1 0 OpReturn OpFunctionEnd @@ -195,7 +195,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %112 = OpLabel %114 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %115 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %81 + %115 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %71 %113 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %114 %113 OpBranch %116 @@ -206,25 +206,25 @@ OpLoopMerge %120 %118 None OpBranch %117 %117 = OpLabel - %123 = OpUGreaterThanEqual %bool %121 %uint_4 - OpSelectionMerge %124 None - OpBranchConditional %123 %125 %124 - %125 = OpLabel + %125 = OpUGreaterThanEqual %bool %121 %uint_4 + OpSelectionMerge %126 None + OpBranchConditional %125 %127 %126 + %127 = OpLabel OpBranch %120 - %124 = OpLabel - %126 = OpAccessChain %_ptr_Function_Inner %115 %121 - %127 = OpAccessChain %_ptr_Function_Inner_std140 %114 %121 - %128 = OpLoad %Inner_std140 %127 None - %129 = OpFunctionCall %Inner %tint_convert_Inner %128 - OpStore %126 %129 None + %126 = OpLabel + %128 = OpAccessChain %_ptr_Function_Inner %115 %121 + %129 = OpAccessChain %_ptr_Function_Inner_std140 %114 %121 + %130 = OpLoad %Inner_std140 %129 None + %131 = OpFunctionCall %Inner %tint_convert_Inner %130 + OpStore %128 %131 None OpBranch %118 %118 = OpLabel %122 = OpIAdd %uint %121 %uint_1 OpBranch %119 %120 = OpLabel - %130 = OpLoad %_arr_Inner_uint_4 %115 None - %131 = OpCompositeConstruct %Outer %130 - OpReturnValue %131 + %123 = OpLoad %_arr_Inner_uint_4 %115 None + %124 = OpCompositeConstruct %Outer %123 + OpReturnValue %124 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %133 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -240,23 +240,23 @@ OpLoopMerge %143 %141 None OpBranch %140 %140 = OpLabel - %146 = OpUGreaterThanEqual %bool %144 %uint_4 - OpSelectionMerge %147 None - OpBranchConditional %146 %148 %147 - %148 = OpLabel + %147 = OpUGreaterThanEqual %bool %144 %uint_4 + OpSelectionMerge %148 None + OpBranchConditional %147 %149 %148 + %149 = OpLabel OpBranch %143 - %147 = OpLabel - %149 = OpAccessChain %_ptr_Function_Inner_std140 %135 %144 - %150 = OpLoad %Inner_std140 %149 None - %151 = OpAccessChain %_ptr_Function_Inner_std140 %137 %144 - OpStore %151 %150 None + %148 = OpLabel + %150 = OpAccessChain %_ptr_Function_Inner_std140 %135 %144 + %151 = OpLoad %Inner_std140 %150 None + %152 = OpAccessChain %_ptr_Function_Inner_std140 %137 %144 + OpStore %152 %151 None OpBranch %141 %141 = OpLabel %145 = OpIAdd %uint %144 %uint_1 OpBranch %142 %143 = OpLabel - %152 = OpLoad %_arr_Inner_std140_uint_4_0 %137 None - OpReturnValue %152 + %146 = OpLoad %_arr_Inner_std140_uint_4_0 %137 None + OpReturnValue %146 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %154 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -280,22 +280,22 @@ OpLoopMerge %170 %168 None OpBranch %167 %167 = OpLabel - %173 = OpUGreaterThanEqual %bool %171 %uint_4 - OpSelectionMerge %174 None - OpBranchConditional %173 %175 %174 - %175 = OpLabel + %174 = OpUGreaterThanEqual %bool %171 %uint_4 + OpSelectionMerge %175 None + OpBranchConditional %174 %176 %175 + %176 = OpLabel OpBranch %170 - %174 = OpLabel - %176 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %162 %171 - %178 = OpLoad %Outer_std140_tint_explicit_layout %176 None - %179 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %178 - %180 = OpAccessChain %_ptr_Function_Outer_std140 %164 %171 - OpStore %180 %179 None + %175 = OpLabel + %177 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %162 %171 + %179 = OpLoad %Outer_std140_tint_explicit_layout %177 None + %180 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %179 + %181 = OpAccessChain %_ptr_Function_Outer_std140 %164 %171 + OpStore %181 %180 None OpBranch %168 %168 = OpLabel %172 = OpIAdd %uint %171 %uint_1 OpBranch %169 %170 = OpLabel - %181 = OpLoad %_arr_Outer_std140_uint_4 %164 None - OpReturnValue %181 + %173 = OpLoad %_arr_Outer_std140_uint_4 %164 None + OpReturnValue %173 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.spvasm index 17c2c88..26e1c12 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.spvasm
@@ -72,13 +72,13 @@ %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %49 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Uniform_v2half = OpTypePointer Uniform %v2half + %uint_1 = OpConstant %uint 1 + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %94 = OpTypeFunction %S %S_std140 %103 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -124,43 +124,43 @@ OpLoopMerge %54 %52 None OpBranch %51 %51 = OpLabel - %57 = OpUGreaterThanEqual %bool %55 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel + %83 = OpUGreaterThanEqual %bool %55 %uint_4 + OpSelectionMerge %85 None + OpBranchConditional %83 %86 %85 + %86 = OpLabel OpBranch %54 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_S %47 %55 - %63 = OpAccessChain %_ptr_Function_S_std140 %45 %55 - %65 = OpLoad %S_std140 %63 None - %66 = OpFunctionCall %S %tint_convert_S %65 - OpStore %61 %66 None + %85 = OpLabel + %87 = OpAccessChain %_ptr_Function_S %47 %55 + %89 = OpAccessChain %_ptr_Function_S_std140 %45 %55 + %91 = OpLoad %S_std140 %89 None + %92 = OpFunctionCall %S %tint_convert_S %91 + OpStore %87 %92 None OpBranch %52 %52 = OpLabel %56 = OpIAdd %uint %55 %uint_1 OpBranch %53 %54 = OpLabel - %69 = OpLoad %_arr_S_uint_4 %47 None - %70 = OpFunctionCall %void %a %69 - %71 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %71 None - %75 = OpFunctionCall %S %tint_convert_S %74 - %76 = OpFunctionCall %void %b %75 - %77 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 - %79 = OpLoad %v2half %77 None - %80 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 - %81 = OpLoad %v2half %80 None - %82 = OpCompositeConstruct %mat2v2half %79 %81 - %83 = OpFunctionCall %void %c %82 - %84 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 - %85 = OpLoad %v2half %84 None - %86 = OpVectorShuffle %v2half %85 %85 1 0 - %87 = OpFunctionCall %void %d %86 - %88 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 - %89 = OpLoad %v2half %88 None - %90 = OpVectorShuffle %v2half %89 %89 1 0 - %91 = OpCompositeExtract %half %90 0 - %92 = OpFunctionCall %void %e %91 + %57 = OpLoad %_arr_S_uint_4 %47 None + %58 = OpFunctionCall %void %a %57 + %59 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %62 = OpLoad %S_std140 %59 None + %63 = OpFunctionCall %S %tint_convert_S %62 + %65 = OpFunctionCall %void %b %63 + %66 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 + %69 = OpLoad %v2half %66 None + %70 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 + %71 = OpLoad %v2half %70 None + %72 = OpCompositeConstruct %mat2v2half %69 %71 + %73 = OpFunctionCall %void %c %72 + %74 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 + %75 = OpLoad %v2half %74 None + %76 = OpVectorShuffle %v2half %75 %75 1 0 + %77 = OpFunctionCall %void %d %76 + %78 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 + %79 = OpLoad %v2half %78 None + %80 = OpVectorShuffle %v2half %79 %79 1 0 + %81 = OpCompositeExtract %half %80 0 + %82 = OpFunctionCall %void %e %81 OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %94 @@ -188,21 +188,21 @@ OpLoopMerge %113 %111 None OpBranch %110 %110 = OpLabel - %116 = OpUGreaterThanEqual %bool %114 %uint_4 - OpSelectionMerge %117 None - OpBranchConditional %116 %118 %117 - %118 = OpLabel + %117 = OpUGreaterThanEqual %bool %114 %uint_4 + OpSelectionMerge %118 None + OpBranchConditional %117 %119 %118 + %119 = OpLabel OpBranch %113 - %117 = OpLabel - %119 = OpAccessChain %_ptr_Function_S_std140 %105 %114 - %120 = OpLoad %S_std140 %119 None - %121 = OpAccessChain %_ptr_Function_S_std140 %107 %114 - OpStore %121 %120 None + %118 = OpLabel + %120 = OpAccessChain %_ptr_Function_S_std140 %105 %114 + %121 = OpLoad %S_std140 %120 None + %122 = OpAccessChain %_ptr_Function_S_std140 %107 %114 + OpStore %122 %121 None OpBranch %111 %111 = OpLabel %115 = OpIAdd %uint %114 %uint_1 OpBranch %112 %113 = OpLabel - %122 = OpLoad %_arr_S_std140_uint_4_0 %107 None - OpReturnValue %122 + %116 = OpLoad %_arr_S_std140_uint_4_0 %107 None + OpReturnValue %116 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.spvasm index 16eb963..17d5f75 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.spvasm
@@ -60,17 +60,17 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Private_S = OpTypePointer Private %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Private_mat2v2half = OpTypePointer Private %mat2v2half %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v2half = OpTypePointer Uniform %v2half %_ptr_Private_v2half = OpTypePointer Private %v2half + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %74 = OpTypeFunction %S %S_std140 %83 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -91,41 +91,41 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_4 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %63 = OpUGreaterThanEqual %bool %37 %uint_4 + OpSelectionMerge %65 None + OpBranchConditional %63 %66 %65 + %66 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Function_S %30 %37 - %45 = OpAccessChain %_ptr_Function_S_std140 %28 %37 - %47 = OpLoad %S_std140 %45 None - %48 = OpFunctionCall %S %tint_convert_S %47 - OpStore %43 %48 None + %65 = OpLabel + %67 = OpAccessChain %_ptr_Function_S %30 %37 + %69 = OpAccessChain %_ptr_Function_S_std140 %28 %37 + %71 = OpLoad %S_std140 %69 None + %72 = OpFunctionCall %S %tint_convert_S %71 + OpStore %67 %72 None OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel - %51 = OpLoad %_arr_S_uint_4 %30 None - OpStore %p %51 None - %52 = OpAccessChain %_ptr_Private_S %p %uint_1 - %54 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %57 = OpLoad %S_std140 %54 None - %58 = OpFunctionCall %S %tint_convert_S %57 - OpStore %52 %58 None - %59 = OpAccessChain %_ptr_Private_mat2v2half %p %uint_3 %uint_1 - %62 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 - %64 = OpLoad %v2half %62 None - %65 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 - %66 = OpLoad %v2half %65 None - %67 = OpCompositeConstruct %mat2v2half %64 %66 - OpStore %59 %67 None - %68 = OpAccessChain %_ptr_Private_v2half %p %uint_1 %uint_1 %uint_0 - %70 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 - %71 = OpLoad %v2half %70 None - %72 = OpVectorShuffle %v2half %71 %71 1 0 - OpStore %68 %72 None + %39 = OpLoad %_arr_S_uint_4 %30 None + OpStore %p %39 None + %40 = OpAccessChain %_ptr_Private_S %p %uint_1 + %43 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %46 = OpLoad %S_std140 %43 None + %47 = OpFunctionCall %S %tint_convert_S %46 + OpStore %40 %47 None + %49 = OpAccessChain %_ptr_Private_mat2v2half %p %uint_3 %uint_1 + %52 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 + %54 = OpLoad %v2half %52 None + %55 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 + %56 = OpLoad %v2half %55 None + %57 = OpCompositeConstruct %mat2v2half %54 %56 + OpStore %49 %57 None + %58 = OpAccessChain %_ptr_Private_v2half %p %uint_1 %uint_1 %uint_0 + %60 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 + %61 = OpLoad %v2half %60 None + %62 = OpVectorShuffle %v2half %61 %61 1 0 + OpStore %58 %62 None OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %74 @@ -153,21 +153,21 @@ OpLoopMerge %93 %91 None OpBranch %90 %90 = OpLabel - %96 = OpUGreaterThanEqual %bool %94 %uint_4 - OpSelectionMerge %97 None - OpBranchConditional %96 %98 %97 - %98 = OpLabel + %97 = OpUGreaterThanEqual %bool %94 %uint_4 + OpSelectionMerge %98 None + OpBranchConditional %97 %99 %98 + %99 = OpLabel OpBranch %93 - %97 = OpLabel - %99 = OpAccessChain %_ptr_Function_S_std140 %85 %94 - %100 = OpLoad %S_std140 %99 None - %101 = OpAccessChain %_ptr_Function_S_std140 %87 %94 - OpStore %101 %100 None + %98 = OpLabel + %100 = OpAccessChain %_ptr_Function_S_std140 %85 %94 + %101 = OpLoad %S_std140 %100 None + %102 = OpAccessChain %_ptr_Function_S_std140 %87 %94 + OpStore %102 %101 None OpBranch %91 %91 = OpLabel %95 = OpIAdd %uint %94 %uint_1 OpBranch %92 %93 = OpLabel - %102 = OpLoad %_arr_S_std140_uint_4_0 %87 None - OpReturnValue %102 + %96 = OpLoad %_arr_S_std140_uint_4_0 %87 None + OpReturnValue %96 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_storage.wgsl.expected.spvasm index 9004867..1f8ac9f 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_storage.wgsl.expected.spvasm
@@ -84,17 +84,17 @@ %_arr_S_uint_4 = OpTypeArray %S %uint_4 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %34 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 + %uint_1 = OpConstant %uint 1 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1 %_ptr_StorageBuffer_mat2v2half = OpTypePointer StorageBuffer %mat2v2half %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v2half = OpTypePointer Uniform %v2half %_ptr_StorageBuffer_v2half = OpTypePointer StorageBuffer %v2half + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %81 = OpTypeFunction %void %_arr_S_uint_4 %100 = OpTypeFunction %void %_arr_uint_uint_1 %S %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int @@ -118,41 +118,41 @@ OpLoopMerge %39 %37 None OpBranch %36 %36 = OpLabel - %42 = OpUGreaterThanEqual %bool %40 %uint_4 - OpSelectionMerge %44 None - OpBranchConditional %42 %45 %44 - %45 = OpLabel + %70 = OpUGreaterThanEqual %bool %40 %uint_4 + OpSelectionMerge %72 None + OpBranchConditional %70 %73 %72 + %73 = OpLabel OpBranch %39 - %44 = OpLabel - %46 = OpAccessChain %_ptr_Function_S %30 %40 - %48 = OpAccessChain %_ptr_Function_S_std140 %28 %40 - %50 = OpLoad %S_std140 %48 None - %51 = OpFunctionCall %S %tint_convert_S %50 - OpStore %46 %51 None + %72 = OpLabel + %74 = OpAccessChain %_ptr_Function_S %30 %40 + %76 = OpAccessChain %_ptr_Function_S_std140 %28 %40 + %78 = OpLoad %S_std140 %76 None + %79 = OpFunctionCall %S %tint_convert_S %78 + OpStore %74 %79 None OpBranch %37 %37 = OpLabel %41 = OpIAdd %uint %40 %uint_1 OpBranch %38 %39 = OpLabel - %54 = OpLoad %_arr_S_uint_4 %30 None - %55 = OpFunctionCall %void %tint_store_and_preserve_padding %54 - %57 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %60 = OpLoad %S_std140 %57 None - %61 = OpFunctionCall %S %tint_convert_S %60 - %63 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 - %64 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %63 %61 - %66 = OpAccessChain %_ptr_StorageBuffer_mat2v2half %11 %uint_0 %uint_3 %uint_1 - %69 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 - %71 = OpLoad %v2half %69 None - %72 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 - %73 = OpLoad %v2half %72 None - %74 = OpCompositeConstruct %mat2v2half %71 %73 - OpStore %66 %74 None - %75 = OpAccessChain %_ptr_StorageBuffer_v2half %11 %uint_0 %uint_1 %uint_1 %uint_0 - %77 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 - %78 = OpLoad %v2half %77 None - %79 = OpVectorShuffle %v2half %78 %78 1 0 - OpStore %75 %79 None + %42 = OpLoad %_arr_S_uint_4 %30 None + %43 = OpFunctionCall %void %tint_store_and_preserve_padding %42 + %45 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %48 = OpLoad %S_std140 %45 None + %49 = OpFunctionCall %S %tint_convert_S %48 + %53 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 + %54 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %53 %49 + %56 = OpAccessChain %_ptr_StorageBuffer_mat2v2half %11 %uint_0 %uint_3 %uint_1 + %59 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 + %61 = OpLoad %v2half %59 None + %62 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 + %63 = OpLoad %v2half %62 None + %64 = OpCompositeConstruct %mat2v2half %61 %63 + OpStore %56 %64 None + %65 = OpAccessChain %_ptr_StorageBuffer_v2half %11 %uint_0 %uint_1 %uint_1 %uint_0 + %67 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 + %68 = OpLoad %v2half %67 None + %69 = OpVectorShuffle %v2half %68 %68 1 0 + OpStore %65 %69 None OpReturn OpFunctionEnd %tint_store_and_preserve_padding = OpFunction %void None %81 @@ -226,21 +226,21 @@ OpLoopMerge %130 %128 None OpBranch %127 %127 = OpLabel - %133 = OpUGreaterThanEqual %bool %131 %uint_4 - OpSelectionMerge %134 None - OpBranchConditional %133 %135 %134 - %135 = OpLabel + %134 = OpUGreaterThanEqual %bool %131 %uint_4 + OpSelectionMerge %135 None + OpBranchConditional %134 %136 %135 + %136 = OpLabel OpBranch %130 - %134 = OpLabel - %136 = OpAccessChain %_ptr_Function_S_std140 %122 %131 - %137 = OpLoad %S_std140 %136 None - %138 = OpAccessChain %_ptr_Function_S_std140 %124 %131 - OpStore %138 %137 None + %135 = OpLabel + %137 = OpAccessChain %_ptr_Function_S_std140 %122 %131 + %138 = OpLoad %S_std140 %137 None + %139 = OpAccessChain %_ptr_Function_S_std140 %124 %131 + OpStore %139 %138 None OpBranch %128 %128 = OpLabel %132 = OpIAdd %uint %131 %uint_1 OpBranch %129 %130 = OpLabel - %139 = OpLoad %_arr_S_std140_uint_4_0 %124 None - OpReturnValue %139 + %133 = OpLoad %_arr_S_std140_uint_4_0 %124 None + OpReturnValue %133 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.spvasm index c6dd24c..76ccef9 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.spvasm
@@ -60,10 +60,6 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %21 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_S = OpTypePointer Workgroup %S - %36 = OpConstantNull %S - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_S_std140_uint_4 = OpTypePointer Uniform %_arr_S_std140_uint_4 @@ -71,14 +67,18 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %52 = OpConstantNull %_arr_S_uint_4 -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 + %44 = OpConstantNull %_arr_S_uint_4 +%_ptr_Workgroup_S = OpTypePointer Workgroup %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %_ptr_Workgroup_mat2v2half = OpTypePointer Workgroup %mat2v2half %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v2half = OpTypePointer Uniform %v2half %_ptr_Workgroup_v2half = OpTypePointer Workgroup %v2half + %bool = OpTypeBool + %80 = OpConstantNull %S +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %91 = OpTypeFunction %void %96 = OpTypeFunction %S %S_std140 %105 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 @@ -87,8 +87,8 @@ %f_inner = OpFunction %void None %21 %tint_local_index = OpFunctionParameter %uint %22 = OpLabel - %48 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function - %50 = OpVariable %_ptr_Function__arr_S_uint_4 Function %52 + %40 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function + %42 = OpVariable %_ptr_Function__arr_S_uint_4 Function %44 OpBranch %23 %23 = OpLabel OpBranch %26 @@ -97,67 +97,67 @@ OpLoopMerge %27 %25 None OpBranch %24 %24 = OpLabel - %30 = OpUGreaterThanEqual %bool %28 %uint_4 - OpSelectionMerge %32 None - OpBranchConditional %30 %33 %32 - %33 = OpLabel + %75 = OpUGreaterThanEqual %bool %28 %uint_4 + OpSelectionMerge %77 None + OpBranchConditional %75 %78 %77 + %78 = OpLabel OpBranch %27 - %32 = OpLabel - %34 = OpAccessChain %_ptr_Workgroup_S %w %28 - OpStore %34 %36 None + %77 = OpLabel + %79 = OpAccessChain %_ptr_Workgroup_S %w %28 + OpStore %79 %80 None OpBranch %25 %25 = OpLabel %29 = OpIAdd %uint %28 %uint_1 OpBranch %26 %27 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %41 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 - %44 = OpLoad %_arr_S_std140_uint_4 %41 None - %45 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %44 - OpStore %48 %45 - OpBranch %53 - %53 = OpLabel - OpBranch %56 - %56 = OpLabel - %58 = OpPhi %uint %uint_0 %53 %59 %55 - OpLoopMerge %57 %55 None - OpBranch %54 - %54 = OpLabel - %60 = OpUGreaterThanEqual %bool %58 %uint_4 - OpSelectionMerge %61 None - OpBranchConditional %60 %62 %61 - %62 = OpLabel - OpBranch %57 - %61 = OpLabel - %63 = OpAccessChain %_ptr_Function_S %50 %58 - %65 = OpAccessChain %_ptr_Function_S_std140 %48 %58 - %67 = OpLoad %S_std140 %65 None - %68 = OpFunctionCall %S %tint_convert_S %67 - OpStore %63 %68 None - OpBranch %55 - %55 = OpLabel - %59 = OpIAdd %uint %58 %uint_1 - OpBranch %56 - %57 = OpLabel - %70 = OpLoad %_arr_S_uint_4 %50 None - OpStore %w %70 None - %71 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 - %72 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %72 None - %75 = OpFunctionCall %S %tint_convert_S %74 - OpStore %71 %75 None - %76 = OpAccessChain %_ptr_Workgroup_mat2v2half %w %uint_3 %uint_1 - %79 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 - %81 = OpLoad %v2half %79 None - %82 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 - %83 = OpLoad %v2half %82 None - %84 = OpCompositeConstruct %mat2v2half %81 %83 - OpStore %76 %84 None - %85 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_1 %uint_1 %uint_0 - %87 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 - %88 = OpLoad %v2half %87 None - %89 = OpVectorShuffle %v2half %88 %88 1 0 - OpStore %85 %89 None + %33 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 + %36 = OpLoad %_arr_S_std140_uint_4 %33 None + %37 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %36 + OpStore %40 %37 + OpBranch %45 + %45 = OpLabel + OpBranch %48 + %48 = OpLabel + %50 = OpPhi %uint %uint_0 %45 %51 %47 + OpLoopMerge %49 %47 None + OpBranch %46 + %46 = OpLabel + %81 = OpUGreaterThanEqual %bool %50 %uint_4 + OpSelectionMerge %82 None + OpBranchConditional %81 %83 %82 + %83 = OpLabel + OpBranch %49 + %82 = OpLabel + %84 = OpAccessChain %_ptr_Function_S %42 %50 + %86 = OpAccessChain %_ptr_Function_S_std140 %40 %50 + %88 = OpLoad %S_std140 %86 None + %89 = OpFunctionCall %S %tint_convert_S %88 + OpStore %84 %89 None + OpBranch %47 + %47 = OpLabel + %51 = OpIAdd %uint %50 %uint_1 + OpBranch %48 + %49 = OpLabel + %52 = OpLoad %_arr_S_uint_4 %42 None + OpStore %w %52 None + %53 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 + %56 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %58 = OpLoad %S_std140 %56 None + %59 = OpFunctionCall %S %tint_convert_S %58 + OpStore %53 %59 None + %61 = OpAccessChain %_ptr_Workgroup_mat2v2half %w %uint_3 %uint_1 + %64 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 + %66 = OpLoad %v2half %64 None + %67 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 + %68 = OpLoad %v2half %67 None + %69 = OpCompositeConstruct %mat2v2half %66 %68 + OpStore %61 %69 None + %70 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_1 %uint_1 %uint_0 + %72 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 + %73 = OpLoad %v2half %72 None + %74 = OpVectorShuffle %v2half %73 %73 1 0 + OpStore %70 %74 None OpReturn OpFunctionEnd %f = OpFunction %void None %91 @@ -191,21 +191,21 @@ OpLoopMerge %115 %113 None OpBranch %112 %112 = OpLabel - %118 = OpUGreaterThanEqual %bool %116 %uint_4 - OpSelectionMerge %119 None - OpBranchConditional %118 %120 %119 - %120 = OpLabel + %119 = OpUGreaterThanEqual %bool %116 %uint_4 + OpSelectionMerge %120 None + OpBranchConditional %119 %121 %120 + %121 = OpLabel OpBranch %115 - %119 = OpLabel - %121 = OpAccessChain %_ptr_Function_S_std140 %107 %116 - %122 = OpLoad %S_std140 %121 None - %123 = OpAccessChain %_ptr_Function_S_std140 %109 %116 - OpStore %123 %122 None + %120 = OpLabel + %122 = OpAccessChain %_ptr_Function_S_std140 %107 %116 + %123 = OpLoad %S_std140 %122 None + %124 = OpAccessChain %_ptr_Function_S_std140 %109 %116 + OpStore %124 %123 None OpBranch %113 %113 = OpLabel %117 = OpIAdd %uint %116 %uint_1 OpBranch %114 %115 = OpLabel - %124 = OpLoad %_arr_S_std140_uint_4_0 %109 None - OpReturnValue %124 + %118 = OpLoad %_arr_S_std140_uint_4_0 %109 None + OpReturnValue %118 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.spvasm index 42a4ba6..0306c28 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -91,12 +91,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %74 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %95 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %105 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %131 = OpTypeFunction %Inner %Inner_std140 @@ -122,8 +122,8 @@ %52 = OpVariable %_ptr_Function_mat2v2float Function %66 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %68 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %74 - %101 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %103 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %105 + %91 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %93 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %95 %27 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %30 = OpFunctionCall %int %i %31 = OpBitcast %uint %30 @@ -156,60 +156,60 @@ OpLoopMerge %79 %77 None OpBranch %76 %76 = OpLabel - %82 = OpUGreaterThanEqual %bool %80 %uint_4 - OpSelectionMerge %84 None - OpBranchConditional %82 %85 %84 - %85 = OpLabel + %111 = OpUGreaterThanEqual %bool %80 %uint_4 + OpSelectionMerge %113 None + OpBranchConditional %111 %114 %113 + %114 = OpLabel OpBranch %79 - %84 = OpLabel - %86 = OpAccessChain %_ptr_Function_Outer %68 %80 - %88 = OpAccessChain %_ptr_Function_Outer_std140 %66 %80 - %90 = OpLoad %Outer_std140 %88 None - %91 = OpFunctionCall %Outer %tint_convert_Outer %90 - OpStore %86 %91 None + %113 = OpLabel + %115 = OpAccessChain %_ptr_Function_Outer %68 %80 + %117 = OpAccessChain %_ptr_Function_Outer_std140 %66 %80 + %119 = OpLoad %Outer_std140 %117 None + %120 = OpFunctionCall %Outer %tint_convert_Outer %119 + OpStore %115 %120 None OpBranch %77 %77 = OpLabel %81 = OpIAdd %uint %80 %uint_1 OpBranch %78 %79 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %68 None - %94 = OpLoad %Outer_std140_tint_explicit_layout %35 None - %95 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %94 - %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %95 - %98 = OpLoad %_arr_Inner_std140_uint_4 %37 None - %99 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %98 - OpStore %101 %99 - OpBranch %106 - %106 = OpLabel - OpBranch %109 - %109 = OpLabel - %111 = OpPhi %uint %uint_0 %106 %112 %108 - OpLoopMerge %110 %108 None - OpBranch %107 - %107 = OpLabel - %113 = OpUGreaterThanEqual %bool %111 %uint_4 - OpSelectionMerge %114 None - OpBranchConditional %113 %115 %114 - %115 = OpLabel - OpBranch %110 - %114 = OpLabel - %116 = OpAccessChain %_ptr_Function_Inner %103 %111 - %118 = OpAccessChain %_ptr_Function_Inner_std140 %101 %111 - %120 = OpLoad %Inner_std140 %118 None - %121 = OpFunctionCall %Inner %tint_convert_Inner %120 - OpStore %116 %121 None - OpBranch %108 - %108 = OpLabel - %112 = OpIAdd %uint %111 %uint_1 - OpBranch %109 - %110 = OpLabel - %l_a_i_a = OpLoad %_arr_Inner_uint_4 %103 None - %124 = OpLoad %Inner_std140 %42 None - %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %124 - %126 = OpFunctionCall %int %i - %127 = OpBitcast %uint %126 - %128 = OpExtInst %uint %33 UMin %127 %uint_1 -%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %float %l_a_i_a_i_m_i %128 + %83 = OpLoad %Outer_std140_tint_explicit_layout %35 None + %84 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %83 + %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %84 + %88 = OpLoad %_arr_Inner_std140_uint_4 %37 None + %89 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %88 + OpStore %91 %89 + OpBranch %96 + %96 = OpLabel + OpBranch %99 + %99 = OpLabel + %101 = OpPhi %uint %uint_0 %96 %102 %98 + OpLoopMerge %100 %98 None + OpBranch %97 + %97 = OpLabel + %121 = OpUGreaterThanEqual %bool %101 %uint_4 + OpSelectionMerge %122 None + OpBranchConditional %121 %123 %122 + %123 = OpLabel + OpBranch %100 + %122 = OpLabel + %124 = OpAccessChain %_ptr_Function_Inner %93 %101 + %126 = OpAccessChain %_ptr_Function_Inner_std140 %91 %101 + %128 = OpLoad %Inner_std140 %126 None + %129 = OpFunctionCall %Inner %tint_convert_Inner %128 + OpStore %124 %129 None + OpBranch %98 + %98 = OpLabel + %102 = OpIAdd %uint %101 %uint_1 + OpBranch %99 + %100 = OpLabel + %l_a_i_a = OpLoad %_arr_Inner_uint_4 %93 None + %104 = OpLoad %Inner_std140 %42 None + %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %104 + %107 = OpFunctionCall %int %i + %108 = OpBitcast %uint %107 + %109 = OpExtInst %uint %33 UMin %108 %uint_1 +%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %float %l_a_i_a_i_m_i %109 OpReturn OpFunctionEnd %tint_convert_Inner = OpFunction %Inner None %131 @@ -225,7 +225,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %139 = OpLabel %141 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %142 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %105 + %142 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %95 %140 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %141 %140 OpBranch %143 @@ -236,25 +236,25 @@ OpLoopMerge %147 %145 None OpBranch %144 %144 = OpLabel - %150 = OpUGreaterThanEqual %bool %148 %uint_4 - OpSelectionMerge %151 None - OpBranchConditional %150 %152 %151 - %152 = OpLabel + %152 = OpUGreaterThanEqual %bool %148 %uint_4 + OpSelectionMerge %153 None + OpBranchConditional %152 %154 %153 + %154 = OpLabel OpBranch %147 - %151 = OpLabel - %153 = OpAccessChain %_ptr_Function_Inner %142 %148 - %154 = OpAccessChain %_ptr_Function_Inner_std140 %141 %148 - %155 = OpLoad %Inner_std140 %154 None - %156 = OpFunctionCall %Inner %tint_convert_Inner %155 - OpStore %153 %156 None + %153 = OpLabel + %155 = OpAccessChain %_ptr_Function_Inner %142 %148 + %156 = OpAccessChain %_ptr_Function_Inner_std140 %141 %148 + %157 = OpLoad %Inner_std140 %156 None + %158 = OpFunctionCall %Inner %tint_convert_Inner %157 + OpStore %155 %158 None OpBranch %145 %145 = OpLabel %149 = OpIAdd %uint %148 %uint_1 OpBranch %146 %147 = OpLabel - %157 = OpLoad %_arr_Inner_uint_4 %142 None - %158 = OpCompositeConstruct %Outer %157 - OpReturnValue %158 + %150 = OpLoad %_arr_Inner_uint_4 %142 None + %151 = OpCompositeConstruct %Outer %150 + OpReturnValue %151 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %160 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -270,23 +270,23 @@ OpLoopMerge %170 %168 None OpBranch %167 %167 = OpLabel - %173 = OpUGreaterThanEqual %bool %171 %uint_4 - OpSelectionMerge %174 None - OpBranchConditional %173 %175 %174 - %175 = OpLabel + %174 = OpUGreaterThanEqual %bool %171 %uint_4 + OpSelectionMerge %175 None + OpBranchConditional %174 %176 %175 + %176 = OpLabel OpBranch %170 - %174 = OpLabel - %176 = OpAccessChain %_ptr_Function_Inner_std140 %162 %171 - %177 = OpLoad %Inner_std140 %176 None - %178 = OpAccessChain %_ptr_Function_Inner_std140 %164 %171 - OpStore %178 %177 None + %175 = OpLabel + %177 = OpAccessChain %_ptr_Function_Inner_std140 %162 %171 + %178 = OpLoad %Inner_std140 %177 None + %179 = OpAccessChain %_ptr_Function_Inner_std140 %164 %171 + OpStore %179 %178 None OpBranch %168 %168 = OpLabel %172 = OpIAdd %uint %171 %uint_1 OpBranch %169 %170 = OpLabel - %179 = OpLoad %_arr_Inner_std140_uint_4_0 %164 None - OpReturnValue %179 + %173 = OpLoad %_arr_Inner_std140_uint_4_0 %164 None + OpReturnValue %173 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %181 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -310,22 +310,22 @@ OpLoopMerge %197 %195 None OpBranch %194 %194 = OpLabel - %200 = OpUGreaterThanEqual %bool %198 %uint_4 - OpSelectionMerge %201 None - OpBranchConditional %200 %202 %201 - %202 = OpLabel + %201 = OpUGreaterThanEqual %bool %198 %uint_4 + OpSelectionMerge %202 None + OpBranchConditional %201 %203 %202 + %203 = OpLabel OpBranch %197 - %201 = OpLabel - %203 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %189 %198 - %205 = OpLoad %Outer_std140_tint_explicit_layout %203 None - %206 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %205 - %207 = OpAccessChain %_ptr_Function_Outer_std140 %191 %198 - OpStore %207 %206 None + %202 = OpLabel + %204 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %189 %198 + %206 = OpLoad %Outer_std140_tint_explicit_layout %204 None + %207 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %206 + %208 = OpAccessChain %_ptr_Function_Outer_std140 %191 %198 + OpStore %208 %207 None OpBranch %195 %195 = OpLabel %199 = OpIAdd %uint %198 %uint_1 OpBranch %196 %197 = OpLabel - %208 = OpLoad %_arr_Outer_std140_uint_4 %191 None - OpReturnValue %208 + %200 = OpLoad %_arr_Outer_std140_uint_4 %191 None + OpReturnValue %200 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.spvasm index 228806e..4f16903 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.spvasm
@@ -81,12 +81,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %50 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %71 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %81 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %104 = OpTypeFunction %Inner %Inner_std140 @@ -103,8 +103,8 @@ %15 = OpLabel %42 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %44 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %50 - %77 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %79 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %81 + %67 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %69 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %71 %16 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %19 = OpAccessChain %_ptr_Uniform_Outer_std140_tint_explicit_layout %16 %uint_3 %22 = OpAccessChain %_ptr_Uniform__arr_Inner_std140_uint_4 %19 %uint_0 @@ -126,56 +126,56 @@ OpLoopMerge %55 %53 None OpBranch %52 %52 = OpLabel - %58 = OpUGreaterThanEqual %bool %56 %uint_4 - OpSelectionMerge %60 None - OpBranchConditional %58 %61 %60 - %61 = OpLabel + %84 = OpUGreaterThanEqual %bool %56 %uint_4 + OpSelectionMerge %86 None + OpBranchConditional %84 %87 %86 + %87 = OpLabel OpBranch %55 - %60 = OpLabel - %62 = OpAccessChain %_ptr_Function_Outer %44 %56 - %64 = OpAccessChain %_ptr_Function_Outer_std140 %42 %56 - %66 = OpLoad %Outer_std140 %64 None - %67 = OpFunctionCall %Outer %tint_convert_Outer %66 - OpStore %62 %67 None + %86 = OpLabel + %88 = OpAccessChain %_ptr_Function_Outer %44 %56 + %90 = OpAccessChain %_ptr_Function_Outer_std140 %42 %56 + %92 = OpLoad %Outer_std140 %90 None + %93 = OpFunctionCall %Outer %tint_convert_Outer %92 + OpStore %88 %93 None OpBranch %53 %53 = OpLabel %57 = OpIAdd %uint %56 %uint_1 OpBranch %54 %55 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %44 None - %70 = OpLoad %Outer_std140_tint_explicit_layout %19 None - %71 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %70 - %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %71 - %74 = OpLoad %_arr_Inner_std140_uint_4 %22 None - %75 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %74 - OpStore %77 %75 - OpBranch %82 - %82 = OpLabel - OpBranch %85 - %85 = OpLabel - %87 = OpPhi %uint %uint_0 %82 %88 %84 - OpLoopMerge %86 %84 None - OpBranch %83 - %83 = OpLabel - %89 = OpUGreaterThanEqual %bool %87 %uint_4 - OpSelectionMerge %90 None - OpBranchConditional %89 %91 %90 - %91 = OpLabel - OpBranch %86 - %90 = OpLabel - %92 = OpAccessChain %_ptr_Function_Inner %79 %87 - %94 = OpAccessChain %_ptr_Function_Inner_std140 %77 %87 - %96 = OpLoad %Inner_std140 %94 None - %97 = OpFunctionCall %Inner %tint_convert_Inner %96 - OpStore %92 %97 None - OpBranch %84 - %84 = OpLabel - %88 = OpIAdd %uint %87 %uint_1 - OpBranch %85 - %86 = OpLabel - %l_a_3_a = OpLoad %_arr_Inner_uint_4 %79 None - %100 = OpLoad %Inner_std140 %24 None - %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %100 + %59 = OpLoad %Outer_std140_tint_explicit_layout %19 None + %60 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %59 + %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %60 + %64 = OpLoad %_arr_Inner_std140_uint_4 %22 None + %65 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %64 + OpStore %67 %65 + OpBranch %72 + %72 = OpLabel + OpBranch %75 + %75 = OpLabel + %77 = OpPhi %uint %uint_0 %72 %78 %74 + OpLoopMerge %76 %74 None + OpBranch %73 + %73 = OpLabel + %94 = OpUGreaterThanEqual %bool %77 %uint_4 + OpSelectionMerge %95 None + OpBranchConditional %94 %96 %95 + %96 = OpLabel + OpBranch %76 + %95 = OpLabel + %97 = OpAccessChain %_ptr_Function_Inner %69 %77 + %99 = OpAccessChain %_ptr_Function_Inner_std140 %67 %77 + %101 = OpLoad %Inner_std140 %99 None + %102 = OpFunctionCall %Inner %tint_convert_Inner %101 + OpStore %97 %102 None + OpBranch %74 + %74 = OpLabel + %78 = OpIAdd %uint %77 %uint_1 + OpBranch %75 + %76 = OpLabel + %l_a_3_a = OpLoad %_arr_Inner_uint_4 %69 None + %80 = OpLoad %Inner_std140 %24 None + %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %80 %l_a_3_a_2_m_1_0 = OpCompositeExtract %float %l_a_3_a_2_m_1 0 OpReturn OpFunctionEnd @@ -192,7 +192,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %112 = OpLabel %114 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %115 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %81 + %115 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %71 %113 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %114 %113 OpBranch %116 @@ -203,25 +203,25 @@ OpLoopMerge %120 %118 None OpBranch %117 %117 = OpLabel - %123 = OpUGreaterThanEqual %bool %121 %uint_4 - OpSelectionMerge %124 None - OpBranchConditional %123 %125 %124 - %125 = OpLabel + %125 = OpUGreaterThanEqual %bool %121 %uint_4 + OpSelectionMerge %126 None + OpBranchConditional %125 %127 %126 + %127 = OpLabel OpBranch %120 - %124 = OpLabel - %126 = OpAccessChain %_ptr_Function_Inner %115 %121 - %127 = OpAccessChain %_ptr_Function_Inner_std140 %114 %121 - %128 = OpLoad %Inner_std140 %127 None - %129 = OpFunctionCall %Inner %tint_convert_Inner %128 - OpStore %126 %129 None + %126 = OpLabel + %128 = OpAccessChain %_ptr_Function_Inner %115 %121 + %129 = OpAccessChain %_ptr_Function_Inner_std140 %114 %121 + %130 = OpLoad %Inner_std140 %129 None + %131 = OpFunctionCall %Inner %tint_convert_Inner %130 + OpStore %128 %131 None OpBranch %118 %118 = OpLabel %122 = OpIAdd %uint %121 %uint_1 OpBranch %119 %120 = OpLabel - %130 = OpLoad %_arr_Inner_uint_4 %115 None - %131 = OpCompositeConstruct %Outer %130 - OpReturnValue %131 + %123 = OpLoad %_arr_Inner_uint_4 %115 None + %124 = OpCompositeConstruct %Outer %123 + OpReturnValue %124 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %133 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -237,23 +237,23 @@ OpLoopMerge %143 %141 None OpBranch %140 %140 = OpLabel - %146 = OpUGreaterThanEqual %bool %144 %uint_4 - OpSelectionMerge %147 None - OpBranchConditional %146 %148 %147 - %148 = OpLabel + %147 = OpUGreaterThanEqual %bool %144 %uint_4 + OpSelectionMerge %148 None + OpBranchConditional %147 %149 %148 + %149 = OpLabel OpBranch %143 - %147 = OpLabel - %149 = OpAccessChain %_ptr_Function_Inner_std140 %135 %144 - %150 = OpLoad %Inner_std140 %149 None - %151 = OpAccessChain %_ptr_Function_Inner_std140 %137 %144 - OpStore %151 %150 None + %148 = OpLabel + %150 = OpAccessChain %_ptr_Function_Inner_std140 %135 %144 + %151 = OpLoad %Inner_std140 %150 None + %152 = OpAccessChain %_ptr_Function_Inner_std140 %137 %144 + OpStore %152 %151 None OpBranch %141 %141 = OpLabel %145 = OpIAdd %uint %144 %uint_1 OpBranch %142 %143 = OpLabel - %152 = OpLoad %_arr_Inner_std140_uint_4_0 %137 None - OpReturnValue %152 + %146 = OpLoad %_arr_Inner_std140_uint_4_0 %137 None + OpReturnValue %146 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %154 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -277,22 +277,22 @@ OpLoopMerge %170 %168 None OpBranch %167 %167 = OpLabel - %173 = OpUGreaterThanEqual %bool %171 %uint_4 - OpSelectionMerge %174 None - OpBranchConditional %173 %175 %174 - %175 = OpLabel + %174 = OpUGreaterThanEqual %bool %171 %uint_4 + OpSelectionMerge %175 None + OpBranchConditional %174 %176 %175 + %176 = OpLabel OpBranch %170 - %174 = OpLabel - %176 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %162 %171 - %178 = OpLoad %Outer_std140_tint_explicit_layout %176 None - %179 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %178 - %180 = OpAccessChain %_ptr_Function_Outer_std140 %164 %171 - OpStore %180 %179 None + %175 = OpLabel + %177 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %162 %171 + %179 = OpLoad %Outer_std140_tint_explicit_layout %177 None + %180 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %179 + %181 = OpAccessChain %_ptr_Function_Outer_std140 %164 %171 + OpStore %181 %180 None OpBranch %168 %168 = OpLabel %172 = OpIAdd %uint %171 %uint_1 OpBranch %169 %170 = OpLabel - %181 = OpLoad %_arr_Outer_std140_uint_4 %164 None - OpReturnValue %181 + %173 = OpLoad %_arr_Outer_std140_uint_4 %164 None + OpReturnValue %173 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.spvasm index 677ac94..664481c 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.spvasm
@@ -69,13 +69,13 @@ %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %49 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float + %uint_1 = OpConstant %uint 1 + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %94 = OpTypeFunction %S %S_std140 %103 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -121,43 +121,43 @@ OpLoopMerge %54 %52 None OpBranch %51 %51 = OpLabel - %57 = OpUGreaterThanEqual %bool %55 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel + %83 = OpUGreaterThanEqual %bool %55 %uint_4 + OpSelectionMerge %85 None + OpBranchConditional %83 %86 %85 + %86 = OpLabel OpBranch %54 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_S %47 %55 - %63 = OpAccessChain %_ptr_Function_S_std140 %45 %55 - %65 = OpLoad %S_std140 %63 None - %66 = OpFunctionCall %S %tint_convert_S %65 - OpStore %61 %66 None + %85 = OpLabel + %87 = OpAccessChain %_ptr_Function_S %47 %55 + %89 = OpAccessChain %_ptr_Function_S_std140 %45 %55 + %91 = OpLoad %S_std140 %89 None + %92 = OpFunctionCall %S %tint_convert_S %91 + OpStore %87 %92 None OpBranch %52 %52 = OpLabel %56 = OpIAdd %uint %55 %uint_1 OpBranch %53 %54 = OpLabel - %69 = OpLoad %_arr_S_uint_4 %47 None - %70 = OpFunctionCall %void %a %69 - %71 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %71 None - %75 = OpFunctionCall %S %tint_convert_S %74 - %76 = OpFunctionCall %void %b %75 - %77 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 - %79 = OpLoad %v2float %77 None - %80 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 - %81 = OpLoad %v2float %80 None - %82 = OpCompositeConstruct %mat2v2float %79 %81 - %83 = OpFunctionCall %void %c %82 - %84 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 - %85 = OpLoad %v2float %84 None - %86 = OpVectorShuffle %v2float %85 %85 1 0 - %87 = OpFunctionCall %void %d %86 - %88 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 - %89 = OpLoad %v2float %88 None - %90 = OpVectorShuffle %v2float %89 %89 1 0 - %91 = OpCompositeExtract %float %90 0 - %92 = OpFunctionCall %void %e %91 + %57 = OpLoad %_arr_S_uint_4 %47 None + %58 = OpFunctionCall %void %a %57 + %59 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %62 = OpLoad %S_std140 %59 None + %63 = OpFunctionCall %S %tint_convert_S %62 + %65 = OpFunctionCall %void %b %63 + %66 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 + %69 = OpLoad %v2float %66 None + %70 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 + %71 = OpLoad %v2float %70 None + %72 = OpCompositeConstruct %mat2v2float %69 %71 + %73 = OpFunctionCall %void %c %72 + %74 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 + %75 = OpLoad %v2float %74 None + %76 = OpVectorShuffle %v2float %75 %75 1 0 + %77 = OpFunctionCall %void %d %76 + %78 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 + %79 = OpLoad %v2float %78 None + %80 = OpVectorShuffle %v2float %79 %79 1 0 + %81 = OpCompositeExtract %float %80 0 + %82 = OpFunctionCall %void %e %81 OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %94 @@ -185,21 +185,21 @@ OpLoopMerge %113 %111 None OpBranch %110 %110 = OpLabel - %116 = OpUGreaterThanEqual %bool %114 %uint_4 - OpSelectionMerge %117 None - OpBranchConditional %116 %118 %117 - %118 = OpLabel + %117 = OpUGreaterThanEqual %bool %114 %uint_4 + OpSelectionMerge %118 None + OpBranchConditional %117 %119 %118 + %119 = OpLabel OpBranch %113 - %117 = OpLabel - %119 = OpAccessChain %_ptr_Function_S_std140 %105 %114 - %120 = OpLoad %S_std140 %119 None - %121 = OpAccessChain %_ptr_Function_S_std140 %107 %114 - OpStore %121 %120 None + %118 = OpLabel + %120 = OpAccessChain %_ptr_Function_S_std140 %105 %114 + %121 = OpLoad %S_std140 %120 None + %122 = OpAccessChain %_ptr_Function_S_std140 %107 %114 + OpStore %122 %121 None OpBranch %111 %111 = OpLabel %115 = OpIAdd %uint %114 %uint_1 OpBranch %112 %113 = OpLabel - %122 = OpLoad %_arr_S_std140_uint_4_0 %107 None - OpReturnValue %122 + %116 = OpLoad %_arr_S_std140_uint_4_0 %107 None + OpReturnValue %116 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.spvasm index 4bf8d64..5591a56 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.spvasm
@@ -57,17 +57,17 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Private_S = OpTypePointer Private %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Private_mat2v2float = OpTypePointer Private %mat2v2float %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float %_ptr_Private_v2float = OpTypePointer Private %v2float + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %74 = OpTypeFunction %S %S_std140 %83 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -88,41 +88,41 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_4 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %63 = OpUGreaterThanEqual %bool %37 %uint_4 + OpSelectionMerge %65 None + OpBranchConditional %63 %66 %65 + %66 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Function_S %30 %37 - %45 = OpAccessChain %_ptr_Function_S_std140 %28 %37 - %47 = OpLoad %S_std140 %45 None - %48 = OpFunctionCall %S %tint_convert_S %47 - OpStore %43 %48 None + %65 = OpLabel + %67 = OpAccessChain %_ptr_Function_S %30 %37 + %69 = OpAccessChain %_ptr_Function_S_std140 %28 %37 + %71 = OpLoad %S_std140 %69 None + %72 = OpFunctionCall %S %tint_convert_S %71 + OpStore %67 %72 None OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel - %51 = OpLoad %_arr_S_uint_4 %30 None - OpStore %p %51 None - %52 = OpAccessChain %_ptr_Private_S %p %uint_1 - %54 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %57 = OpLoad %S_std140 %54 None - %58 = OpFunctionCall %S %tint_convert_S %57 - OpStore %52 %58 None - %59 = OpAccessChain %_ptr_Private_mat2v2float %p %uint_3 %uint_1 - %62 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 - %64 = OpLoad %v2float %62 None - %65 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 - %66 = OpLoad %v2float %65 None - %67 = OpCompositeConstruct %mat2v2float %64 %66 - OpStore %59 %67 None - %68 = OpAccessChain %_ptr_Private_v2float %p %uint_1 %uint_1 %uint_0 - %70 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 - %71 = OpLoad %v2float %70 None - %72 = OpVectorShuffle %v2float %71 %71 1 0 - OpStore %68 %72 None + %39 = OpLoad %_arr_S_uint_4 %30 None + OpStore %p %39 None + %40 = OpAccessChain %_ptr_Private_S %p %uint_1 + %43 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %46 = OpLoad %S_std140 %43 None + %47 = OpFunctionCall %S %tint_convert_S %46 + OpStore %40 %47 None + %49 = OpAccessChain %_ptr_Private_mat2v2float %p %uint_3 %uint_1 + %52 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 + %54 = OpLoad %v2float %52 None + %55 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 + %56 = OpLoad %v2float %55 None + %57 = OpCompositeConstruct %mat2v2float %54 %56 + OpStore %49 %57 None + %58 = OpAccessChain %_ptr_Private_v2float %p %uint_1 %uint_1 %uint_0 + %60 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 + %61 = OpLoad %v2float %60 None + %62 = OpVectorShuffle %v2float %61 %61 1 0 + OpStore %58 %62 None OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %74 @@ -150,21 +150,21 @@ OpLoopMerge %93 %91 None OpBranch %90 %90 = OpLabel - %96 = OpUGreaterThanEqual %bool %94 %uint_4 - OpSelectionMerge %97 None - OpBranchConditional %96 %98 %97 - %98 = OpLabel + %97 = OpUGreaterThanEqual %bool %94 %uint_4 + OpSelectionMerge %98 None + OpBranchConditional %97 %99 %98 + %99 = OpLabel OpBranch %93 - %97 = OpLabel - %99 = OpAccessChain %_ptr_Function_S_std140 %85 %94 - %100 = OpLoad %S_std140 %99 None - %101 = OpAccessChain %_ptr_Function_S_std140 %87 %94 - OpStore %101 %100 None + %98 = OpLabel + %100 = OpAccessChain %_ptr_Function_S_std140 %85 %94 + %101 = OpLoad %S_std140 %100 None + %102 = OpAccessChain %_ptr_Function_S_std140 %87 %94 + OpStore %102 %101 None OpBranch %91 %91 = OpLabel %95 = OpIAdd %uint %94 %uint_1 OpBranch %92 %93 = OpLabel - %102 = OpLoad %_arr_S_std140_uint_4_0 %87 None - OpReturnValue %102 + %96 = OpLoad %_arr_S_std140_uint_4_0 %87 None + OpReturnValue %96 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_storage.wgsl.expected.spvasm index 4f3c0b8..1afb00e 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_storage.wgsl.expected.spvasm
@@ -81,17 +81,17 @@ %_arr_S_uint_4 = OpTypeArray %S %uint_4 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %34 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 + %uint_1 = OpConstant %uint 1 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1 %_ptr_StorageBuffer_mat2v2float = OpTypePointer StorageBuffer %mat2v2float %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float %_ptr_StorageBuffer_v2float = OpTypePointer StorageBuffer %v2float + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %81 = OpTypeFunction %void %_arr_S_uint_4 %100 = OpTypeFunction %void %_arr_uint_uint_1 %S %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int @@ -115,41 +115,41 @@ OpLoopMerge %39 %37 None OpBranch %36 %36 = OpLabel - %42 = OpUGreaterThanEqual %bool %40 %uint_4 - OpSelectionMerge %44 None - OpBranchConditional %42 %45 %44 - %45 = OpLabel + %70 = OpUGreaterThanEqual %bool %40 %uint_4 + OpSelectionMerge %72 None + OpBranchConditional %70 %73 %72 + %73 = OpLabel OpBranch %39 - %44 = OpLabel - %46 = OpAccessChain %_ptr_Function_S %30 %40 - %48 = OpAccessChain %_ptr_Function_S_std140 %28 %40 - %50 = OpLoad %S_std140 %48 None - %51 = OpFunctionCall %S %tint_convert_S %50 - OpStore %46 %51 None + %72 = OpLabel + %74 = OpAccessChain %_ptr_Function_S %30 %40 + %76 = OpAccessChain %_ptr_Function_S_std140 %28 %40 + %78 = OpLoad %S_std140 %76 None + %79 = OpFunctionCall %S %tint_convert_S %78 + OpStore %74 %79 None OpBranch %37 %37 = OpLabel %41 = OpIAdd %uint %40 %uint_1 OpBranch %38 %39 = OpLabel - %54 = OpLoad %_arr_S_uint_4 %30 None - %55 = OpFunctionCall %void %tint_store_and_preserve_padding %54 - %57 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %60 = OpLoad %S_std140 %57 None - %61 = OpFunctionCall %S %tint_convert_S %60 - %63 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 - %64 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %63 %61 - %66 = OpAccessChain %_ptr_StorageBuffer_mat2v2float %11 %uint_0 %uint_3 %uint_1 - %69 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 - %71 = OpLoad %v2float %69 None - %72 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 - %73 = OpLoad %v2float %72 None - %74 = OpCompositeConstruct %mat2v2float %71 %73 - OpStore %66 %74 None - %75 = OpAccessChain %_ptr_StorageBuffer_v2float %11 %uint_0 %uint_1 %uint_1 %uint_0 - %77 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 - %78 = OpLoad %v2float %77 None - %79 = OpVectorShuffle %v2float %78 %78 1 0 - OpStore %75 %79 None + %42 = OpLoad %_arr_S_uint_4 %30 None + %43 = OpFunctionCall %void %tint_store_and_preserve_padding %42 + %45 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %48 = OpLoad %S_std140 %45 None + %49 = OpFunctionCall %S %tint_convert_S %48 + %53 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 + %54 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %53 %49 + %56 = OpAccessChain %_ptr_StorageBuffer_mat2v2float %11 %uint_0 %uint_3 %uint_1 + %59 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 + %61 = OpLoad %v2float %59 None + %62 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 + %63 = OpLoad %v2float %62 None + %64 = OpCompositeConstruct %mat2v2float %61 %63 + OpStore %56 %64 None + %65 = OpAccessChain %_ptr_StorageBuffer_v2float %11 %uint_0 %uint_1 %uint_1 %uint_0 + %67 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 + %68 = OpLoad %v2float %67 None + %69 = OpVectorShuffle %v2float %68 %68 1 0 + OpStore %65 %69 None OpReturn OpFunctionEnd %tint_store_and_preserve_padding = OpFunction %void None %81 @@ -223,21 +223,21 @@ OpLoopMerge %130 %128 None OpBranch %127 %127 = OpLabel - %133 = OpUGreaterThanEqual %bool %131 %uint_4 - OpSelectionMerge %134 None - OpBranchConditional %133 %135 %134 - %135 = OpLabel + %134 = OpUGreaterThanEqual %bool %131 %uint_4 + OpSelectionMerge %135 None + OpBranchConditional %134 %136 %135 + %136 = OpLabel OpBranch %130 - %134 = OpLabel - %136 = OpAccessChain %_ptr_Function_S_std140 %122 %131 - %137 = OpLoad %S_std140 %136 None - %138 = OpAccessChain %_ptr_Function_S_std140 %124 %131 - OpStore %138 %137 None + %135 = OpLabel + %137 = OpAccessChain %_ptr_Function_S_std140 %122 %131 + %138 = OpLoad %S_std140 %137 None + %139 = OpAccessChain %_ptr_Function_S_std140 %124 %131 + OpStore %139 %138 None OpBranch %128 %128 = OpLabel %132 = OpIAdd %uint %131 %uint_1 OpBranch %129 %130 = OpLabel - %139 = OpLoad %_arr_S_std140_uint_4_0 %124 None - OpReturnValue %139 + %133 = OpLoad %_arr_S_std140_uint_4_0 %124 None + OpReturnValue %133 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.spvasm index b963157..0f72db9 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.spvasm
@@ -57,10 +57,6 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %21 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_S = OpTypePointer Workgroup %S - %36 = OpConstantNull %S - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_S_std140_uint_4 = OpTypePointer Uniform %_arr_S_std140_uint_4 @@ -68,14 +64,18 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %52 = OpConstantNull %_arr_S_uint_4 -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 + %44 = OpConstantNull %_arr_S_uint_4 +%_ptr_Workgroup_S = OpTypePointer Workgroup %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %_ptr_Workgroup_mat2v2float = OpTypePointer Workgroup %mat2v2float %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float %_ptr_Workgroup_v2float = OpTypePointer Workgroup %v2float + %bool = OpTypeBool + %80 = OpConstantNull %S +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %91 = OpTypeFunction %void %96 = OpTypeFunction %S %S_std140 %105 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 @@ -84,8 +84,8 @@ %f_inner = OpFunction %void None %21 %tint_local_index = OpFunctionParameter %uint %22 = OpLabel - %48 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function - %50 = OpVariable %_ptr_Function__arr_S_uint_4 Function %52 + %40 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function + %42 = OpVariable %_ptr_Function__arr_S_uint_4 Function %44 OpBranch %23 %23 = OpLabel OpBranch %26 @@ -94,67 +94,67 @@ OpLoopMerge %27 %25 None OpBranch %24 %24 = OpLabel - %30 = OpUGreaterThanEqual %bool %28 %uint_4 - OpSelectionMerge %32 None - OpBranchConditional %30 %33 %32 - %33 = OpLabel + %75 = OpUGreaterThanEqual %bool %28 %uint_4 + OpSelectionMerge %77 None + OpBranchConditional %75 %78 %77 + %78 = OpLabel OpBranch %27 - %32 = OpLabel - %34 = OpAccessChain %_ptr_Workgroup_S %w %28 - OpStore %34 %36 None + %77 = OpLabel + %79 = OpAccessChain %_ptr_Workgroup_S %w %28 + OpStore %79 %80 None OpBranch %25 %25 = OpLabel %29 = OpIAdd %uint %28 %uint_1 OpBranch %26 %27 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %41 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 - %44 = OpLoad %_arr_S_std140_uint_4 %41 None - %45 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %44 - OpStore %48 %45 - OpBranch %53 - %53 = OpLabel - OpBranch %56 - %56 = OpLabel - %58 = OpPhi %uint %uint_0 %53 %59 %55 - OpLoopMerge %57 %55 None - OpBranch %54 - %54 = OpLabel - %60 = OpUGreaterThanEqual %bool %58 %uint_4 - OpSelectionMerge %61 None - OpBranchConditional %60 %62 %61 - %62 = OpLabel - OpBranch %57 - %61 = OpLabel - %63 = OpAccessChain %_ptr_Function_S %50 %58 - %65 = OpAccessChain %_ptr_Function_S_std140 %48 %58 - %67 = OpLoad %S_std140 %65 None - %68 = OpFunctionCall %S %tint_convert_S %67 - OpStore %63 %68 None - OpBranch %55 - %55 = OpLabel - %59 = OpIAdd %uint %58 %uint_1 - OpBranch %56 - %57 = OpLabel - %70 = OpLoad %_arr_S_uint_4 %50 None - OpStore %w %70 None - %71 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 - %72 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %72 None - %75 = OpFunctionCall %S %tint_convert_S %74 - OpStore %71 %75 None - %76 = OpAccessChain %_ptr_Workgroup_mat2v2float %w %uint_3 %uint_1 - %79 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 - %81 = OpLoad %v2float %79 None - %82 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 - %83 = OpLoad %v2float %82 None - %84 = OpCompositeConstruct %mat2v2float %81 %83 - OpStore %76 %84 None - %85 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_1 %uint_1 %uint_0 - %87 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 - %88 = OpLoad %v2float %87 None - %89 = OpVectorShuffle %v2float %88 %88 1 0 - OpStore %85 %89 None + %33 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 + %36 = OpLoad %_arr_S_std140_uint_4 %33 None + %37 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %36 + OpStore %40 %37 + OpBranch %45 + %45 = OpLabel + OpBranch %48 + %48 = OpLabel + %50 = OpPhi %uint %uint_0 %45 %51 %47 + OpLoopMerge %49 %47 None + OpBranch %46 + %46 = OpLabel + %81 = OpUGreaterThanEqual %bool %50 %uint_4 + OpSelectionMerge %82 None + OpBranchConditional %81 %83 %82 + %83 = OpLabel + OpBranch %49 + %82 = OpLabel + %84 = OpAccessChain %_ptr_Function_S %42 %50 + %86 = OpAccessChain %_ptr_Function_S_std140 %40 %50 + %88 = OpLoad %S_std140 %86 None + %89 = OpFunctionCall %S %tint_convert_S %88 + OpStore %84 %89 None + OpBranch %47 + %47 = OpLabel + %51 = OpIAdd %uint %50 %uint_1 + OpBranch %48 + %49 = OpLabel + %52 = OpLoad %_arr_S_uint_4 %42 None + OpStore %w %52 None + %53 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 + %56 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %58 = OpLoad %S_std140 %56 None + %59 = OpFunctionCall %S %tint_convert_S %58 + OpStore %53 %59 None + %61 = OpAccessChain %_ptr_Workgroup_mat2v2float %w %uint_3 %uint_1 + %64 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 + %66 = OpLoad %v2float %64 None + %67 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 + %68 = OpLoad %v2float %67 None + %69 = OpCompositeConstruct %mat2v2float %66 %68 + OpStore %61 %69 None + %70 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_1 %uint_1 %uint_0 + %72 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 + %73 = OpLoad %v2float %72 None + %74 = OpVectorShuffle %v2float %73 %73 1 0 + OpStore %70 %74 None OpReturn OpFunctionEnd %f = OpFunction %void None %91 @@ -188,21 +188,21 @@ OpLoopMerge %115 %113 None OpBranch %112 %112 = OpLabel - %118 = OpUGreaterThanEqual %bool %116 %uint_4 - OpSelectionMerge %119 None - OpBranchConditional %118 %120 %119 - %120 = OpLabel + %119 = OpUGreaterThanEqual %bool %116 %uint_4 + OpSelectionMerge %120 None + OpBranchConditional %119 %121 %120 + %121 = OpLabel OpBranch %115 - %119 = OpLabel - %121 = OpAccessChain %_ptr_Function_S_std140 %107 %116 - %122 = OpLoad %S_std140 %121 None - %123 = OpAccessChain %_ptr_Function_S_std140 %109 %116 - OpStore %123 %122 None + %120 = OpLabel + %122 = OpAccessChain %_ptr_Function_S_std140 %107 %116 + %123 = OpLoad %S_std140 %122 None + %124 = OpAccessChain %_ptr_Function_S_std140 %109 %116 + OpStore %124 %123 None OpBranch %113 %113 = OpLabel %117 = OpIAdd %uint %116 %uint_1 OpBranch %114 %115 = OpLabel - %124 = OpLoad %_arr_S_std140_uint_4_0 %109 None - OpReturnValue %124 + %118 = OpLoad %_arr_S_std140_uint_4_0 %109 None + OpReturnValue %118 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.spvasm index d43be4e..c104b7a 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -94,15 +94,15 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %74 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %95 = OpConstantNull %_arr_Inner_uint_4 + %uint_2 = OpConstant %uint 2 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %105 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 - %uint_2 = OpConstant %uint 2 %132 = OpTypeFunction %Inner %Inner_std140 %139 = OpTypeFunction %Outer %Outer_std140 %161 = OpTypeFunction %_arr_Inner_std140_uint_4_0 %_arr_Inner_std140_uint_4 @@ -126,8 +126,8 @@ %52 = OpVariable %_ptr_Function_mat2v3half Function %66 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %68 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %74 - %101 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %103 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %105 + %91 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %93 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %95 %27 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %30 = OpFunctionCall %int %i %31 = OpBitcast %uint %30 @@ -160,60 +160,60 @@ OpLoopMerge %79 %77 None OpBranch %76 %76 = OpLabel - %82 = OpUGreaterThanEqual %bool %80 %uint_4 - OpSelectionMerge %84 None - OpBranchConditional %82 %85 %84 - %85 = OpLabel + %112 = OpUGreaterThanEqual %bool %80 %uint_4 + OpSelectionMerge %114 None + OpBranchConditional %112 %115 %114 + %115 = OpLabel OpBranch %79 - %84 = OpLabel - %86 = OpAccessChain %_ptr_Function_Outer %68 %80 - %88 = OpAccessChain %_ptr_Function_Outer_std140 %66 %80 - %90 = OpLoad %Outer_std140 %88 None - %91 = OpFunctionCall %Outer %tint_convert_Outer %90 - OpStore %86 %91 None + %114 = OpLabel + %116 = OpAccessChain %_ptr_Function_Outer %68 %80 + %118 = OpAccessChain %_ptr_Function_Outer_std140 %66 %80 + %120 = OpLoad %Outer_std140 %118 None + %121 = OpFunctionCall %Outer %tint_convert_Outer %120 + OpStore %116 %121 None OpBranch %77 %77 = OpLabel %81 = OpIAdd %uint %80 %uint_1 OpBranch %78 %79 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %68 None - %94 = OpLoad %Outer_std140_tint_explicit_layout %35 None - %95 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %94 - %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %95 - %98 = OpLoad %_arr_Inner_std140_uint_4 %37 None - %99 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %98 - OpStore %101 %99 - OpBranch %106 - %106 = OpLabel - OpBranch %109 - %109 = OpLabel - %111 = OpPhi %uint %uint_0 %106 %112 %108 - OpLoopMerge %110 %108 None - OpBranch %107 - %107 = OpLabel - %113 = OpUGreaterThanEqual %bool %111 %uint_4 - OpSelectionMerge %114 None - OpBranchConditional %113 %115 %114 - %115 = OpLabel - OpBranch %110 - %114 = OpLabel - %116 = OpAccessChain %_ptr_Function_Inner %103 %111 - %118 = OpAccessChain %_ptr_Function_Inner_std140 %101 %111 - %120 = OpLoad %Inner_std140 %118 None - %121 = OpFunctionCall %Inner %tint_convert_Inner %120 - OpStore %116 %121 None - OpBranch %108 - %108 = OpLabel - %112 = OpIAdd %uint %111 %uint_1 - OpBranch %109 - %110 = OpLabel - %l_a_i_a = OpLoad %_arr_Inner_uint_4 %103 None - %124 = OpLoad %Inner_std140 %42 None - %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %124 - %126 = OpFunctionCall %int %i - %127 = OpBitcast %uint %126 - %128 = OpExtInst %uint %33 UMin %127 %uint_2 -%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %half %l_a_i_a_i_m_i %128 + %83 = OpLoad %Outer_std140_tint_explicit_layout %35 None + %84 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %83 + %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %84 + %88 = OpLoad %_arr_Inner_std140_uint_4 %37 None + %89 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %88 + OpStore %91 %89 + OpBranch %96 + %96 = OpLabel + OpBranch %99 + %99 = OpLabel + %101 = OpPhi %uint %uint_0 %96 %102 %98 + OpLoopMerge %100 %98 None + OpBranch %97 + %97 = OpLabel + %122 = OpUGreaterThanEqual %bool %101 %uint_4 + OpSelectionMerge %123 None + OpBranchConditional %122 %124 %123 + %124 = OpLabel + OpBranch %100 + %123 = OpLabel + %125 = OpAccessChain %_ptr_Function_Inner %93 %101 + %127 = OpAccessChain %_ptr_Function_Inner_std140 %91 %101 + %129 = OpLoad %Inner_std140 %127 None + %130 = OpFunctionCall %Inner %tint_convert_Inner %129 + OpStore %125 %130 None + OpBranch %98 + %98 = OpLabel + %102 = OpIAdd %uint %101 %uint_1 + OpBranch %99 + %100 = OpLabel + %l_a_i_a = OpLoad %_arr_Inner_uint_4 %93 None + %104 = OpLoad %Inner_std140 %42 None + %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %104 + %107 = OpFunctionCall %int %i + %108 = OpBitcast %uint %107 + %109 = OpExtInst %uint %33 UMin %108 %uint_2 +%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %half %l_a_i_a_i_m_i %109 OpReturn OpFunctionEnd %tint_convert_Inner = OpFunction %Inner None %132 @@ -229,7 +229,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %140 = OpLabel %142 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %143 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %105 + %143 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %95 %141 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %142 %141 OpBranch %144 @@ -240,25 +240,25 @@ OpLoopMerge %148 %146 None OpBranch %145 %145 = OpLabel - %151 = OpUGreaterThanEqual %bool %149 %uint_4 - OpSelectionMerge %152 None - OpBranchConditional %151 %153 %152 - %153 = OpLabel + %153 = OpUGreaterThanEqual %bool %149 %uint_4 + OpSelectionMerge %154 None + OpBranchConditional %153 %155 %154 + %155 = OpLabel OpBranch %148 - %152 = OpLabel - %154 = OpAccessChain %_ptr_Function_Inner %143 %149 - %155 = OpAccessChain %_ptr_Function_Inner_std140 %142 %149 - %156 = OpLoad %Inner_std140 %155 None - %157 = OpFunctionCall %Inner %tint_convert_Inner %156 - OpStore %154 %157 None + %154 = OpLabel + %156 = OpAccessChain %_ptr_Function_Inner %143 %149 + %157 = OpAccessChain %_ptr_Function_Inner_std140 %142 %149 + %158 = OpLoad %Inner_std140 %157 None + %159 = OpFunctionCall %Inner %tint_convert_Inner %158 + OpStore %156 %159 None OpBranch %146 %146 = OpLabel %150 = OpIAdd %uint %149 %uint_1 OpBranch %147 %148 = OpLabel - %158 = OpLoad %_arr_Inner_uint_4 %143 None - %159 = OpCompositeConstruct %Outer %158 - OpReturnValue %159 + %151 = OpLoad %_arr_Inner_uint_4 %143 None + %152 = OpCompositeConstruct %Outer %151 + OpReturnValue %152 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %161 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -274,23 +274,23 @@ OpLoopMerge %171 %169 None OpBranch %168 %168 = OpLabel - %174 = OpUGreaterThanEqual %bool %172 %uint_4 - OpSelectionMerge %175 None - OpBranchConditional %174 %176 %175 - %176 = OpLabel + %175 = OpUGreaterThanEqual %bool %172 %uint_4 + OpSelectionMerge %176 None + OpBranchConditional %175 %177 %176 + %177 = OpLabel OpBranch %171 - %175 = OpLabel - %177 = OpAccessChain %_ptr_Function_Inner_std140 %163 %172 - %178 = OpLoad %Inner_std140 %177 None - %179 = OpAccessChain %_ptr_Function_Inner_std140 %165 %172 - OpStore %179 %178 None + %176 = OpLabel + %178 = OpAccessChain %_ptr_Function_Inner_std140 %163 %172 + %179 = OpLoad %Inner_std140 %178 None + %180 = OpAccessChain %_ptr_Function_Inner_std140 %165 %172 + OpStore %180 %179 None OpBranch %169 %169 = OpLabel %173 = OpIAdd %uint %172 %uint_1 OpBranch %170 %171 = OpLabel - %180 = OpLoad %_arr_Inner_std140_uint_4_0 %165 None - OpReturnValue %180 + %174 = OpLoad %_arr_Inner_std140_uint_4_0 %165 None + OpReturnValue %174 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %182 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -314,22 +314,22 @@ OpLoopMerge %198 %196 None OpBranch %195 %195 = OpLabel - %201 = OpUGreaterThanEqual %bool %199 %uint_4 - OpSelectionMerge %202 None - OpBranchConditional %201 %203 %202 - %203 = OpLabel + %202 = OpUGreaterThanEqual %bool %199 %uint_4 + OpSelectionMerge %203 None + OpBranchConditional %202 %204 %203 + %204 = OpLabel OpBranch %198 - %202 = OpLabel - %204 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %190 %199 - %206 = OpLoad %Outer_std140_tint_explicit_layout %204 None - %207 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %206 - %208 = OpAccessChain %_ptr_Function_Outer_std140 %192 %199 - OpStore %208 %207 None + %203 = OpLabel + %205 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %190 %199 + %207 = OpLoad %Outer_std140_tint_explicit_layout %205 None + %208 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %207 + %209 = OpAccessChain %_ptr_Function_Outer_std140 %192 %199 + OpStore %209 %208 None OpBranch %196 %196 = OpLabel %200 = OpIAdd %uint %199 %uint_1 OpBranch %197 %198 = OpLabel - %209 = OpLoad %_arr_Outer_std140_uint_4 %192 None - OpReturnValue %209 + %201 = OpLoad %_arr_Outer_std140_uint_4 %192 None + OpReturnValue %201 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.spvasm index 00108f5..e201fe6 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.spvasm
@@ -84,12 +84,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %50 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %71 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %81 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %104 = OpTypeFunction %Inner %Inner_std140 @@ -106,8 +106,8 @@ %15 = OpLabel %42 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %44 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %50 - %77 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %79 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %81 + %67 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %69 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %71 %16 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %19 = OpAccessChain %_ptr_Uniform_Outer_std140_tint_explicit_layout %16 %uint_3 %22 = OpAccessChain %_ptr_Uniform__arr_Inner_std140_uint_4 %19 %uint_0 @@ -129,56 +129,56 @@ OpLoopMerge %55 %53 None OpBranch %52 %52 = OpLabel - %58 = OpUGreaterThanEqual %bool %56 %uint_4 - OpSelectionMerge %60 None - OpBranchConditional %58 %61 %60 - %61 = OpLabel + %84 = OpUGreaterThanEqual %bool %56 %uint_4 + OpSelectionMerge %86 None + OpBranchConditional %84 %87 %86 + %87 = OpLabel OpBranch %55 - %60 = OpLabel - %62 = OpAccessChain %_ptr_Function_Outer %44 %56 - %64 = OpAccessChain %_ptr_Function_Outer_std140 %42 %56 - %66 = OpLoad %Outer_std140 %64 None - %67 = OpFunctionCall %Outer %tint_convert_Outer %66 - OpStore %62 %67 None + %86 = OpLabel + %88 = OpAccessChain %_ptr_Function_Outer %44 %56 + %90 = OpAccessChain %_ptr_Function_Outer_std140 %42 %56 + %92 = OpLoad %Outer_std140 %90 None + %93 = OpFunctionCall %Outer %tint_convert_Outer %92 + OpStore %88 %93 None OpBranch %53 %53 = OpLabel %57 = OpIAdd %uint %56 %uint_1 OpBranch %54 %55 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %44 None - %70 = OpLoad %Outer_std140_tint_explicit_layout %19 None - %71 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %70 - %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %71 - %74 = OpLoad %_arr_Inner_std140_uint_4 %22 None - %75 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %74 - OpStore %77 %75 - OpBranch %82 - %82 = OpLabel - OpBranch %85 - %85 = OpLabel - %87 = OpPhi %uint %uint_0 %82 %88 %84 - OpLoopMerge %86 %84 None - OpBranch %83 - %83 = OpLabel - %89 = OpUGreaterThanEqual %bool %87 %uint_4 - OpSelectionMerge %90 None - OpBranchConditional %89 %91 %90 - %91 = OpLabel - OpBranch %86 - %90 = OpLabel - %92 = OpAccessChain %_ptr_Function_Inner %79 %87 - %94 = OpAccessChain %_ptr_Function_Inner_std140 %77 %87 - %96 = OpLoad %Inner_std140 %94 None - %97 = OpFunctionCall %Inner %tint_convert_Inner %96 - OpStore %92 %97 None - OpBranch %84 - %84 = OpLabel - %88 = OpIAdd %uint %87 %uint_1 - OpBranch %85 - %86 = OpLabel - %l_a_3_a = OpLoad %_arr_Inner_uint_4 %79 None - %100 = OpLoad %Inner_std140 %24 None - %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %100 + %59 = OpLoad %Outer_std140_tint_explicit_layout %19 None + %60 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %59 + %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %60 + %64 = OpLoad %_arr_Inner_std140_uint_4 %22 None + %65 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %64 + OpStore %67 %65 + OpBranch %72 + %72 = OpLabel + OpBranch %75 + %75 = OpLabel + %77 = OpPhi %uint %uint_0 %72 %78 %74 + OpLoopMerge %76 %74 None + OpBranch %73 + %73 = OpLabel + %94 = OpUGreaterThanEqual %bool %77 %uint_4 + OpSelectionMerge %95 None + OpBranchConditional %94 %96 %95 + %96 = OpLabel + OpBranch %76 + %95 = OpLabel + %97 = OpAccessChain %_ptr_Function_Inner %69 %77 + %99 = OpAccessChain %_ptr_Function_Inner_std140 %67 %77 + %101 = OpLoad %Inner_std140 %99 None + %102 = OpFunctionCall %Inner %tint_convert_Inner %101 + OpStore %97 %102 None + OpBranch %74 + %74 = OpLabel + %78 = OpIAdd %uint %77 %uint_1 + OpBranch %75 + %76 = OpLabel + %l_a_3_a = OpLoad %_arr_Inner_uint_4 %69 None + %80 = OpLoad %Inner_std140 %24 None + %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %80 %l_a_3_a_2_m_1_0 = OpCompositeExtract %half %l_a_3_a_2_m_1 0 OpReturn OpFunctionEnd @@ -195,7 +195,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %112 = OpLabel %114 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %115 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %81 + %115 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %71 %113 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %114 %113 OpBranch %116 @@ -206,25 +206,25 @@ OpLoopMerge %120 %118 None OpBranch %117 %117 = OpLabel - %123 = OpUGreaterThanEqual %bool %121 %uint_4 - OpSelectionMerge %124 None - OpBranchConditional %123 %125 %124 - %125 = OpLabel + %125 = OpUGreaterThanEqual %bool %121 %uint_4 + OpSelectionMerge %126 None + OpBranchConditional %125 %127 %126 + %127 = OpLabel OpBranch %120 - %124 = OpLabel - %126 = OpAccessChain %_ptr_Function_Inner %115 %121 - %127 = OpAccessChain %_ptr_Function_Inner_std140 %114 %121 - %128 = OpLoad %Inner_std140 %127 None - %129 = OpFunctionCall %Inner %tint_convert_Inner %128 - OpStore %126 %129 None + %126 = OpLabel + %128 = OpAccessChain %_ptr_Function_Inner %115 %121 + %129 = OpAccessChain %_ptr_Function_Inner_std140 %114 %121 + %130 = OpLoad %Inner_std140 %129 None + %131 = OpFunctionCall %Inner %tint_convert_Inner %130 + OpStore %128 %131 None OpBranch %118 %118 = OpLabel %122 = OpIAdd %uint %121 %uint_1 OpBranch %119 %120 = OpLabel - %130 = OpLoad %_arr_Inner_uint_4 %115 None - %131 = OpCompositeConstruct %Outer %130 - OpReturnValue %131 + %123 = OpLoad %_arr_Inner_uint_4 %115 None + %124 = OpCompositeConstruct %Outer %123 + OpReturnValue %124 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %133 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -240,23 +240,23 @@ OpLoopMerge %143 %141 None OpBranch %140 %140 = OpLabel - %146 = OpUGreaterThanEqual %bool %144 %uint_4 - OpSelectionMerge %147 None - OpBranchConditional %146 %148 %147 - %148 = OpLabel + %147 = OpUGreaterThanEqual %bool %144 %uint_4 + OpSelectionMerge %148 None + OpBranchConditional %147 %149 %148 + %149 = OpLabel OpBranch %143 - %147 = OpLabel - %149 = OpAccessChain %_ptr_Function_Inner_std140 %135 %144 - %150 = OpLoad %Inner_std140 %149 None - %151 = OpAccessChain %_ptr_Function_Inner_std140 %137 %144 - OpStore %151 %150 None + %148 = OpLabel + %150 = OpAccessChain %_ptr_Function_Inner_std140 %135 %144 + %151 = OpLoad %Inner_std140 %150 None + %152 = OpAccessChain %_ptr_Function_Inner_std140 %137 %144 + OpStore %152 %151 None OpBranch %141 %141 = OpLabel %145 = OpIAdd %uint %144 %uint_1 OpBranch %142 %143 = OpLabel - %152 = OpLoad %_arr_Inner_std140_uint_4_0 %137 None - OpReturnValue %152 + %146 = OpLoad %_arr_Inner_std140_uint_4_0 %137 None + OpReturnValue %146 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %154 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -280,22 +280,22 @@ OpLoopMerge %170 %168 None OpBranch %167 %167 = OpLabel - %173 = OpUGreaterThanEqual %bool %171 %uint_4 - OpSelectionMerge %174 None - OpBranchConditional %173 %175 %174 - %175 = OpLabel + %174 = OpUGreaterThanEqual %bool %171 %uint_4 + OpSelectionMerge %175 None + OpBranchConditional %174 %176 %175 + %176 = OpLabel OpBranch %170 - %174 = OpLabel - %176 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %162 %171 - %178 = OpLoad %Outer_std140_tint_explicit_layout %176 None - %179 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %178 - %180 = OpAccessChain %_ptr_Function_Outer_std140 %164 %171 - OpStore %180 %179 None + %175 = OpLabel + %177 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %162 %171 + %179 = OpLoad %Outer_std140_tint_explicit_layout %177 None + %180 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %179 + %181 = OpAccessChain %_ptr_Function_Outer_std140 %164 %171 + OpStore %181 %180 None OpBranch %168 %168 = OpLabel %172 = OpIAdd %uint %171 %uint_1 OpBranch %169 %170 = OpLabel - %181 = OpLoad %_arr_Outer_std140_uint_4 %164 None - OpReturnValue %181 + %173 = OpLoad %_arr_Outer_std140_uint_4 %164 None + OpReturnValue %173 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.spvasm index e1be700..3f6d839 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.spvasm
@@ -72,13 +72,13 @@ %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %49 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Uniform_v3half = OpTypePointer Uniform %v3half + %uint_1 = OpConstant %uint 1 + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %94 = OpTypeFunction %S %S_std140 %103 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -124,43 +124,43 @@ OpLoopMerge %54 %52 None OpBranch %51 %51 = OpLabel - %57 = OpUGreaterThanEqual %bool %55 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel + %83 = OpUGreaterThanEqual %bool %55 %uint_4 + OpSelectionMerge %85 None + OpBranchConditional %83 %86 %85 + %86 = OpLabel OpBranch %54 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_S %47 %55 - %63 = OpAccessChain %_ptr_Function_S_std140 %45 %55 - %65 = OpLoad %S_std140 %63 None - %66 = OpFunctionCall %S %tint_convert_S %65 - OpStore %61 %66 None + %85 = OpLabel + %87 = OpAccessChain %_ptr_Function_S %47 %55 + %89 = OpAccessChain %_ptr_Function_S_std140 %45 %55 + %91 = OpLoad %S_std140 %89 None + %92 = OpFunctionCall %S %tint_convert_S %91 + OpStore %87 %92 None OpBranch %52 %52 = OpLabel %56 = OpIAdd %uint %55 %uint_1 OpBranch %53 %54 = OpLabel - %69 = OpLoad %_arr_S_uint_4 %47 None - %70 = OpFunctionCall %void %a %69 - %71 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %71 None - %75 = OpFunctionCall %S %tint_convert_S %74 - %76 = OpFunctionCall %void %b %75 - %77 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 - %79 = OpLoad %v3half %77 None - %80 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 - %81 = OpLoad %v3half %80 None - %82 = OpCompositeConstruct %mat2v3half %79 %81 - %83 = OpFunctionCall %void %c %82 - %84 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 - %85 = OpLoad %v3half %84 None - %86 = OpVectorShuffle %v3half %85 %85 2 0 1 - %87 = OpFunctionCall %void %d %86 - %88 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 - %89 = OpLoad %v3half %88 None - %90 = OpVectorShuffle %v3half %89 %89 2 0 1 - %91 = OpCompositeExtract %half %90 0 - %92 = OpFunctionCall %void %e %91 + %57 = OpLoad %_arr_S_uint_4 %47 None + %58 = OpFunctionCall %void %a %57 + %59 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %62 = OpLoad %S_std140 %59 None + %63 = OpFunctionCall %S %tint_convert_S %62 + %65 = OpFunctionCall %void %b %63 + %66 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 + %69 = OpLoad %v3half %66 None + %70 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 + %71 = OpLoad %v3half %70 None + %72 = OpCompositeConstruct %mat2v3half %69 %71 + %73 = OpFunctionCall %void %c %72 + %74 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 + %75 = OpLoad %v3half %74 None + %76 = OpVectorShuffle %v3half %75 %75 2 0 1 + %77 = OpFunctionCall %void %d %76 + %78 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 + %79 = OpLoad %v3half %78 None + %80 = OpVectorShuffle %v3half %79 %79 2 0 1 + %81 = OpCompositeExtract %half %80 0 + %82 = OpFunctionCall %void %e %81 OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %94 @@ -188,21 +188,21 @@ OpLoopMerge %113 %111 None OpBranch %110 %110 = OpLabel - %116 = OpUGreaterThanEqual %bool %114 %uint_4 - OpSelectionMerge %117 None - OpBranchConditional %116 %118 %117 - %118 = OpLabel + %117 = OpUGreaterThanEqual %bool %114 %uint_4 + OpSelectionMerge %118 None + OpBranchConditional %117 %119 %118 + %119 = OpLabel OpBranch %113 - %117 = OpLabel - %119 = OpAccessChain %_ptr_Function_S_std140 %105 %114 - %120 = OpLoad %S_std140 %119 None - %121 = OpAccessChain %_ptr_Function_S_std140 %107 %114 - OpStore %121 %120 None + %118 = OpLabel + %120 = OpAccessChain %_ptr_Function_S_std140 %105 %114 + %121 = OpLoad %S_std140 %120 None + %122 = OpAccessChain %_ptr_Function_S_std140 %107 %114 + OpStore %122 %121 None OpBranch %111 %111 = OpLabel %115 = OpIAdd %uint %114 %uint_1 OpBranch %112 %113 = OpLabel - %122 = OpLoad %_arr_S_std140_uint_4_0 %107 None - OpReturnValue %122 + %116 = OpLoad %_arr_S_std140_uint_4_0 %107 None + OpReturnValue %116 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.spvasm index e3fbac3..de0414b 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.spvasm
@@ -60,17 +60,17 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Private_S = OpTypePointer Private %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Private_mat2v3half = OpTypePointer Private %mat2v3half %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v3half = OpTypePointer Uniform %v3half %_ptr_Private_v3half = OpTypePointer Private %v3half + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %74 = OpTypeFunction %S %S_std140 %83 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -91,41 +91,41 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_4 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %63 = OpUGreaterThanEqual %bool %37 %uint_4 + OpSelectionMerge %65 None + OpBranchConditional %63 %66 %65 + %66 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Function_S %30 %37 - %45 = OpAccessChain %_ptr_Function_S_std140 %28 %37 - %47 = OpLoad %S_std140 %45 None - %48 = OpFunctionCall %S %tint_convert_S %47 - OpStore %43 %48 None + %65 = OpLabel + %67 = OpAccessChain %_ptr_Function_S %30 %37 + %69 = OpAccessChain %_ptr_Function_S_std140 %28 %37 + %71 = OpLoad %S_std140 %69 None + %72 = OpFunctionCall %S %tint_convert_S %71 + OpStore %67 %72 None OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel - %51 = OpLoad %_arr_S_uint_4 %30 None - OpStore %p %51 None - %52 = OpAccessChain %_ptr_Private_S %p %uint_1 - %54 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %57 = OpLoad %S_std140 %54 None - %58 = OpFunctionCall %S %tint_convert_S %57 - OpStore %52 %58 None - %59 = OpAccessChain %_ptr_Private_mat2v3half %p %uint_3 %uint_1 - %62 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 - %64 = OpLoad %v3half %62 None - %65 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 - %66 = OpLoad %v3half %65 None - %67 = OpCompositeConstruct %mat2v3half %64 %66 - OpStore %59 %67 None - %68 = OpAccessChain %_ptr_Private_v3half %p %uint_1 %uint_1 %uint_0 - %70 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 - %71 = OpLoad %v3half %70 None - %72 = OpVectorShuffle %v3half %71 %71 2 0 1 - OpStore %68 %72 None + %39 = OpLoad %_arr_S_uint_4 %30 None + OpStore %p %39 None + %40 = OpAccessChain %_ptr_Private_S %p %uint_1 + %43 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %46 = OpLoad %S_std140 %43 None + %47 = OpFunctionCall %S %tint_convert_S %46 + OpStore %40 %47 None + %49 = OpAccessChain %_ptr_Private_mat2v3half %p %uint_3 %uint_1 + %52 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 + %54 = OpLoad %v3half %52 None + %55 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 + %56 = OpLoad %v3half %55 None + %57 = OpCompositeConstruct %mat2v3half %54 %56 + OpStore %49 %57 None + %58 = OpAccessChain %_ptr_Private_v3half %p %uint_1 %uint_1 %uint_0 + %60 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 + %61 = OpLoad %v3half %60 None + %62 = OpVectorShuffle %v3half %61 %61 2 0 1 + OpStore %58 %62 None OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %74 @@ -153,21 +153,21 @@ OpLoopMerge %93 %91 None OpBranch %90 %90 = OpLabel - %96 = OpUGreaterThanEqual %bool %94 %uint_4 - OpSelectionMerge %97 None - OpBranchConditional %96 %98 %97 - %98 = OpLabel + %97 = OpUGreaterThanEqual %bool %94 %uint_4 + OpSelectionMerge %98 None + OpBranchConditional %97 %99 %98 + %99 = OpLabel OpBranch %93 - %97 = OpLabel - %99 = OpAccessChain %_ptr_Function_S_std140 %85 %94 - %100 = OpLoad %S_std140 %99 None - %101 = OpAccessChain %_ptr_Function_S_std140 %87 %94 - OpStore %101 %100 None + %98 = OpLabel + %100 = OpAccessChain %_ptr_Function_S_std140 %85 %94 + %101 = OpLoad %S_std140 %100 None + %102 = OpAccessChain %_ptr_Function_S_std140 %87 %94 + OpStore %102 %101 None OpBranch %91 %91 = OpLabel %95 = OpIAdd %uint %94 %uint_1 OpBranch %92 %93 = OpLabel - %102 = OpLoad %_arr_S_std140_uint_4_0 %87 None - OpReturnValue %102 + %96 = OpLoad %_arr_S_std140_uint_4_0 %87 None + OpReturnValue %96 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_storage.wgsl.expected.spvasm index d28ff7f..2cb921b 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_storage.wgsl.expected.spvasm
@@ -87,16 +87,16 @@ %_arr_S_uint_4 = OpTypeArray %S %uint_4 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %34 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 + %uint_1 = OpConstant %uint 1 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1 %_ptr_Uniform_v3half = OpTypePointer Uniform %v3half %uint_3 = OpConstant %uint 3 %_ptr_StorageBuffer_v3half = OpTypePointer StorageBuffer %v3half + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %82 = OpTypeFunction %void %_arr_S_uint_4 %101 = OpTypeFunction %void %_arr_uint_uint_1 %S %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int @@ -121,41 +121,41 @@ OpLoopMerge %39 %37 None OpBranch %36 %36 = OpLabel - %42 = OpUGreaterThanEqual %bool %40 %uint_4 - OpSelectionMerge %44 None - OpBranchConditional %42 %45 %44 - %45 = OpLabel + %71 = OpUGreaterThanEqual %bool %40 %uint_4 + OpSelectionMerge %73 None + OpBranchConditional %71 %74 %73 + %74 = OpLabel OpBranch %39 - %44 = OpLabel - %46 = OpAccessChain %_ptr_Function_S %30 %40 - %48 = OpAccessChain %_ptr_Function_S_std140 %28 %40 - %50 = OpLoad %S_std140 %48 None - %51 = OpFunctionCall %S %tint_convert_S %50 - OpStore %46 %51 None + %73 = OpLabel + %75 = OpAccessChain %_ptr_Function_S %30 %40 + %77 = OpAccessChain %_ptr_Function_S_std140 %28 %40 + %79 = OpLoad %S_std140 %77 None + %80 = OpFunctionCall %S %tint_convert_S %79 + OpStore %75 %80 None OpBranch %37 %37 = OpLabel %41 = OpIAdd %uint %40 %uint_1 OpBranch %38 %39 = OpLabel - %54 = OpLoad %_arr_S_uint_4 %30 None - %55 = OpFunctionCall %void %tint_store_and_preserve_padding %54 - %57 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %60 = OpLoad %S_std140 %57 None - %61 = OpFunctionCall %S %tint_convert_S %60 - %63 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 - %64 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %63 %61 - %66 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 - %68 = OpLoad %v3half %66 None - %69 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 - %70 = OpLoad %v3half %69 None - %71 = OpCompositeConstruct %mat2v3half %68 %70 - %72 = OpCompositeConstruct %_arr_uint_uint_1 %uint_3 - %74 = OpFunctionCall %void %tint_store_and_preserve_padding_1 %72 %71 - %76 = OpAccessChain %_ptr_StorageBuffer_v3half %11 %uint_0 %uint_1 %uint_1 %uint_0 - %78 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 - %79 = OpLoad %v3half %78 None - %80 = OpVectorShuffle %v3half %79 %79 2 0 1 - OpStore %76 %80 None + %42 = OpLoad %_arr_S_uint_4 %30 None + %43 = OpFunctionCall %void %tint_store_and_preserve_padding %42 + %45 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %48 = OpLoad %S_std140 %45 None + %49 = OpFunctionCall %S %tint_convert_S %48 + %53 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 + %54 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %53 %49 + %56 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 + %58 = OpLoad %v3half %56 None + %59 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 + %60 = OpLoad %v3half %59 None + %61 = OpCompositeConstruct %mat2v3half %58 %60 + %62 = OpCompositeConstruct %_arr_uint_uint_1 %uint_3 + %64 = OpFunctionCall %void %tint_store_and_preserve_padding_1 %62 %61 + %66 = OpAccessChain %_ptr_StorageBuffer_v3half %11 %uint_0 %uint_1 %uint_1 %uint_0 + %68 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 + %69 = OpLoad %v3half %68 None + %70 = OpVectorShuffle %v3half %69 %69 2 0 1 + OpStore %66 %70 None OpReturn OpFunctionEnd %tint_store_and_preserve_padding = OpFunction %void None %82 @@ -242,21 +242,21 @@ OpLoopMerge %141 %139 None OpBranch %138 %138 = OpLabel - %144 = OpUGreaterThanEqual %bool %142 %uint_4 - OpSelectionMerge %145 None - OpBranchConditional %144 %146 %145 - %146 = OpLabel + %145 = OpUGreaterThanEqual %bool %142 %uint_4 + OpSelectionMerge %146 None + OpBranchConditional %145 %147 %146 + %147 = OpLabel OpBranch %141 - %145 = OpLabel - %147 = OpAccessChain %_ptr_Function_S_std140 %133 %142 - %148 = OpLoad %S_std140 %147 None - %149 = OpAccessChain %_ptr_Function_S_std140 %135 %142 - OpStore %149 %148 None + %146 = OpLabel + %148 = OpAccessChain %_ptr_Function_S_std140 %133 %142 + %149 = OpLoad %S_std140 %148 None + %150 = OpAccessChain %_ptr_Function_S_std140 %135 %142 + OpStore %150 %149 None OpBranch %139 %139 = OpLabel %143 = OpIAdd %uint %142 %uint_1 OpBranch %140 %141 = OpLabel - %150 = OpLoad %_arr_S_std140_uint_4_0 %135 None - OpReturnValue %150 + %144 = OpLoad %_arr_S_std140_uint_4_0 %135 None + OpReturnValue %144 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.spvasm index b1de3d1..e23d284 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.spvasm
@@ -60,10 +60,6 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %21 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_S = OpTypePointer Workgroup %S - %36 = OpConstantNull %S - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_S_std140_uint_4 = OpTypePointer Uniform %_arr_S_std140_uint_4 @@ -71,14 +67,18 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %52 = OpConstantNull %_arr_S_uint_4 -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 + %44 = OpConstantNull %_arr_S_uint_4 +%_ptr_Workgroup_S = OpTypePointer Workgroup %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %_ptr_Workgroup_mat2v3half = OpTypePointer Workgroup %mat2v3half %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v3half = OpTypePointer Uniform %v3half %_ptr_Workgroup_v3half = OpTypePointer Workgroup %v3half + %bool = OpTypeBool + %80 = OpConstantNull %S +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %91 = OpTypeFunction %void %96 = OpTypeFunction %S %S_std140 %105 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 @@ -87,8 +87,8 @@ %f_inner = OpFunction %void None %21 %tint_local_index = OpFunctionParameter %uint %22 = OpLabel - %48 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function - %50 = OpVariable %_ptr_Function__arr_S_uint_4 Function %52 + %40 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function + %42 = OpVariable %_ptr_Function__arr_S_uint_4 Function %44 OpBranch %23 %23 = OpLabel OpBranch %26 @@ -97,67 +97,67 @@ OpLoopMerge %27 %25 None OpBranch %24 %24 = OpLabel - %30 = OpUGreaterThanEqual %bool %28 %uint_4 - OpSelectionMerge %32 None - OpBranchConditional %30 %33 %32 - %33 = OpLabel + %75 = OpUGreaterThanEqual %bool %28 %uint_4 + OpSelectionMerge %77 None + OpBranchConditional %75 %78 %77 + %78 = OpLabel OpBranch %27 - %32 = OpLabel - %34 = OpAccessChain %_ptr_Workgroup_S %w %28 - OpStore %34 %36 None + %77 = OpLabel + %79 = OpAccessChain %_ptr_Workgroup_S %w %28 + OpStore %79 %80 None OpBranch %25 %25 = OpLabel %29 = OpIAdd %uint %28 %uint_1 OpBranch %26 %27 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %41 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 - %44 = OpLoad %_arr_S_std140_uint_4 %41 None - %45 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %44 - OpStore %48 %45 - OpBranch %53 - %53 = OpLabel - OpBranch %56 - %56 = OpLabel - %58 = OpPhi %uint %uint_0 %53 %59 %55 - OpLoopMerge %57 %55 None - OpBranch %54 - %54 = OpLabel - %60 = OpUGreaterThanEqual %bool %58 %uint_4 - OpSelectionMerge %61 None - OpBranchConditional %60 %62 %61 - %62 = OpLabel - OpBranch %57 - %61 = OpLabel - %63 = OpAccessChain %_ptr_Function_S %50 %58 - %65 = OpAccessChain %_ptr_Function_S_std140 %48 %58 - %67 = OpLoad %S_std140 %65 None - %68 = OpFunctionCall %S %tint_convert_S %67 - OpStore %63 %68 None - OpBranch %55 - %55 = OpLabel - %59 = OpIAdd %uint %58 %uint_1 - OpBranch %56 - %57 = OpLabel - %70 = OpLoad %_arr_S_uint_4 %50 None - OpStore %w %70 None - %71 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 - %72 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %72 None - %75 = OpFunctionCall %S %tint_convert_S %74 - OpStore %71 %75 None - %76 = OpAccessChain %_ptr_Workgroup_mat2v3half %w %uint_3 %uint_1 - %79 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 - %81 = OpLoad %v3half %79 None - %82 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 - %83 = OpLoad %v3half %82 None - %84 = OpCompositeConstruct %mat2v3half %81 %83 - OpStore %76 %84 None - %85 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 %uint_1 %uint_0 - %87 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 - %88 = OpLoad %v3half %87 None - %89 = OpVectorShuffle %v3half %88 %88 2 0 1 - OpStore %85 %89 None + %33 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 + %36 = OpLoad %_arr_S_std140_uint_4 %33 None + %37 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %36 + OpStore %40 %37 + OpBranch %45 + %45 = OpLabel + OpBranch %48 + %48 = OpLabel + %50 = OpPhi %uint %uint_0 %45 %51 %47 + OpLoopMerge %49 %47 None + OpBranch %46 + %46 = OpLabel + %81 = OpUGreaterThanEqual %bool %50 %uint_4 + OpSelectionMerge %82 None + OpBranchConditional %81 %83 %82 + %83 = OpLabel + OpBranch %49 + %82 = OpLabel + %84 = OpAccessChain %_ptr_Function_S %42 %50 + %86 = OpAccessChain %_ptr_Function_S_std140 %40 %50 + %88 = OpLoad %S_std140 %86 None + %89 = OpFunctionCall %S %tint_convert_S %88 + OpStore %84 %89 None + OpBranch %47 + %47 = OpLabel + %51 = OpIAdd %uint %50 %uint_1 + OpBranch %48 + %49 = OpLabel + %52 = OpLoad %_arr_S_uint_4 %42 None + OpStore %w %52 None + %53 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 + %56 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %58 = OpLoad %S_std140 %56 None + %59 = OpFunctionCall %S %tint_convert_S %58 + OpStore %53 %59 None + %61 = OpAccessChain %_ptr_Workgroup_mat2v3half %w %uint_3 %uint_1 + %64 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 + %66 = OpLoad %v3half %64 None + %67 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 + %68 = OpLoad %v3half %67 None + %69 = OpCompositeConstruct %mat2v3half %66 %68 + OpStore %61 %69 None + %70 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 %uint_1 %uint_0 + %72 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 + %73 = OpLoad %v3half %72 None + %74 = OpVectorShuffle %v3half %73 %73 2 0 1 + OpStore %70 %74 None OpReturn OpFunctionEnd %f = OpFunction %void None %91 @@ -191,21 +191,21 @@ OpLoopMerge %115 %113 None OpBranch %112 %112 = OpLabel - %118 = OpUGreaterThanEqual %bool %116 %uint_4 - OpSelectionMerge %119 None - OpBranchConditional %118 %120 %119 - %120 = OpLabel + %119 = OpUGreaterThanEqual %bool %116 %uint_4 + OpSelectionMerge %120 None + OpBranchConditional %119 %121 %120 + %121 = OpLabel OpBranch %115 - %119 = OpLabel - %121 = OpAccessChain %_ptr_Function_S_std140 %107 %116 - %122 = OpLoad %S_std140 %121 None - %123 = OpAccessChain %_ptr_Function_S_std140 %109 %116 - OpStore %123 %122 None + %120 = OpLabel + %122 = OpAccessChain %_ptr_Function_S_std140 %107 %116 + %123 = OpLoad %S_std140 %122 None + %124 = OpAccessChain %_ptr_Function_S_std140 %109 %116 + OpStore %124 %123 None OpBranch %113 %113 = OpLabel %117 = OpIAdd %uint %116 %uint_1 OpBranch %114 %115 = OpLabel - %124 = OpLoad %_arr_S_std140_uint_4_0 %109 None - OpReturnValue %124 + %118 = OpLoad %_arr_S_std140_uint_4_0 %109 None + OpReturnValue %118 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.spvasm index 13345a5..aa98529 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -91,15 +91,15 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %74 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %95 = OpConstantNull %_arr_Inner_uint_4 + %uint_2 = OpConstant %uint 2 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %105 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 - %uint_2 = OpConstant %uint 2 %132 = OpTypeFunction %Inner %Inner_std140 %139 = OpTypeFunction %Outer %Outer_std140 %161 = OpTypeFunction %_arr_Inner_std140_uint_4_0 %_arr_Inner_std140_uint_4 @@ -123,8 +123,8 @@ %52 = OpVariable %_ptr_Function_mat2v3float Function %66 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %68 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %74 - %101 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %103 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %105 + %91 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %93 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %95 %27 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %30 = OpFunctionCall %int %i %31 = OpBitcast %uint %30 @@ -157,60 +157,60 @@ OpLoopMerge %79 %77 None OpBranch %76 %76 = OpLabel - %82 = OpUGreaterThanEqual %bool %80 %uint_4 - OpSelectionMerge %84 None - OpBranchConditional %82 %85 %84 - %85 = OpLabel + %112 = OpUGreaterThanEqual %bool %80 %uint_4 + OpSelectionMerge %114 None + OpBranchConditional %112 %115 %114 + %115 = OpLabel OpBranch %79 - %84 = OpLabel - %86 = OpAccessChain %_ptr_Function_Outer %68 %80 - %88 = OpAccessChain %_ptr_Function_Outer_std140 %66 %80 - %90 = OpLoad %Outer_std140 %88 None - %91 = OpFunctionCall %Outer %tint_convert_Outer %90 - OpStore %86 %91 None + %114 = OpLabel + %116 = OpAccessChain %_ptr_Function_Outer %68 %80 + %118 = OpAccessChain %_ptr_Function_Outer_std140 %66 %80 + %120 = OpLoad %Outer_std140 %118 None + %121 = OpFunctionCall %Outer %tint_convert_Outer %120 + OpStore %116 %121 None OpBranch %77 %77 = OpLabel %81 = OpIAdd %uint %80 %uint_1 OpBranch %78 %79 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %68 None - %94 = OpLoad %Outer_std140_tint_explicit_layout %35 None - %95 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %94 - %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %95 - %98 = OpLoad %_arr_Inner_std140_uint_4 %37 None - %99 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %98 - OpStore %101 %99 - OpBranch %106 - %106 = OpLabel - OpBranch %109 - %109 = OpLabel - %111 = OpPhi %uint %uint_0 %106 %112 %108 - OpLoopMerge %110 %108 None - OpBranch %107 - %107 = OpLabel - %113 = OpUGreaterThanEqual %bool %111 %uint_4 - OpSelectionMerge %114 None - OpBranchConditional %113 %115 %114 - %115 = OpLabel - OpBranch %110 - %114 = OpLabel - %116 = OpAccessChain %_ptr_Function_Inner %103 %111 - %118 = OpAccessChain %_ptr_Function_Inner_std140 %101 %111 - %120 = OpLoad %Inner_std140 %118 None - %121 = OpFunctionCall %Inner %tint_convert_Inner %120 - OpStore %116 %121 None - OpBranch %108 - %108 = OpLabel - %112 = OpIAdd %uint %111 %uint_1 - OpBranch %109 - %110 = OpLabel - %l_a_i_a = OpLoad %_arr_Inner_uint_4 %103 None - %124 = OpLoad %Inner_std140 %42 None - %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %124 - %126 = OpFunctionCall %int %i - %127 = OpBitcast %uint %126 - %128 = OpExtInst %uint %33 UMin %127 %uint_2 -%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %float %l_a_i_a_i_m_i %128 + %83 = OpLoad %Outer_std140_tint_explicit_layout %35 None + %84 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %83 + %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %84 + %88 = OpLoad %_arr_Inner_std140_uint_4 %37 None + %89 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %88 + OpStore %91 %89 + OpBranch %96 + %96 = OpLabel + OpBranch %99 + %99 = OpLabel + %101 = OpPhi %uint %uint_0 %96 %102 %98 + OpLoopMerge %100 %98 None + OpBranch %97 + %97 = OpLabel + %122 = OpUGreaterThanEqual %bool %101 %uint_4 + OpSelectionMerge %123 None + OpBranchConditional %122 %124 %123 + %124 = OpLabel + OpBranch %100 + %123 = OpLabel + %125 = OpAccessChain %_ptr_Function_Inner %93 %101 + %127 = OpAccessChain %_ptr_Function_Inner_std140 %91 %101 + %129 = OpLoad %Inner_std140 %127 None + %130 = OpFunctionCall %Inner %tint_convert_Inner %129 + OpStore %125 %130 None + OpBranch %98 + %98 = OpLabel + %102 = OpIAdd %uint %101 %uint_1 + OpBranch %99 + %100 = OpLabel + %l_a_i_a = OpLoad %_arr_Inner_uint_4 %93 None + %104 = OpLoad %Inner_std140 %42 None + %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %104 + %107 = OpFunctionCall %int %i + %108 = OpBitcast %uint %107 + %109 = OpExtInst %uint %33 UMin %108 %uint_2 +%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %float %l_a_i_a_i_m_i %109 OpReturn OpFunctionEnd %tint_convert_Inner = OpFunction %Inner None %132 @@ -226,7 +226,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %140 = OpLabel %142 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %143 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %105 + %143 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %95 %141 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %142 %141 OpBranch %144 @@ -237,25 +237,25 @@ OpLoopMerge %148 %146 None OpBranch %145 %145 = OpLabel - %151 = OpUGreaterThanEqual %bool %149 %uint_4 - OpSelectionMerge %152 None - OpBranchConditional %151 %153 %152 - %153 = OpLabel + %153 = OpUGreaterThanEqual %bool %149 %uint_4 + OpSelectionMerge %154 None + OpBranchConditional %153 %155 %154 + %155 = OpLabel OpBranch %148 - %152 = OpLabel - %154 = OpAccessChain %_ptr_Function_Inner %143 %149 - %155 = OpAccessChain %_ptr_Function_Inner_std140 %142 %149 - %156 = OpLoad %Inner_std140 %155 None - %157 = OpFunctionCall %Inner %tint_convert_Inner %156 - OpStore %154 %157 None + %154 = OpLabel + %156 = OpAccessChain %_ptr_Function_Inner %143 %149 + %157 = OpAccessChain %_ptr_Function_Inner_std140 %142 %149 + %158 = OpLoad %Inner_std140 %157 None + %159 = OpFunctionCall %Inner %tint_convert_Inner %158 + OpStore %156 %159 None OpBranch %146 %146 = OpLabel %150 = OpIAdd %uint %149 %uint_1 OpBranch %147 %148 = OpLabel - %158 = OpLoad %_arr_Inner_uint_4 %143 None - %159 = OpCompositeConstruct %Outer %158 - OpReturnValue %159 + %151 = OpLoad %_arr_Inner_uint_4 %143 None + %152 = OpCompositeConstruct %Outer %151 + OpReturnValue %152 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %161 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -271,23 +271,23 @@ OpLoopMerge %171 %169 None OpBranch %168 %168 = OpLabel - %174 = OpUGreaterThanEqual %bool %172 %uint_4 - OpSelectionMerge %175 None - OpBranchConditional %174 %176 %175 - %176 = OpLabel + %175 = OpUGreaterThanEqual %bool %172 %uint_4 + OpSelectionMerge %176 None + OpBranchConditional %175 %177 %176 + %177 = OpLabel OpBranch %171 - %175 = OpLabel - %177 = OpAccessChain %_ptr_Function_Inner_std140 %163 %172 - %178 = OpLoad %Inner_std140 %177 None - %179 = OpAccessChain %_ptr_Function_Inner_std140 %165 %172 - OpStore %179 %178 None + %176 = OpLabel + %178 = OpAccessChain %_ptr_Function_Inner_std140 %163 %172 + %179 = OpLoad %Inner_std140 %178 None + %180 = OpAccessChain %_ptr_Function_Inner_std140 %165 %172 + OpStore %180 %179 None OpBranch %169 %169 = OpLabel %173 = OpIAdd %uint %172 %uint_1 OpBranch %170 %171 = OpLabel - %180 = OpLoad %_arr_Inner_std140_uint_4_0 %165 None - OpReturnValue %180 + %174 = OpLoad %_arr_Inner_std140_uint_4_0 %165 None + OpReturnValue %174 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %182 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -311,22 +311,22 @@ OpLoopMerge %198 %196 None OpBranch %195 %195 = OpLabel - %201 = OpUGreaterThanEqual %bool %199 %uint_4 - OpSelectionMerge %202 None - OpBranchConditional %201 %203 %202 - %203 = OpLabel + %202 = OpUGreaterThanEqual %bool %199 %uint_4 + OpSelectionMerge %203 None + OpBranchConditional %202 %204 %203 + %204 = OpLabel OpBranch %198 - %202 = OpLabel - %204 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %190 %199 - %206 = OpLoad %Outer_std140_tint_explicit_layout %204 None - %207 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %206 - %208 = OpAccessChain %_ptr_Function_Outer_std140 %192 %199 - OpStore %208 %207 None + %203 = OpLabel + %205 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %190 %199 + %207 = OpLoad %Outer_std140_tint_explicit_layout %205 None + %208 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %207 + %209 = OpAccessChain %_ptr_Function_Outer_std140 %192 %199 + OpStore %209 %208 None OpBranch %196 %196 = OpLabel %200 = OpIAdd %uint %199 %uint_1 OpBranch %197 %198 = OpLabel - %209 = OpLoad %_arr_Outer_std140_uint_4 %192 None - OpReturnValue %209 + %201 = OpLoad %_arr_Outer_std140_uint_4 %192 None + OpReturnValue %201 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.spvasm index bef5791..e6069ba 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.spvasm
@@ -81,12 +81,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %50 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %71 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %81 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %104 = OpTypeFunction %Inner %Inner_std140 @@ -103,8 +103,8 @@ %15 = OpLabel %42 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %44 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %50 - %77 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %79 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %81 + %67 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %69 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %71 %16 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %19 = OpAccessChain %_ptr_Uniform_Outer_std140_tint_explicit_layout %16 %uint_3 %22 = OpAccessChain %_ptr_Uniform__arr_Inner_std140_uint_4 %19 %uint_0 @@ -126,56 +126,56 @@ OpLoopMerge %55 %53 None OpBranch %52 %52 = OpLabel - %58 = OpUGreaterThanEqual %bool %56 %uint_4 - OpSelectionMerge %60 None - OpBranchConditional %58 %61 %60 - %61 = OpLabel + %84 = OpUGreaterThanEqual %bool %56 %uint_4 + OpSelectionMerge %86 None + OpBranchConditional %84 %87 %86 + %87 = OpLabel OpBranch %55 - %60 = OpLabel - %62 = OpAccessChain %_ptr_Function_Outer %44 %56 - %64 = OpAccessChain %_ptr_Function_Outer_std140 %42 %56 - %66 = OpLoad %Outer_std140 %64 None - %67 = OpFunctionCall %Outer %tint_convert_Outer %66 - OpStore %62 %67 None + %86 = OpLabel + %88 = OpAccessChain %_ptr_Function_Outer %44 %56 + %90 = OpAccessChain %_ptr_Function_Outer_std140 %42 %56 + %92 = OpLoad %Outer_std140 %90 None + %93 = OpFunctionCall %Outer %tint_convert_Outer %92 + OpStore %88 %93 None OpBranch %53 %53 = OpLabel %57 = OpIAdd %uint %56 %uint_1 OpBranch %54 %55 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %44 None - %70 = OpLoad %Outer_std140_tint_explicit_layout %19 None - %71 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %70 - %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %71 - %74 = OpLoad %_arr_Inner_std140_uint_4 %22 None - %75 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %74 - OpStore %77 %75 - OpBranch %82 - %82 = OpLabel - OpBranch %85 - %85 = OpLabel - %87 = OpPhi %uint %uint_0 %82 %88 %84 - OpLoopMerge %86 %84 None - OpBranch %83 - %83 = OpLabel - %89 = OpUGreaterThanEqual %bool %87 %uint_4 - OpSelectionMerge %90 None - OpBranchConditional %89 %91 %90 - %91 = OpLabel - OpBranch %86 - %90 = OpLabel - %92 = OpAccessChain %_ptr_Function_Inner %79 %87 - %94 = OpAccessChain %_ptr_Function_Inner_std140 %77 %87 - %96 = OpLoad %Inner_std140 %94 None - %97 = OpFunctionCall %Inner %tint_convert_Inner %96 - OpStore %92 %97 None - OpBranch %84 - %84 = OpLabel - %88 = OpIAdd %uint %87 %uint_1 - OpBranch %85 - %86 = OpLabel - %l_a_3_a = OpLoad %_arr_Inner_uint_4 %79 None - %100 = OpLoad %Inner_std140 %24 None - %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %100 + %59 = OpLoad %Outer_std140_tint_explicit_layout %19 None + %60 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %59 + %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %60 + %64 = OpLoad %_arr_Inner_std140_uint_4 %22 None + %65 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %64 + OpStore %67 %65 + OpBranch %72 + %72 = OpLabel + OpBranch %75 + %75 = OpLabel + %77 = OpPhi %uint %uint_0 %72 %78 %74 + OpLoopMerge %76 %74 None + OpBranch %73 + %73 = OpLabel + %94 = OpUGreaterThanEqual %bool %77 %uint_4 + OpSelectionMerge %95 None + OpBranchConditional %94 %96 %95 + %96 = OpLabel + OpBranch %76 + %95 = OpLabel + %97 = OpAccessChain %_ptr_Function_Inner %69 %77 + %99 = OpAccessChain %_ptr_Function_Inner_std140 %67 %77 + %101 = OpLoad %Inner_std140 %99 None + %102 = OpFunctionCall %Inner %tint_convert_Inner %101 + OpStore %97 %102 None + OpBranch %74 + %74 = OpLabel + %78 = OpIAdd %uint %77 %uint_1 + OpBranch %75 + %76 = OpLabel + %l_a_3_a = OpLoad %_arr_Inner_uint_4 %69 None + %80 = OpLoad %Inner_std140 %24 None + %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %80 %l_a_3_a_2_m_1_0 = OpCompositeExtract %float %l_a_3_a_2_m_1 0 OpReturn OpFunctionEnd @@ -192,7 +192,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %112 = OpLabel %114 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %115 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %81 + %115 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %71 %113 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %114 %113 OpBranch %116 @@ -203,25 +203,25 @@ OpLoopMerge %120 %118 None OpBranch %117 %117 = OpLabel - %123 = OpUGreaterThanEqual %bool %121 %uint_4 - OpSelectionMerge %124 None - OpBranchConditional %123 %125 %124 - %125 = OpLabel + %125 = OpUGreaterThanEqual %bool %121 %uint_4 + OpSelectionMerge %126 None + OpBranchConditional %125 %127 %126 + %127 = OpLabel OpBranch %120 - %124 = OpLabel - %126 = OpAccessChain %_ptr_Function_Inner %115 %121 - %127 = OpAccessChain %_ptr_Function_Inner_std140 %114 %121 - %128 = OpLoad %Inner_std140 %127 None - %129 = OpFunctionCall %Inner %tint_convert_Inner %128 - OpStore %126 %129 None + %126 = OpLabel + %128 = OpAccessChain %_ptr_Function_Inner %115 %121 + %129 = OpAccessChain %_ptr_Function_Inner_std140 %114 %121 + %130 = OpLoad %Inner_std140 %129 None + %131 = OpFunctionCall %Inner %tint_convert_Inner %130 + OpStore %128 %131 None OpBranch %118 %118 = OpLabel %122 = OpIAdd %uint %121 %uint_1 OpBranch %119 %120 = OpLabel - %130 = OpLoad %_arr_Inner_uint_4 %115 None - %131 = OpCompositeConstruct %Outer %130 - OpReturnValue %131 + %123 = OpLoad %_arr_Inner_uint_4 %115 None + %124 = OpCompositeConstruct %Outer %123 + OpReturnValue %124 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %133 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -237,23 +237,23 @@ OpLoopMerge %143 %141 None OpBranch %140 %140 = OpLabel - %146 = OpUGreaterThanEqual %bool %144 %uint_4 - OpSelectionMerge %147 None - OpBranchConditional %146 %148 %147 - %148 = OpLabel + %147 = OpUGreaterThanEqual %bool %144 %uint_4 + OpSelectionMerge %148 None + OpBranchConditional %147 %149 %148 + %149 = OpLabel OpBranch %143 - %147 = OpLabel - %149 = OpAccessChain %_ptr_Function_Inner_std140 %135 %144 - %150 = OpLoad %Inner_std140 %149 None - %151 = OpAccessChain %_ptr_Function_Inner_std140 %137 %144 - OpStore %151 %150 None + %148 = OpLabel + %150 = OpAccessChain %_ptr_Function_Inner_std140 %135 %144 + %151 = OpLoad %Inner_std140 %150 None + %152 = OpAccessChain %_ptr_Function_Inner_std140 %137 %144 + OpStore %152 %151 None OpBranch %141 %141 = OpLabel %145 = OpIAdd %uint %144 %uint_1 OpBranch %142 %143 = OpLabel - %152 = OpLoad %_arr_Inner_std140_uint_4_0 %137 None - OpReturnValue %152 + %146 = OpLoad %_arr_Inner_std140_uint_4_0 %137 None + OpReturnValue %146 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %154 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -277,22 +277,22 @@ OpLoopMerge %170 %168 None OpBranch %167 %167 = OpLabel - %173 = OpUGreaterThanEqual %bool %171 %uint_4 - OpSelectionMerge %174 None - OpBranchConditional %173 %175 %174 - %175 = OpLabel + %174 = OpUGreaterThanEqual %bool %171 %uint_4 + OpSelectionMerge %175 None + OpBranchConditional %174 %176 %175 + %176 = OpLabel OpBranch %170 - %174 = OpLabel - %176 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %162 %171 - %178 = OpLoad %Outer_std140_tint_explicit_layout %176 None - %179 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %178 - %180 = OpAccessChain %_ptr_Function_Outer_std140 %164 %171 - OpStore %180 %179 None + %175 = OpLabel + %177 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %162 %171 + %179 = OpLoad %Outer_std140_tint_explicit_layout %177 None + %180 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %179 + %181 = OpAccessChain %_ptr_Function_Outer_std140 %164 %171 + OpStore %181 %180 None OpBranch %168 %168 = OpLabel %172 = OpIAdd %uint %171 %uint_1 OpBranch %169 %170 = OpLabel - %181 = OpLoad %_arr_Outer_std140_uint_4 %164 None - OpReturnValue %181 + %173 = OpLoad %_arr_Outer_std140_uint_4 %164 None + OpReturnValue %173 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.spvasm index 4f5ffc2..dc43601 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.spvasm
@@ -69,13 +69,13 @@ %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %49 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float + %uint_1 = OpConstant %uint 1 + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %94 = OpTypeFunction %S %S_std140 %103 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -121,43 +121,43 @@ OpLoopMerge %54 %52 None OpBranch %51 %51 = OpLabel - %57 = OpUGreaterThanEqual %bool %55 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel + %83 = OpUGreaterThanEqual %bool %55 %uint_4 + OpSelectionMerge %85 None + OpBranchConditional %83 %86 %85 + %86 = OpLabel OpBranch %54 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_S %47 %55 - %63 = OpAccessChain %_ptr_Function_S_std140 %45 %55 - %65 = OpLoad %S_std140 %63 None - %66 = OpFunctionCall %S %tint_convert_S %65 - OpStore %61 %66 None + %85 = OpLabel + %87 = OpAccessChain %_ptr_Function_S %47 %55 + %89 = OpAccessChain %_ptr_Function_S_std140 %45 %55 + %91 = OpLoad %S_std140 %89 None + %92 = OpFunctionCall %S %tint_convert_S %91 + OpStore %87 %92 None OpBranch %52 %52 = OpLabel %56 = OpIAdd %uint %55 %uint_1 OpBranch %53 %54 = OpLabel - %69 = OpLoad %_arr_S_uint_4 %47 None - %70 = OpFunctionCall %void %a %69 - %71 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %71 None - %75 = OpFunctionCall %S %tint_convert_S %74 - %76 = OpFunctionCall %void %b %75 - %77 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 - %79 = OpLoad %v3float %77 None - %80 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 - %81 = OpLoad %v3float %80 None - %82 = OpCompositeConstruct %mat2v3float %79 %81 - %83 = OpFunctionCall %void %c %82 - %84 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 - %85 = OpLoad %v3float %84 None - %86 = OpVectorShuffle %v3float %85 %85 2 0 1 - %87 = OpFunctionCall %void %d %86 - %88 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 - %89 = OpLoad %v3float %88 None - %90 = OpVectorShuffle %v3float %89 %89 2 0 1 - %91 = OpCompositeExtract %float %90 0 - %92 = OpFunctionCall %void %e %91 + %57 = OpLoad %_arr_S_uint_4 %47 None + %58 = OpFunctionCall %void %a %57 + %59 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %62 = OpLoad %S_std140 %59 None + %63 = OpFunctionCall %S %tint_convert_S %62 + %65 = OpFunctionCall %void %b %63 + %66 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 + %69 = OpLoad %v3float %66 None + %70 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 + %71 = OpLoad %v3float %70 None + %72 = OpCompositeConstruct %mat2v3float %69 %71 + %73 = OpFunctionCall %void %c %72 + %74 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 + %75 = OpLoad %v3float %74 None + %76 = OpVectorShuffle %v3float %75 %75 2 0 1 + %77 = OpFunctionCall %void %d %76 + %78 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 + %79 = OpLoad %v3float %78 None + %80 = OpVectorShuffle %v3float %79 %79 2 0 1 + %81 = OpCompositeExtract %float %80 0 + %82 = OpFunctionCall %void %e %81 OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %94 @@ -185,21 +185,21 @@ OpLoopMerge %113 %111 None OpBranch %110 %110 = OpLabel - %116 = OpUGreaterThanEqual %bool %114 %uint_4 - OpSelectionMerge %117 None - OpBranchConditional %116 %118 %117 - %118 = OpLabel + %117 = OpUGreaterThanEqual %bool %114 %uint_4 + OpSelectionMerge %118 None + OpBranchConditional %117 %119 %118 + %119 = OpLabel OpBranch %113 - %117 = OpLabel - %119 = OpAccessChain %_ptr_Function_S_std140 %105 %114 - %120 = OpLoad %S_std140 %119 None - %121 = OpAccessChain %_ptr_Function_S_std140 %107 %114 - OpStore %121 %120 None + %118 = OpLabel + %120 = OpAccessChain %_ptr_Function_S_std140 %105 %114 + %121 = OpLoad %S_std140 %120 None + %122 = OpAccessChain %_ptr_Function_S_std140 %107 %114 + OpStore %122 %121 None OpBranch %111 %111 = OpLabel %115 = OpIAdd %uint %114 %uint_1 OpBranch %112 %113 = OpLabel - %122 = OpLoad %_arr_S_std140_uint_4_0 %107 None - OpReturnValue %122 + %116 = OpLoad %_arr_S_std140_uint_4_0 %107 None + OpReturnValue %116 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.spvasm index 0ae9acd..8815318 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.spvasm
@@ -57,17 +57,17 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Private_S = OpTypePointer Private %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Private_mat2v3float = OpTypePointer Private %mat2v3float %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float %_ptr_Private_v3float = OpTypePointer Private %v3float + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %74 = OpTypeFunction %S %S_std140 %83 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -88,41 +88,41 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_4 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %63 = OpUGreaterThanEqual %bool %37 %uint_4 + OpSelectionMerge %65 None + OpBranchConditional %63 %66 %65 + %66 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Function_S %30 %37 - %45 = OpAccessChain %_ptr_Function_S_std140 %28 %37 - %47 = OpLoad %S_std140 %45 None - %48 = OpFunctionCall %S %tint_convert_S %47 - OpStore %43 %48 None + %65 = OpLabel + %67 = OpAccessChain %_ptr_Function_S %30 %37 + %69 = OpAccessChain %_ptr_Function_S_std140 %28 %37 + %71 = OpLoad %S_std140 %69 None + %72 = OpFunctionCall %S %tint_convert_S %71 + OpStore %67 %72 None OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel - %51 = OpLoad %_arr_S_uint_4 %30 None - OpStore %p %51 None - %52 = OpAccessChain %_ptr_Private_S %p %uint_1 - %54 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %57 = OpLoad %S_std140 %54 None - %58 = OpFunctionCall %S %tint_convert_S %57 - OpStore %52 %58 None - %59 = OpAccessChain %_ptr_Private_mat2v3float %p %uint_3 %uint_1 - %62 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 - %64 = OpLoad %v3float %62 None - %65 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 - %66 = OpLoad %v3float %65 None - %67 = OpCompositeConstruct %mat2v3float %64 %66 - OpStore %59 %67 None - %68 = OpAccessChain %_ptr_Private_v3float %p %uint_1 %uint_1 %uint_0 - %70 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 - %71 = OpLoad %v3float %70 None - %72 = OpVectorShuffle %v3float %71 %71 2 0 1 - OpStore %68 %72 None + %39 = OpLoad %_arr_S_uint_4 %30 None + OpStore %p %39 None + %40 = OpAccessChain %_ptr_Private_S %p %uint_1 + %43 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %46 = OpLoad %S_std140 %43 None + %47 = OpFunctionCall %S %tint_convert_S %46 + OpStore %40 %47 None + %49 = OpAccessChain %_ptr_Private_mat2v3float %p %uint_3 %uint_1 + %52 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 + %54 = OpLoad %v3float %52 None + %55 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 + %56 = OpLoad %v3float %55 None + %57 = OpCompositeConstruct %mat2v3float %54 %56 + OpStore %49 %57 None + %58 = OpAccessChain %_ptr_Private_v3float %p %uint_1 %uint_1 %uint_0 + %60 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 + %61 = OpLoad %v3float %60 None + %62 = OpVectorShuffle %v3float %61 %61 2 0 1 + OpStore %58 %62 None OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %74 @@ -150,21 +150,21 @@ OpLoopMerge %93 %91 None OpBranch %90 %90 = OpLabel - %96 = OpUGreaterThanEqual %bool %94 %uint_4 - OpSelectionMerge %97 None - OpBranchConditional %96 %98 %97 - %98 = OpLabel + %97 = OpUGreaterThanEqual %bool %94 %uint_4 + OpSelectionMerge %98 None + OpBranchConditional %97 %99 %98 + %99 = OpLabel OpBranch %93 - %97 = OpLabel - %99 = OpAccessChain %_ptr_Function_S_std140 %85 %94 - %100 = OpLoad %S_std140 %99 None - %101 = OpAccessChain %_ptr_Function_S_std140 %87 %94 - OpStore %101 %100 None + %98 = OpLabel + %100 = OpAccessChain %_ptr_Function_S_std140 %85 %94 + %101 = OpLoad %S_std140 %100 None + %102 = OpAccessChain %_ptr_Function_S_std140 %87 %94 + OpStore %102 %101 None OpBranch %91 %91 = OpLabel %95 = OpIAdd %uint %94 %uint_1 OpBranch %92 %93 = OpLabel - %102 = OpLoad %_arr_S_std140_uint_4_0 %87 None - OpReturnValue %102 + %96 = OpLoad %_arr_S_std140_uint_4_0 %87 None + OpReturnValue %96 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_storage.wgsl.expected.spvasm index 87f05f9..c78ee38 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_storage.wgsl.expected.spvasm
@@ -84,16 +84,16 @@ %_arr_S_uint_4 = OpTypeArray %S %uint_4 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %34 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 + %uint_1 = OpConstant %uint 1 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float %uint_3 = OpConstant %uint 3 %_ptr_StorageBuffer_v3float = OpTypePointer StorageBuffer %v3float + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %82 = OpTypeFunction %void %_arr_S_uint_4 %101 = OpTypeFunction %void %_arr_uint_uint_1 %S %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int @@ -118,41 +118,41 @@ OpLoopMerge %39 %37 None OpBranch %36 %36 = OpLabel - %42 = OpUGreaterThanEqual %bool %40 %uint_4 - OpSelectionMerge %44 None - OpBranchConditional %42 %45 %44 - %45 = OpLabel + %71 = OpUGreaterThanEqual %bool %40 %uint_4 + OpSelectionMerge %73 None + OpBranchConditional %71 %74 %73 + %74 = OpLabel OpBranch %39 - %44 = OpLabel - %46 = OpAccessChain %_ptr_Function_S %30 %40 - %48 = OpAccessChain %_ptr_Function_S_std140 %28 %40 - %50 = OpLoad %S_std140 %48 None - %51 = OpFunctionCall %S %tint_convert_S %50 - OpStore %46 %51 None + %73 = OpLabel + %75 = OpAccessChain %_ptr_Function_S %30 %40 + %77 = OpAccessChain %_ptr_Function_S_std140 %28 %40 + %79 = OpLoad %S_std140 %77 None + %80 = OpFunctionCall %S %tint_convert_S %79 + OpStore %75 %80 None OpBranch %37 %37 = OpLabel %41 = OpIAdd %uint %40 %uint_1 OpBranch %38 %39 = OpLabel - %54 = OpLoad %_arr_S_uint_4 %30 None - %55 = OpFunctionCall %void %tint_store_and_preserve_padding %54 - %57 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %60 = OpLoad %S_std140 %57 None - %61 = OpFunctionCall %S %tint_convert_S %60 - %63 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 - %64 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %63 %61 - %66 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 - %68 = OpLoad %v3float %66 None - %69 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 - %70 = OpLoad %v3float %69 None - %71 = OpCompositeConstruct %mat2v3float %68 %70 - %72 = OpCompositeConstruct %_arr_uint_uint_1 %uint_3 - %74 = OpFunctionCall %void %tint_store_and_preserve_padding_1 %72 %71 - %76 = OpAccessChain %_ptr_StorageBuffer_v3float %11 %uint_0 %uint_1 %uint_1 %uint_0 - %78 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 - %79 = OpLoad %v3float %78 None - %80 = OpVectorShuffle %v3float %79 %79 2 0 1 - OpStore %76 %80 None + %42 = OpLoad %_arr_S_uint_4 %30 None + %43 = OpFunctionCall %void %tint_store_and_preserve_padding %42 + %45 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %48 = OpLoad %S_std140 %45 None + %49 = OpFunctionCall %S %tint_convert_S %48 + %53 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 + %54 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %53 %49 + %56 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 + %58 = OpLoad %v3float %56 None + %59 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 + %60 = OpLoad %v3float %59 None + %61 = OpCompositeConstruct %mat2v3float %58 %60 + %62 = OpCompositeConstruct %_arr_uint_uint_1 %uint_3 + %64 = OpFunctionCall %void %tint_store_and_preserve_padding_1 %62 %61 + %66 = OpAccessChain %_ptr_StorageBuffer_v3float %11 %uint_0 %uint_1 %uint_1 %uint_0 + %68 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 + %69 = OpLoad %v3float %68 None + %70 = OpVectorShuffle %v3float %69 %69 2 0 1 + OpStore %66 %70 None OpReturn OpFunctionEnd %tint_store_and_preserve_padding = OpFunction %void None %82 @@ -239,21 +239,21 @@ OpLoopMerge %141 %139 None OpBranch %138 %138 = OpLabel - %144 = OpUGreaterThanEqual %bool %142 %uint_4 - OpSelectionMerge %145 None - OpBranchConditional %144 %146 %145 - %146 = OpLabel + %145 = OpUGreaterThanEqual %bool %142 %uint_4 + OpSelectionMerge %146 None + OpBranchConditional %145 %147 %146 + %147 = OpLabel OpBranch %141 - %145 = OpLabel - %147 = OpAccessChain %_ptr_Function_S_std140 %133 %142 - %148 = OpLoad %S_std140 %147 None - %149 = OpAccessChain %_ptr_Function_S_std140 %135 %142 - OpStore %149 %148 None + %146 = OpLabel + %148 = OpAccessChain %_ptr_Function_S_std140 %133 %142 + %149 = OpLoad %S_std140 %148 None + %150 = OpAccessChain %_ptr_Function_S_std140 %135 %142 + OpStore %150 %149 None OpBranch %139 %139 = OpLabel %143 = OpIAdd %uint %142 %uint_1 OpBranch %140 %141 = OpLabel - %150 = OpLoad %_arr_S_std140_uint_4_0 %135 None - OpReturnValue %150 + %144 = OpLoad %_arr_S_std140_uint_4_0 %135 None + OpReturnValue %144 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.spvasm index 760e26f..9815fa5 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.spvasm
@@ -57,10 +57,6 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %21 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_S = OpTypePointer Workgroup %S - %36 = OpConstantNull %S - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_S_std140_uint_4 = OpTypePointer Uniform %_arr_S_std140_uint_4 @@ -68,14 +64,18 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %52 = OpConstantNull %_arr_S_uint_4 -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 + %44 = OpConstantNull %_arr_S_uint_4 +%_ptr_Workgroup_S = OpTypePointer Workgroup %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %_ptr_Workgroup_mat2v3float = OpTypePointer Workgroup %mat2v3float %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float %_ptr_Workgroup_v3float = OpTypePointer Workgroup %v3float + %bool = OpTypeBool + %80 = OpConstantNull %S +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %91 = OpTypeFunction %void %96 = OpTypeFunction %S %S_std140 %105 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 @@ -84,8 +84,8 @@ %f_inner = OpFunction %void None %21 %tint_local_index = OpFunctionParameter %uint %22 = OpLabel - %48 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function - %50 = OpVariable %_ptr_Function__arr_S_uint_4 Function %52 + %40 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function + %42 = OpVariable %_ptr_Function__arr_S_uint_4 Function %44 OpBranch %23 %23 = OpLabel OpBranch %26 @@ -94,67 +94,67 @@ OpLoopMerge %27 %25 None OpBranch %24 %24 = OpLabel - %30 = OpUGreaterThanEqual %bool %28 %uint_4 - OpSelectionMerge %32 None - OpBranchConditional %30 %33 %32 - %33 = OpLabel + %75 = OpUGreaterThanEqual %bool %28 %uint_4 + OpSelectionMerge %77 None + OpBranchConditional %75 %78 %77 + %78 = OpLabel OpBranch %27 - %32 = OpLabel - %34 = OpAccessChain %_ptr_Workgroup_S %w %28 - OpStore %34 %36 None + %77 = OpLabel + %79 = OpAccessChain %_ptr_Workgroup_S %w %28 + OpStore %79 %80 None OpBranch %25 %25 = OpLabel %29 = OpIAdd %uint %28 %uint_1 OpBranch %26 %27 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %41 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 - %44 = OpLoad %_arr_S_std140_uint_4 %41 None - %45 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %44 - OpStore %48 %45 - OpBranch %53 - %53 = OpLabel - OpBranch %56 - %56 = OpLabel - %58 = OpPhi %uint %uint_0 %53 %59 %55 - OpLoopMerge %57 %55 None - OpBranch %54 - %54 = OpLabel - %60 = OpUGreaterThanEqual %bool %58 %uint_4 - OpSelectionMerge %61 None - OpBranchConditional %60 %62 %61 - %62 = OpLabel - OpBranch %57 - %61 = OpLabel - %63 = OpAccessChain %_ptr_Function_S %50 %58 - %65 = OpAccessChain %_ptr_Function_S_std140 %48 %58 - %67 = OpLoad %S_std140 %65 None - %68 = OpFunctionCall %S %tint_convert_S %67 - OpStore %63 %68 None - OpBranch %55 - %55 = OpLabel - %59 = OpIAdd %uint %58 %uint_1 - OpBranch %56 - %57 = OpLabel - %70 = OpLoad %_arr_S_uint_4 %50 None - OpStore %w %70 None - %71 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 - %72 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %72 None - %75 = OpFunctionCall %S %tint_convert_S %74 - OpStore %71 %75 None - %76 = OpAccessChain %_ptr_Workgroup_mat2v3float %w %uint_3 %uint_1 - %79 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 - %81 = OpLoad %v3float %79 None - %82 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 - %83 = OpLoad %v3float %82 None - %84 = OpCompositeConstruct %mat2v3float %81 %83 - OpStore %76 %84 None - %85 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 %uint_1 %uint_0 - %87 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 - %88 = OpLoad %v3float %87 None - %89 = OpVectorShuffle %v3float %88 %88 2 0 1 - OpStore %85 %89 None + %33 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 + %36 = OpLoad %_arr_S_std140_uint_4 %33 None + %37 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %36 + OpStore %40 %37 + OpBranch %45 + %45 = OpLabel + OpBranch %48 + %48 = OpLabel + %50 = OpPhi %uint %uint_0 %45 %51 %47 + OpLoopMerge %49 %47 None + OpBranch %46 + %46 = OpLabel + %81 = OpUGreaterThanEqual %bool %50 %uint_4 + OpSelectionMerge %82 None + OpBranchConditional %81 %83 %82 + %83 = OpLabel + OpBranch %49 + %82 = OpLabel + %84 = OpAccessChain %_ptr_Function_S %42 %50 + %86 = OpAccessChain %_ptr_Function_S_std140 %40 %50 + %88 = OpLoad %S_std140 %86 None + %89 = OpFunctionCall %S %tint_convert_S %88 + OpStore %84 %89 None + OpBranch %47 + %47 = OpLabel + %51 = OpIAdd %uint %50 %uint_1 + OpBranch %48 + %49 = OpLabel + %52 = OpLoad %_arr_S_uint_4 %42 None + OpStore %w %52 None + %53 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 + %56 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %58 = OpLoad %S_std140 %56 None + %59 = OpFunctionCall %S %tint_convert_S %58 + OpStore %53 %59 None + %61 = OpAccessChain %_ptr_Workgroup_mat2v3float %w %uint_3 %uint_1 + %64 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 + %66 = OpLoad %v3float %64 None + %67 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 + %68 = OpLoad %v3float %67 None + %69 = OpCompositeConstruct %mat2v3float %66 %68 + OpStore %61 %69 None + %70 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 %uint_1 %uint_0 + %72 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 + %73 = OpLoad %v3float %72 None + %74 = OpVectorShuffle %v3float %73 %73 2 0 1 + OpStore %70 %74 None OpReturn OpFunctionEnd %f = OpFunction %void None %91 @@ -188,21 +188,21 @@ OpLoopMerge %115 %113 None OpBranch %112 %112 = OpLabel - %118 = OpUGreaterThanEqual %bool %116 %uint_4 - OpSelectionMerge %119 None - OpBranchConditional %118 %120 %119 - %120 = OpLabel + %119 = OpUGreaterThanEqual %bool %116 %uint_4 + OpSelectionMerge %120 None + OpBranchConditional %119 %121 %120 + %121 = OpLabel OpBranch %115 - %119 = OpLabel - %121 = OpAccessChain %_ptr_Function_S_std140 %107 %116 - %122 = OpLoad %S_std140 %121 None - %123 = OpAccessChain %_ptr_Function_S_std140 %109 %116 - OpStore %123 %122 None + %120 = OpLabel + %122 = OpAccessChain %_ptr_Function_S_std140 %107 %116 + %123 = OpLoad %S_std140 %122 None + %124 = OpAccessChain %_ptr_Function_S_std140 %109 %116 + OpStore %124 %123 None OpBranch %113 %113 = OpLabel %117 = OpIAdd %uint %116 %uint_1 OpBranch %114 %115 = OpLabel - %124 = OpLoad %_arr_S_std140_uint_4_0 %109 None - OpReturnValue %124 + %118 = OpLoad %_arr_S_std140_uint_4_0 %109 None + OpReturnValue %118 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.spvasm index 20d60dc..560ffa4 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -94,12 +94,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %74 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %95 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %105 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %131 = OpTypeFunction %Inner %Inner_std140 @@ -125,8 +125,8 @@ %52 = OpVariable %_ptr_Function_mat2v4half Function %66 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %68 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %74 - %101 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %103 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %105 + %91 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %93 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %95 %27 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %30 = OpFunctionCall %int %i %31 = OpBitcast %uint %30 @@ -159,60 +159,60 @@ OpLoopMerge %79 %77 None OpBranch %76 %76 = OpLabel - %82 = OpUGreaterThanEqual %bool %80 %uint_4 - OpSelectionMerge %84 None - OpBranchConditional %82 %85 %84 - %85 = OpLabel + %111 = OpUGreaterThanEqual %bool %80 %uint_4 + OpSelectionMerge %113 None + OpBranchConditional %111 %114 %113 + %114 = OpLabel OpBranch %79 - %84 = OpLabel - %86 = OpAccessChain %_ptr_Function_Outer %68 %80 - %88 = OpAccessChain %_ptr_Function_Outer_std140 %66 %80 - %90 = OpLoad %Outer_std140 %88 None - %91 = OpFunctionCall %Outer %tint_convert_Outer %90 - OpStore %86 %91 None + %113 = OpLabel + %115 = OpAccessChain %_ptr_Function_Outer %68 %80 + %117 = OpAccessChain %_ptr_Function_Outer_std140 %66 %80 + %119 = OpLoad %Outer_std140 %117 None + %120 = OpFunctionCall %Outer %tint_convert_Outer %119 + OpStore %115 %120 None OpBranch %77 %77 = OpLabel %81 = OpIAdd %uint %80 %uint_1 OpBranch %78 %79 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %68 None - %94 = OpLoad %Outer_std140_tint_explicit_layout %35 None - %95 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %94 - %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %95 - %98 = OpLoad %_arr_Inner_std140_uint_4 %37 None - %99 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %98 - OpStore %101 %99 - OpBranch %106 - %106 = OpLabel - OpBranch %109 - %109 = OpLabel - %111 = OpPhi %uint %uint_0 %106 %112 %108 - OpLoopMerge %110 %108 None - OpBranch %107 - %107 = OpLabel - %113 = OpUGreaterThanEqual %bool %111 %uint_4 - OpSelectionMerge %114 None - OpBranchConditional %113 %115 %114 - %115 = OpLabel - OpBranch %110 - %114 = OpLabel - %116 = OpAccessChain %_ptr_Function_Inner %103 %111 - %118 = OpAccessChain %_ptr_Function_Inner_std140 %101 %111 - %120 = OpLoad %Inner_std140 %118 None - %121 = OpFunctionCall %Inner %tint_convert_Inner %120 - OpStore %116 %121 None - OpBranch %108 - %108 = OpLabel - %112 = OpIAdd %uint %111 %uint_1 - OpBranch %109 - %110 = OpLabel - %l_a_i_a = OpLoad %_arr_Inner_uint_4 %103 None - %124 = OpLoad %Inner_std140 %42 None - %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %124 - %126 = OpFunctionCall %int %i - %127 = OpBitcast %uint %126 - %128 = OpExtInst %uint %33 UMin %127 %uint_3 -%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %half %l_a_i_a_i_m_i %128 + %83 = OpLoad %Outer_std140_tint_explicit_layout %35 None + %84 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %83 + %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %84 + %88 = OpLoad %_arr_Inner_std140_uint_4 %37 None + %89 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %88 + OpStore %91 %89 + OpBranch %96 + %96 = OpLabel + OpBranch %99 + %99 = OpLabel + %101 = OpPhi %uint %uint_0 %96 %102 %98 + OpLoopMerge %100 %98 None + OpBranch %97 + %97 = OpLabel + %121 = OpUGreaterThanEqual %bool %101 %uint_4 + OpSelectionMerge %122 None + OpBranchConditional %121 %123 %122 + %123 = OpLabel + OpBranch %100 + %122 = OpLabel + %124 = OpAccessChain %_ptr_Function_Inner %93 %101 + %126 = OpAccessChain %_ptr_Function_Inner_std140 %91 %101 + %128 = OpLoad %Inner_std140 %126 None + %129 = OpFunctionCall %Inner %tint_convert_Inner %128 + OpStore %124 %129 None + OpBranch %98 + %98 = OpLabel + %102 = OpIAdd %uint %101 %uint_1 + OpBranch %99 + %100 = OpLabel + %l_a_i_a = OpLoad %_arr_Inner_uint_4 %93 None + %104 = OpLoad %Inner_std140 %42 None + %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %104 + %107 = OpFunctionCall %int %i + %108 = OpBitcast %uint %107 + %109 = OpExtInst %uint %33 UMin %108 %uint_3 +%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %half %l_a_i_a_i_m_i %109 OpReturn OpFunctionEnd %tint_convert_Inner = OpFunction %Inner None %131 @@ -228,7 +228,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %139 = OpLabel %141 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %142 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %105 + %142 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %95 %140 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %141 %140 OpBranch %143 @@ -239,25 +239,25 @@ OpLoopMerge %147 %145 None OpBranch %144 %144 = OpLabel - %150 = OpUGreaterThanEqual %bool %148 %uint_4 - OpSelectionMerge %151 None - OpBranchConditional %150 %152 %151 - %152 = OpLabel + %152 = OpUGreaterThanEqual %bool %148 %uint_4 + OpSelectionMerge %153 None + OpBranchConditional %152 %154 %153 + %154 = OpLabel OpBranch %147 - %151 = OpLabel - %153 = OpAccessChain %_ptr_Function_Inner %142 %148 - %154 = OpAccessChain %_ptr_Function_Inner_std140 %141 %148 - %155 = OpLoad %Inner_std140 %154 None - %156 = OpFunctionCall %Inner %tint_convert_Inner %155 - OpStore %153 %156 None + %153 = OpLabel + %155 = OpAccessChain %_ptr_Function_Inner %142 %148 + %156 = OpAccessChain %_ptr_Function_Inner_std140 %141 %148 + %157 = OpLoad %Inner_std140 %156 None + %158 = OpFunctionCall %Inner %tint_convert_Inner %157 + OpStore %155 %158 None OpBranch %145 %145 = OpLabel %149 = OpIAdd %uint %148 %uint_1 OpBranch %146 %147 = OpLabel - %157 = OpLoad %_arr_Inner_uint_4 %142 None - %158 = OpCompositeConstruct %Outer %157 - OpReturnValue %158 + %150 = OpLoad %_arr_Inner_uint_4 %142 None + %151 = OpCompositeConstruct %Outer %150 + OpReturnValue %151 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %160 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -273,23 +273,23 @@ OpLoopMerge %170 %168 None OpBranch %167 %167 = OpLabel - %173 = OpUGreaterThanEqual %bool %171 %uint_4 - OpSelectionMerge %174 None - OpBranchConditional %173 %175 %174 - %175 = OpLabel + %174 = OpUGreaterThanEqual %bool %171 %uint_4 + OpSelectionMerge %175 None + OpBranchConditional %174 %176 %175 + %176 = OpLabel OpBranch %170 - %174 = OpLabel - %176 = OpAccessChain %_ptr_Function_Inner_std140 %162 %171 - %177 = OpLoad %Inner_std140 %176 None - %178 = OpAccessChain %_ptr_Function_Inner_std140 %164 %171 - OpStore %178 %177 None + %175 = OpLabel + %177 = OpAccessChain %_ptr_Function_Inner_std140 %162 %171 + %178 = OpLoad %Inner_std140 %177 None + %179 = OpAccessChain %_ptr_Function_Inner_std140 %164 %171 + OpStore %179 %178 None OpBranch %168 %168 = OpLabel %172 = OpIAdd %uint %171 %uint_1 OpBranch %169 %170 = OpLabel - %179 = OpLoad %_arr_Inner_std140_uint_4_0 %164 None - OpReturnValue %179 + %173 = OpLoad %_arr_Inner_std140_uint_4_0 %164 None + OpReturnValue %173 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %181 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -313,22 +313,22 @@ OpLoopMerge %197 %195 None OpBranch %194 %194 = OpLabel - %200 = OpUGreaterThanEqual %bool %198 %uint_4 - OpSelectionMerge %201 None - OpBranchConditional %200 %202 %201 - %202 = OpLabel + %201 = OpUGreaterThanEqual %bool %198 %uint_4 + OpSelectionMerge %202 None + OpBranchConditional %201 %203 %202 + %203 = OpLabel OpBranch %197 - %201 = OpLabel - %203 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %189 %198 - %205 = OpLoad %Outer_std140_tint_explicit_layout %203 None - %206 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %205 - %207 = OpAccessChain %_ptr_Function_Outer_std140 %191 %198 - OpStore %207 %206 None + %202 = OpLabel + %204 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %189 %198 + %206 = OpLoad %Outer_std140_tint_explicit_layout %204 None + %207 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %206 + %208 = OpAccessChain %_ptr_Function_Outer_std140 %191 %198 + OpStore %208 %207 None OpBranch %195 %195 = OpLabel %199 = OpIAdd %uint %198 %uint_1 OpBranch %196 %197 = OpLabel - %208 = OpLoad %_arr_Outer_std140_uint_4 %191 None - OpReturnValue %208 + %200 = OpLoad %_arr_Outer_std140_uint_4 %191 None + OpReturnValue %200 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.spvasm index b71eea6..c1cadae 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.spvasm
@@ -84,12 +84,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %50 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %71 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %81 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %104 = OpTypeFunction %Inner %Inner_std140 @@ -106,8 +106,8 @@ %15 = OpLabel %42 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %44 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %50 - %77 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %79 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %81 + %67 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %69 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %71 %16 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %19 = OpAccessChain %_ptr_Uniform_Outer_std140_tint_explicit_layout %16 %uint_3 %22 = OpAccessChain %_ptr_Uniform__arr_Inner_std140_uint_4 %19 %uint_0 @@ -129,56 +129,56 @@ OpLoopMerge %55 %53 None OpBranch %52 %52 = OpLabel - %58 = OpUGreaterThanEqual %bool %56 %uint_4 - OpSelectionMerge %60 None - OpBranchConditional %58 %61 %60 - %61 = OpLabel + %84 = OpUGreaterThanEqual %bool %56 %uint_4 + OpSelectionMerge %86 None + OpBranchConditional %84 %87 %86 + %87 = OpLabel OpBranch %55 - %60 = OpLabel - %62 = OpAccessChain %_ptr_Function_Outer %44 %56 - %64 = OpAccessChain %_ptr_Function_Outer_std140 %42 %56 - %66 = OpLoad %Outer_std140 %64 None - %67 = OpFunctionCall %Outer %tint_convert_Outer %66 - OpStore %62 %67 None + %86 = OpLabel + %88 = OpAccessChain %_ptr_Function_Outer %44 %56 + %90 = OpAccessChain %_ptr_Function_Outer_std140 %42 %56 + %92 = OpLoad %Outer_std140 %90 None + %93 = OpFunctionCall %Outer %tint_convert_Outer %92 + OpStore %88 %93 None OpBranch %53 %53 = OpLabel %57 = OpIAdd %uint %56 %uint_1 OpBranch %54 %55 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %44 None - %70 = OpLoad %Outer_std140_tint_explicit_layout %19 None - %71 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %70 - %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %71 - %74 = OpLoad %_arr_Inner_std140_uint_4 %22 None - %75 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %74 - OpStore %77 %75 - OpBranch %82 - %82 = OpLabel - OpBranch %85 - %85 = OpLabel - %87 = OpPhi %uint %uint_0 %82 %88 %84 - OpLoopMerge %86 %84 None - OpBranch %83 - %83 = OpLabel - %89 = OpUGreaterThanEqual %bool %87 %uint_4 - OpSelectionMerge %90 None - OpBranchConditional %89 %91 %90 - %91 = OpLabel - OpBranch %86 - %90 = OpLabel - %92 = OpAccessChain %_ptr_Function_Inner %79 %87 - %94 = OpAccessChain %_ptr_Function_Inner_std140 %77 %87 - %96 = OpLoad %Inner_std140 %94 None - %97 = OpFunctionCall %Inner %tint_convert_Inner %96 - OpStore %92 %97 None - OpBranch %84 - %84 = OpLabel - %88 = OpIAdd %uint %87 %uint_1 - OpBranch %85 - %86 = OpLabel - %l_a_3_a = OpLoad %_arr_Inner_uint_4 %79 None - %100 = OpLoad %Inner_std140 %24 None - %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %100 + %59 = OpLoad %Outer_std140_tint_explicit_layout %19 None + %60 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %59 + %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %60 + %64 = OpLoad %_arr_Inner_std140_uint_4 %22 None + %65 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %64 + OpStore %67 %65 + OpBranch %72 + %72 = OpLabel + OpBranch %75 + %75 = OpLabel + %77 = OpPhi %uint %uint_0 %72 %78 %74 + OpLoopMerge %76 %74 None + OpBranch %73 + %73 = OpLabel + %94 = OpUGreaterThanEqual %bool %77 %uint_4 + OpSelectionMerge %95 None + OpBranchConditional %94 %96 %95 + %96 = OpLabel + OpBranch %76 + %95 = OpLabel + %97 = OpAccessChain %_ptr_Function_Inner %69 %77 + %99 = OpAccessChain %_ptr_Function_Inner_std140 %67 %77 + %101 = OpLoad %Inner_std140 %99 None + %102 = OpFunctionCall %Inner %tint_convert_Inner %101 + OpStore %97 %102 None + OpBranch %74 + %74 = OpLabel + %78 = OpIAdd %uint %77 %uint_1 + OpBranch %75 + %76 = OpLabel + %l_a_3_a = OpLoad %_arr_Inner_uint_4 %69 None + %80 = OpLoad %Inner_std140 %24 None + %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %80 %l_a_3_a_2_m_1_0 = OpCompositeExtract %half %l_a_3_a_2_m_1 0 OpReturn OpFunctionEnd @@ -195,7 +195,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %112 = OpLabel %114 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %115 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %81 + %115 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %71 %113 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %114 %113 OpBranch %116 @@ -206,25 +206,25 @@ OpLoopMerge %120 %118 None OpBranch %117 %117 = OpLabel - %123 = OpUGreaterThanEqual %bool %121 %uint_4 - OpSelectionMerge %124 None - OpBranchConditional %123 %125 %124 - %125 = OpLabel + %125 = OpUGreaterThanEqual %bool %121 %uint_4 + OpSelectionMerge %126 None + OpBranchConditional %125 %127 %126 + %127 = OpLabel OpBranch %120 - %124 = OpLabel - %126 = OpAccessChain %_ptr_Function_Inner %115 %121 - %127 = OpAccessChain %_ptr_Function_Inner_std140 %114 %121 - %128 = OpLoad %Inner_std140 %127 None - %129 = OpFunctionCall %Inner %tint_convert_Inner %128 - OpStore %126 %129 None + %126 = OpLabel + %128 = OpAccessChain %_ptr_Function_Inner %115 %121 + %129 = OpAccessChain %_ptr_Function_Inner_std140 %114 %121 + %130 = OpLoad %Inner_std140 %129 None + %131 = OpFunctionCall %Inner %tint_convert_Inner %130 + OpStore %128 %131 None OpBranch %118 %118 = OpLabel %122 = OpIAdd %uint %121 %uint_1 OpBranch %119 %120 = OpLabel - %130 = OpLoad %_arr_Inner_uint_4 %115 None - %131 = OpCompositeConstruct %Outer %130 - OpReturnValue %131 + %123 = OpLoad %_arr_Inner_uint_4 %115 None + %124 = OpCompositeConstruct %Outer %123 + OpReturnValue %124 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %133 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -240,23 +240,23 @@ OpLoopMerge %143 %141 None OpBranch %140 %140 = OpLabel - %146 = OpUGreaterThanEqual %bool %144 %uint_4 - OpSelectionMerge %147 None - OpBranchConditional %146 %148 %147 - %148 = OpLabel + %147 = OpUGreaterThanEqual %bool %144 %uint_4 + OpSelectionMerge %148 None + OpBranchConditional %147 %149 %148 + %149 = OpLabel OpBranch %143 - %147 = OpLabel - %149 = OpAccessChain %_ptr_Function_Inner_std140 %135 %144 - %150 = OpLoad %Inner_std140 %149 None - %151 = OpAccessChain %_ptr_Function_Inner_std140 %137 %144 - OpStore %151 %150 None + %148 = OpLabel + %150 = OpAccessChain %_ptr_Function_Inner_std140 %135 %144 + %151 = OpLoad %Inner_std140 %150 None + %152 = OpAccessChain %_ptr_Function_Inner_std140 %137 %144 + OpStore %152 %151 None OpBranch %141 %141 = OpLabel %145 = OpIAdd %uint %144 %uint_1 OpBranch %142 %143 = OpLabel - %152 = OpLoad %_arr_Inner_std140_uint_4_0 %137 None - OpReturnValue %152 + %146 = OpLoad %_arr_Inner_std140_uint_4_0 %137 None + OpReturnValue %146 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %154 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -280,22 +280,22 @@ OpLoopMerge %170 %168 None OpBranch %167 %167 = OpLabel - %173 = OpUGreaterThanEqual %bool %171 %uint_4 - OpSelectionMerge %174 None - OpBranchConditional %173 %175 %174 - %175 = OpLabel + %174 = OpUGreaterThanEqual %bool %171 %uint_4 + OpSelectionMerge %175 None + OpBranchConditional %174 %176 %175 + %176 = OpLabel OpBranch %170 - %174 = OpLabel - %176 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %162 %171 - %178 = OpLoad %Outer_std140_tint_explicit_layout %176 None - %179 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %178 - %180 = OpAccessChain %_ptr_Function_Outer_std140 %164 %171 - OpStore %180 %179 None + %175 = OpLabel + %177 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %162 %171 + %179 = OpLoad %Outer_std140_tint_explicit_layout %177 None + %180 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %179 + %181 = OpAccessChain %_ptr_Function_Outer_std140 %164 %171 + OpStore %181 %180 None OpBranch %168 %168 = OpLabel %172 = OpIAdd %uint %171 %uint_1 OpBranch %169 %170 = OpLabel - %181 = OpLoad %_arr_Outer_std140_uint_4 %164 None - OpReturnValue %181 + %173 = OpLoad %_arr_Outer_std140_uint_4 %164 None + OpReturnValue %173 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.spvasm index fac1b42..58463a4 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.spvasm
@@ -72,13 +72,13 @@ %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %49 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Uniform_v4half = OpTypePointer Uniform %v4half + %uint_1 = OpConstant %uint 1 + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %94 = OpTypeFunction %S %S_std140 %103 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -124,43 +124,43 @@ OpLoopMerge %54 %52 None OpBranch %51 %51 = OpLabel - %57 = OpUGreaterThanEqual %bool %55 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel + %83 = OpUGreaterThanEqual %bool %55 %uint_4 + OpSelectionMerge %85 None + OpBranchConditional %83 %86 %85 + %86 = OpLabel OpBranch %54 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_S %47 %55 - %63 = OpAccessChain %_ptr_Function_S_std140 %45 %55 - %65 = OpLoad %S_std140 %63 None - %66 = OpFunctionCall %S %tint_convert_S %65 - OpStore %61 %66 None + %85 = OpLabel + %87 = OpAccessChain %_ptr_Function_S %47 %55 + %89 = OpAccessChain %_ptr_Function_S_std140 %45 %55 + %91 = OpLoad %S_std140 %89 None + %92 = OpFunctionCall %S %tint_convert_S %91 + OpStore %87 %92 None OpBranch %52 %52 = OpLabel %56 = OpIAdd %uint %55 %uint_1 OpBranch %53 %54 = OpLabel - %69 = OpLoad %_arr_S_uint_4 %47 None - %70 = OpFunctionCall %void %a %69 - %71 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %71 None - %75 = OpFunctionCall %S %tint_convert_S %74 - %76 = OpFunctionCall %void %b %75 - %77 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 - %79 = OpLoad %v4half %77 None - %80 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 - %81 = OpLoad %v4half %80 None - %82 = OpCompositeConstruct %mat2v4half %79 %81 - %83 = OpFunctionCall %void %c %82 - %84 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 - %85 = OpLoad %v4half %84 None - %86 = OpVectorShuffle %v4half %85 %85 1 3 0 2 - %87 = OpFunctionCall %void %d %86 - %88 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 - %89 = OpLoad %v4half %88 None - %90 = OpVectorShuffle %v4half %89 %89 1 3 0 2 - %91 = OpCompositeExtract %half %90 0 - %92 = OpFunctionCall %void %e %91 + %57 = OpLoad %_arr_S_uint_4 %47 None + %58 = OpFunctionCall %void %a %57 + %59 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %62 = OpLoad %S_std140 %59 None + %63 = OpFunctionCall %S %tint_convert_S %62 + %65 = OpFunctionCall %void %b %63 + %66 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 + %69 = OpLoad %v4half %66 None + %70 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 + %71 = OpLoad %v4half %70 None + %72 = OpCompositeConstruct %mat2v4half %69 %71 + %73 = OpFunctionCall %void %c %72 + %74 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 + %75 = OpLoad %v4half %74 None + %76 = OpVectorShuffle %v4half %75 %75 1 3 0 2 + %77 = OpFunctionCall %void %d %76 + %78 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 + %79 = OpLoad %v4half %78 None + %80 = OpVectorShuffle %v4half %79 %79 1 3 0 2 + %81 = OpCompositeExtract %half %80 0 + %82 = OpFunctionCall %void %e %81 OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %94 @@ -188,21 +188,21 @@ OpLoopMerge %113 %111 None OpBranch %110 %110 = OpLabel - %116 = OpUGreaterThanEqual %bool %114 %uint_4 - OpSelectionMerge %117 None - OpBranchConditional %116 %118 %117 - %118 = OpLabel + %117 = OpUGreaterThanEqual %bool %114 %uint_4 + OpSelectionMerge %118 None + OpBranchConditional %117 %119 %118 + %119 = OpLabel OpBranch %113 - %117 = OpLabel - %119 = OpAccessChain %_ptr_Function_S_std140 %105 %114 - %120 = OpLoad %S_std140 %119 None - %121 = OpAccessChain %_ptr_Function_S_std140 %107 %114 - OpStore %121 %120 None + %118 = OpLabel + %120 = OpAccessChain %_ptr_Function_S_std140 %105 %114 + %121 = OpLoad %S_std140 %120 None + %122 = OpAccessChain %_ptr_Function_S_std140 %107 %114 + OpStore %122 %121 None OpBranch %111 %111 = OpLabel %115 = OpIAdd %uint %114 %uint_1 OpBranch %112 %113 = OpLabel - %122 = OpLoad %_arr_S_std140_uint_4_0 %107 None - OpReturnValue %122 + %116 = OpLoad %_arr_S_std140_uint_4_0 %107 None + OpReturnValue %116 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.spvasm index a2526e0..a98e2f4 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.spvasm
@@ -60,17 +60,17 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Private_S = OpTypePointer Private %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Private_mat2v4half = OpTypePointer Private %mat2v4half %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v4half = OpTypePointer Uniform %v4half %_ptr_Private_v4half = OpTypePointer Private %v4half + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %74 = OpTypeFunction %S %S_std140 %83 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -91,41 +91,41 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_4 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %63 = OpUGreaterThanEqual %bool %37 %uint_4 + OpSelectionMerge %65 None + OpBranchConditional %63 %66 %65 + %66 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Function_S %30 %37 - %45 = OpAccessChain %_ptr_Function_S_std140 %28 %37 - %47 = OpLoad %S_std140 %45 None - %48 = OpFunctionCall %S %tint_convert_S %47 - OpStore %43 %48 None + %65 = OpLabel + %67 = OpAccessChain %_ptr_Function_S %30 %37 + %69 = OpAccessChain %_ptr_Function_S_std140 %28 %37 + %71 = OpLoad %S_std140 %69 None + %72 = OpFunctionCall %S %tint_convert_S %71 + OpStore %67 %72 None OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel - %51 = OpLoad %_arr_S_uint_4 %30 None - OpStore %p %51 None - %52 = OpAccessChain %_ptr_Private_S %p %uint_1 - %54 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %57 = OpLoad %S_std140 %54 None - %58 = OpFunctionCall %S %tint_convert_S %57 - OpStore %52 %58 None - %59 = OpAccessChain %_ptr_Private_mat2v4half %p %uint_3 %uint_1 - %62 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 - %64 = OpLoad %v4half %62 None - %65 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 - %66 = OpLoad %v4half %65 None - %67 = OpCompositeConstruct %mat2v4half %64 %66 - OpStore %59 %67 None - %68 = OpAccessChain %_ptr_Private_v4half %p %uint_1 %uint_1 %uint_0 - %70 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 - %71 = OpLoad %v4half %70 None - %72 = OpVectorShuffle %v4half %71 %71 1 3 0 2 - OpStore %68 %72 None + %39 = OpLoad %_arr_S_uint_4 %30 None + OpStore %p %39 None + %40 = OpAccessChain %_ptr_Private_S %p %uint_1 + %43 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %46 = OpLoad %S_std140 %43 None + %47 = OpFunctionCall %S %tint_convert_S %46 + OpStore %40 %47 None + %49 = OpAccessChain %_ptr_Private_mat2v4half %p %uint_3 %uint_1 + %52 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 + %54 = OpLoad %v4half %52 None + %55 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 + %56 = OpLoad %v4half %55 None + %57 = OpCompositeConstruct %mat2v4half %54 %56 + OpStore %49 %57 None + %58 = OpAccessChain %_ptr_Private_v4half %p %uint_1 %uint_1 %uint_0 + %60 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 + %61 = OpLoad %v4half %60 None + %62 = OpVectorShuffle %v4half %61 %61 1 3 0 2 + OpStore %58 %62 None OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %74 @@ -153,21 +153,21 @@ OpLoopMerge %93 %91 None OpBranch %90 %90 = OpLabel - %96 = OpUGreaterThanEqual %bool %94 %uint_4 - OpSelectionMerge %97 None - OpBranchConditional %96 %98 %97 - %98 = OpLabel + %97 = OpUGreaterThanEqual %bool %94 %uint_4 + OpSelectionMerge %98 None + OpBranchConditional %97 %99 %98 + %99 = OpLabel OpBranch %93 - %97 = OpLabel - %99 = OpAccessChain %_ptr_Function_S_std140 %85 %94 - %100 = OpLoad %S_std140 %99 None - %101 = OpAccessChain %_ptr_Function_S_std140 %87 %94 - OpStore %101 %100 None + %98 = OpLabel + %100 = OpAccessChain %_ptr_Function_S_std140 %85 %94 + %101 = OpLoad %S_std140 %100 None + %102 = OpAccessChain %_ptr_Function_S_std140 %87 %94 + OpStore %102 %101 None OpBranch %91 %91 = OpLabel %95 = OpIAdd %uint %94 %uint_1 OpBranch %92 %93 = OpLabel - %102 = OpLoad %_arr_S_std140_uint_4_0 %87 None - OpReturnValue %102 + %96 = OpLoad %_arr_S_std140_uint_4_0 %87 None + OpReturnValue %96 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_storage.wgsl.expected.spvasm index e092ce9..839c5dc 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_storage.wgsl.expected.spvasm
@@ -84,17 +84,17 @@ %_arr_S_uint_4 = OpTypeArray %S %uint_4 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %34 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 + %uint_1 = OpConstant %uint 1 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1 %_ptr_StorageBuffer_mat2v4half = OpTypePointer StorageBuffer %mat2v4half %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v4half = OpTypePointer Uniform %v4half %_ptr_StorageBuffer_v4half = OpTypePointer StorageBuffer %v4half + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %81 = OpTypeFunction %void %_arr_S_uint_4 %100 = OpTypeFunction %void %_arr_uint_uint_1 %S %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int @@ -118,41 +118,41 @@ OpLoopMerge %39 %37 None OpBranch %36 %36 = OpLabel - %42 = OpUGreaterThanEqual %bool %40 %uint_4 - OpSelectionMerge %44 None - OpBranchConditional %42 %45 %44 - %45 = OpLabel + %70 = OpUGreaterThanEqual %bool %40 %uint_4 + OpSelectionMerge %72 None + OpBranchConditional %70 %73 %72 + %73 = OpLabel OpBranch %39 - %44 = OpLabel - %46 = OpAccessChain %_ptr_Function_S %30 %40 - %48 = OpAccessChain %_ptr_Function_S_std140 %28 %40 - %50 = OpLoad %S_std140 %48 None - %51 = OpFunctionCall %S %tint_convert_S %50 - OpStore %46 %51 None + %72 = OpLabel + %74 = OpAccessChain %_ptr_Function_S %30 %40 + %76 = OpAccessChain %_ptr_Function_S_std140 %28 %40 + %78 = OpLoad %S_std140 %76 None + %79 = OpFunctionCall %S %tint_convert_S %78 + OpStore %74 %79 None OpBranch %37 %37 = OpLabel %41 = OpIAdd %uint %40 %uint_1 OpBranch %38 %39 = OpLabel - %54 = OpLoad %_arr_S_uint_4 %30 None - %55 = OpFunctionCall %void %tint_store_and_preserve_padding %54 - %57 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %60 = OpLoad %S_std140 %57 None - %61 = OpFunctionCall %S %tint_convert_S %60 - %63 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 - %64 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %63 %61 - %66 = OpAccessChain %_ptr_StorageBuffer_mat2v4half %11 %uint_0 %uint_3 %uint_1 - %69 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 - %71 = OpLoad %v4half %69 None - %72 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 - %73 = OpLoad %v4half %72 None - %74 = OpCompositeConstruct %mat2v4half %71 %73 - OpStore %66 %74 None - %75 = OpAccessChain %_ptr_StorageBuffer_v4half %11 %uint_0 %uint_1 %uint_1 %uint_0 - %77 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 - %78 = OpLoad %v4half %77 None - %79 = OpVectorShuffle %v4half %78 %78 1 3 0 2 - OpStore %75 %79 None + %42 = OpLoad %_arr_S_uint_4 %30 None + %43 = OpFunctionCall %void %tint_store_and_preserve_padding %42 + %45 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %48 = OpLoad %S_std140 %45 None + %49 = OpFunctionCall %S %tint_convert_S %48 + %53 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 + %54 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %53 %49 + %56 = OpAccessChain %_ptr_StorageBuffer_mat2v4half %11 %uint_0 %uint_3 %uint_1 + %59 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 + %61 = OpLoad %v4half %59 None + %62 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 + %63 = OpLoad %v4half %62 None + %64 = OpCompositeConstruct %mat2v4half %61 %63 + OpStore %56 %64 None + %65 = OpAccessChain %_ptr_StorageBuffer_v4half %11 %uint_0 %uint_1 %uint_1 %uint_0 + %67 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 + %68 = OpLoad %v4half %67 None + %69 = OpVectorShuffle %v4half %68 %68 1 3 0 2 + OpStore %65 %69 None OpReturn OpFunctionEnd %tint_store_and_preserve_padding = OpFunction %void None %81 @@ -226,21 +226,21 @@ OpLoopMerge %130 %128 None OpBranch %127 %127 = OpLabel - %133 = OpUGreaterThanEqual %bool %131 %uint_4 - OpSelectionMerge %134 None - OpBranchConditional %133 %135 %134 - %135 = OpLabel + %134 = OpUGreaterThanEqual %bool %131 %uint_4 + OpSelectionMerge %135 None + OpBranchConditional %134 %136 %135 + %136 = OpLabel OpBranch %130 - %134 = OpLabel - %136 = OpAccessChain %_ptr_Function_S_std140 %122 %131 - %137 = OpLoad %S_std140 %136 None - %138 = OpAccessChain %_ptr_Function_S_std140 %124 %131 - OpStore %138 %137 None + %135 = OpLabel + %137 = OpAccessChain %_ptr_Function_S_std140 %122 %131 + %138 = OpLoad %S_std140 %137 None + %139 = OpAccessChain %_ptr_Function_S_std140 %124 %131 + OpStore %139 %138 None OpBranch %128 %128 = OpLabel %132 = OpIAdd %uint %131 %uint_1 OpBranch %129 %130 = OpLabel - %139 = OpLoad %_arr_S_std140_uint_4_0 %124 None - OpReturnValue %139 + %133 = OpLoad %_arr_S_std140_uint_4_0 %124 None + OpReturnValue %133 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.spvasm index abaca8a..b6f85ca 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.spvasm
@@ -60,10 +60,6 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %21 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_S = OpTypePointer Workgroup %S - %36 = OpConstantNull %S - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_S_std140_uint_4 = OpTypePointer Uniform %_arr_S_std140_uint_4 @@ -71,14 +67,18 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %52 = OpConstantNull %_arr_S_uint_4 -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 + %44 = OpConstantNull %_arr_S_uint_4 +%_ptr_Workgroup_S = OpTypePointer Workgroup %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %_ptr_Workgroup_mat2v4half = OpTypePointer Workgroup %mat2v4half %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v4half = OpTypePointer Uniform %v4half %_ptr_Workgroup_v4half = OpTypePointer Workgroup %v4half + %bool = OpTypeBool + %80 = OpConstantNull %S +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %91 = OpTypeFunction %void %96 = OpTypeFunction %S %S_std140 %105 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 @@ -87,8 +87,8 @@ %f_inner = OpFunction %void None %21 %tint_local_index = OpFunctionParameter %uint %22 = OpLabel - %48 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function - %50 = OpVariable %_ptr_Function__arr_S_uint_4 Function %52 + %40 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function + %42 = OpVariable %_ptr_Function__arr_S_uint_4 Function %44 OpBranch %23 %23 = OpLabel OpBranch %26 @@ -97,67 +97,67 @@ OpLoopMerge %27 %25 None OpBranch %24 %24 = OpLabel - %30 = OpUGreaterThanEqual %bool %28 %uint_4 - OpSelectionMerge %32 None - OpBranchConditional %30 %33 %32 - %33 = OpLabel + %75 = OpUGreaterThanEqual %bool %28 %uint_4 + OpSelectionMerge %77 None + OpBranchConditional %75 %78 %77 + %78 = OpLabel OpBranch %27 - %32 = OpLabel - %34 = OpAccessChain %_ptr_Workgroup_S %w %28 - OpStore %34 %36 None + %77 = OpLabel + %79 = OpAccessChain %_ptr_Workgroup_S %w %28 + OpStore %79 %80 None OpBranch %25 %25 = OpLabel %29 = OpIAdd %uint %28 %uint_1 OpBranch %26 %27 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %41 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 - %44 = OpLoad %_arr_S_std140_uint_4 %41 None - %45 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %44 - OpStore %48 %45 - OpBranch %53 - %53 = OpLabel - OpBranch %56 - %56 = OpLabel - %58 = OpPhi %uint %uint_0 %53 %59 %55 - OpLoopMerge %57 %55 None - OpBranch %54 - %54 = OpLabel - %60 = OpUGreaterThanEqual %bool %58 %uint_4 - OpSelectionMerge %61 None - OpBranchConditional %60 %62 %61 - %62 = OpLabel - OpBranch %57 - %61 = OpLabel - %63 = OpAccessChain %_ptr_Function_S %50 %58 - %65 = OpAccessChain %_ptr_Function_S_std140 %48 %58 - %67 = OpLoad %S_std140 %65 None - %68 = OpFunctionCall %S %tint_convert_S %67 - OpStore %63 %68 None - OpBranch %55 - %55 = OpLabel - %59 = OpIAdd %uint %58 %uint_1 - OpBranch %56 - %57 = OpLabel - %70 = OpLoad %_arr_S_uint_4 %50 None - OpStore %w %70 None - %71 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 - %72 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %72 None - %75 = OpFunctionCall %S %tint_convert_S %74 - OpStore %71 %75 None - %76 = OpAccessChain %_ptr_Workgroup_mat2v4half %w %uint_3 %uint_1 - %79 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 - %81 = OpLoad %v4half %79 None - %82 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 - %83 = OpLoad %v4half %82 None - %84 = OpCompositeConstruct %mat2v4half %81 %83 - OpStore %76 %84 None - %85 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_1 %uint_1 %uint_0 - %87 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 - %88 = OpLoad %v4half %87 None - %89 = OpVectorShuffle %v4half %88 %88 1 3 0 2 - OpStore %85 %89 None + %33 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 + %36 = OpLoad %_arr_S_std140_uint_4 %33 None + %37 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %36 + OpStore %40 %37 + OpBranch %45 + %45 = OpLabel + OpBranch %48 + %48 = OpLabel + %50 = OpPhi %uint %uint_0 %45 %51 %47 + OpLoopMerge %49 %47 None + OpBranch %46 + %46 = OpLabel + %81 = OpUGreaterThanEqual %bool %50 %uint_4 + OpSelectionMerge %82 None + OpBranchConditional %81 %83 %82 + %83 = OpLabel + OpBranch %49 + %82 = OpLabel + %84 = OpAccessChain %_ptr_Function_S %42 %50 + %86 = OpAccessChain %_ptr_Function_S_std140 %40 %50 + %88 = OpLoad %S_std140 %86 None + %89 = OpFunctionCall %S %tint_convert_S %88 + OpStore %84 %89 None + OpBranch %47 + %47 = OpLabel + %51 = OpIAdd %uint %50 %uint_1 + OpBranch %48 + %49 = OpLabel + %52 = OpLoad %_arr_S_uint_4 %42 None + OpStore %w %52 None + %53 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 + %56 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %58 = OpLoad %S_std140 %56 None + %59 = OpFunctionCall %S %tint_convert_S %58 + OpStore %53 %59 None + %61 = OpAccessChain %_ptr_Workgroup_mat2v4half %w %uint_3 %uint_1 + %64 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 + %66 = OpLoad %v4half %64 None + %67 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 + %68 = OpLoad %v4half %67 None + %69 = OpCompositeConstruct %mat2v4half %66 %68 + OpStore %61 %69 None + %70 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_1 %uint_1 %uint_0 + %72 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 + %73 = OpLoad %v4half %72 None + %74 = OpVectorShuffle %v4half %73 %73 1 3 0 2 + OpStore %70 %74 None OpReturn OpFunctionEnd %f = OpFunction %void None %91 @@ -191,21 +191,21 @@ OpLoopMerge %115 %113 None OpBranch %112 %112 = OpLabel - %118 = OpUGreaterThanEqual %bool %116 %uint_4 - OpSelectionMerge %119 None - OpBranchConditional %118 %120 %119 - %120 = OpLabel + %119 = OpUGreaterThanEqual %bool %116 %uint_4 + OpSelectionMerge %120 None + OpBranchConditional %119 %121 %120 + %121 = OpLabel OpBranch %115 - %119 = OpLabel - %121 = OpAccessChain %_ptr_Function_S_std140 %107 %116 - %122 = OpLoad %S_std140 %121 None - %123 = OpAccessChain %_ptr_Function_S_std140 %109 %116 - OpStore %123 %122 None + %120 = OpLabel + %122 = OpAccessChain %_ptr_Function_S_std140 %107 %116 + %123 = OpLoad %S_std140 %122 None + %124 = OpAccessChain %_ptr_Function_S_std140 %109 %116 + OpStore %124 %123 None OpBranch %113 %113 = OpLabel %117 = OpIAdd %uint %116 %uint_1 OpBranch %114 %115 = OpLabel - %124 = OpLoad %_arr_S_std140_uint_4_0 %109 None - OpReturnValue %124 + %118 = OpLoad %_arr_S_std140_uint_4_0 %109 None + OpReturnValue %118 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.spvasm index c0ea4c2..9c21d4f 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -150,23 +150,23 @@ OpLoopMerge %86 %84 None OpBranch %83 %83 = OpLabel - %89 = OpUGreaterThanEqual %bool %87 %uint_4 - OpSelectionMerge %91 None - OpBranchConditional %89 %92 %91 - %92 = OpLabel + %90 = OpUGreaterThanEqual %bool %87 %uint_4 + OpSelectionMerge %92 None + OpBranchConditional %90 %93 %92 + %93 = OpLabel OpBranch %86 - %91 = OpLabel - %93 = OpAccessChain %_ptr_Function_Inner %77 %87 - %95 = OpLoad %Inner %93 None - %96 = OpAccessChain %_ptr_Function_Inner %79 %87 - OpStore %96 %95 None + %92 = OpLabel + %94 = OpAccessChain %_ptr_Function_Inner %77 %87 + %96 = OpLoad %Inner %94 None + %97 = OpAccessChain %_ptr_Function_Inner %79 %87 + OpStore %97 %96 None OpBranch %84 %84 = OpLabel %88 = OpIAdd %uint %87 %uint_1 OpBranch %85 %86 = OpLabel - %97 = OpLoad %_arr_Inner_uint_4_0 %79 None - OpReturnValue %97 + %89 = OpLoad %_arr_Inner_uint_4_0 %79 None + OpReturnValue %89 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer None %99 %tint_source_0 = OpFunctionParameter %Outer_tint_explicit_layout @@ -190,22 +190,22 @@ OpLoopMerge %116 %114 None OpBranch %113 %113 = OpLabel - %119 = OpUGreaterThanEqual %bool %117 %uint_4 - OpSelectionMerge %120 None - OpBranchConditional %119 %121 %120 - %121 = OpLabel + %120 = OpUGreaterThanEqual %bool %117 %uint_4 + OpSelectionMerge %121 None + OpBranchConditional %120 %122 %121 + %122 = OpLabel OpBranch %116 - %120 = OpLabel - %122 = OpAccessChain %_ptr_Function_Outer_tint_explicit_layout %107 %117 - %124 = OpLoad %Outer_tint_explicit_layout %122 None - %125 = OpFunctionCall %Outer %tint_convert_explicit_layout_0 %124 - %126 = OpAccessChain %_ptr_Function_Outer %109 %117 - OpStore %126 %125 None + %121 = OpLabel + %123 = OpAccessChain %_ptr_Function_Outer_tint_explicit_layout %107 %117 + %125 = OpLoad %Outer_tint_explicit_layout %123 None + %126 = OpFunctionCall %Outer %tint_convert_explicit_layout_0 %125 + %127 = OpAccessChain %_ptr_Function_Outer %109 %117 + OpStore %127 %126 None OpBranch %114 %114 = OpLabel %118 = OpIAdd %uint %117 %uint_1 OpBranch %115 %116 = OpLabel - %128 = OpLoad %_arr_Outer_uint_4 %109 None - OpReturnValue %128 + %119 = OpLoad %_arr_Outer_uint_4 %109 None + OpReturnValue %119 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.spvasm index 7ea7a64..d2fc1ed 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.spvasm
@@ -122,23 +122,23 @@ OpLoopMerge %63 %61 None OpBranch %60 %60 = OpLabel - %66 = OpUGreaterThanEqual %bool %64 %uint_4 - OpSelectionMerge %68 None - OpBranchConditional %66 %69 %68 - %69 = OpLabel + %67 = OpUGreaterThanEqual %bool %64 %uint_4 + OpSelectionMerge %69 None + OpBranchConditional %67 %70 %69 + %70 = OpLabel OpBranch %63 - %68 = OpLabel - %70 = OpAccessChain %_ptr_Function_Inner %54 %64 - %72 = OpLoad %Inner %70 None - %73 = OpAccessChain %_ptr_Function_Inner %56 %64 - OpStore %73 %72 None + %69 = OpLabel + %71 = OpAccessChain %_ptr_Function_Inner %54 %64 + %73 = OpLoad %Inner %71 None + %74 = OpAccessChain %_ptr_Function_Inner %56 %64 + OpStore %74 %73 None OpBranch %61 %61 = OpLabel %65 = OpIAdd %uint %64 %uint_1 OpBranch %62 %63 = OpLabel - %74 = OpLoad %_arr_Inner_uint_4_0 %56 None - OpReturnValue %74 + %66 = OpLoad %_arr_Inner_uint_4_0 %56 None + OpReturnValue %66 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer None %76 %tint_source_0 = OpFunctionParameter %Outer_tint_explicit_layout @@ -162,22 +162,22 @@ OpLoopMerge %93 %91 None OpBranch %90 %90 = OpLabel - %96 = OpUGreaterThanEqual %bool %94 %uint_4 - OpSelectionMerge %97 None - OpBranchConditional %96 %98 %97 - %98 = OpLabel + %97 = OpUGreaterThanEqual %bool %94 %uint_4 + OpSelectionMerge %98 None + OpBranchConditional %97 %99 %98 + %99 = OpLabel OpBranch %93 - %97 = OpLabel - %99 = OpAccessChain %_ptr_Function_Outer_tint_explicit_layout %84 %94 - %101 = OpLoad %Outer_tint_explicit_layout %99 None - %102 = OpFunctionCall %Outer %tint_convert_explicit_layout_0 %101 - %103 = OpAccessChain %_ptr_Function_Outer %86 %94 - OpStore %103 %102 None + %98 = OpLabel + %100 = OpAccessChain %_ptr_Function_Outer_tint_explicit_layout %84 %94 + %102 = OpLoad %Outer_tint_explicit_layout %100 None + %103 = OpFunctionCall %Outer %tint_convert_explicit_layout_0 %102 + %104 = OpAccessChain %_ptr_Function_Outer %86 %94 + OpStore %104 %103 None OpBranch %91 %91 = OpLabel %95 = OpIAdd %uint %94 %uint_1 OpBranch %92 %93 = OpLabel - %105 = OpLoad %_arr_Outer_uint_4 %86 None - OpReturnValue %105 + %96 = OpLoad %_arr_Outer_uint_4 %86 None + OpReturnValue %96 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.spvasm index dcf1209..e6f0da6 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.spvasm
@@ -131,21 +131,21 @@ OpLoopMerge %76 %74 None OpBranch %73 %73 = OpLabel - %79 = OpUGreaterThanEqual %bool %77 %uint_4 - OpSelectionMerge %81 None - OpBranchConditional %79 %82 %81 - %82 = OpLabel + %80 = OpUGreaterThanEqual %bool %77 %uint_4 + OpSelectionMerge %82 None + OpBranchConditional %80 %83 %82 + %83 = OpLabel OpBranch %76 - %81 = OpLabel - %83 = OpAccessChain %_ptr_Function_S %67 %77 - %85 = OpLoad %S %83 None - %86 = OpAccessChain %_ptr_Function_S %69 %77 - OpStore %86 %85 None + %82 = OpLabel + %84 = OpAccessChain %_ptr_Function_S %67 %77 + %86 = OpLoad %S %84 None + %87 = OpAccessChain %_ptr_Function_S %69 %77 + OpStore %87 %86 None OpBranch %74 %74 = OpLabel %78 = OpIAdd %uint %77 %uint_1 OpBranch %75 %76 = OpLabel - %87 = OpLoad %_arr_S_uint_4_0 %69 None - OpReturnValue %87 + %79 = OpLoad %_arr_S_uint_4_0 %69 None + OpReturnValue %79 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.spvasm index 29753c7..cb538a7 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.spvasm
@@ -115,22 +115,22 @@ OpLoopMerge %66 %64 None OpBranch %63 %63 = OpLabel - %69 = OpUGreaterThanEqual %bool %67 %uint_4 - OpSelectionMerge %71 None - OpBranchConditional %69 %72 %71 - %72 = OpLabel + %70 = OpUGreaterThanEqual %bool %67 %uint_4 + OpSelectionMerge %72 None + OpBranchConditional %70 %73 %72 + %73 = OpLabel OpBranch %66 - %71 = OpLabel - %73 = OpAccessChain %_ptr_Function_S_tint_explicit_layout %58 %67 - %75 = OpLoad %S_tint_explicit_layout %73 None - %76 = OpFunctionCall %S %tint_convert_explicit_layout %75 - %77 = OpAccessChain %_ptr_Function_S %60 %67 - OpStore %77 %76 None + %72 = OpLabel + %74 = OpAccessChain %_ptr_Function_S_tint_explicit_layout %58 %67 + %76 = OpLoad %S_tint_explicit_layout %74 None + %77 = OpFunctionCall %S %tint_convert_explicit_layout %76 + %78 = OpAccessChain %_ptr_Function_S %60 %67 + OpStore %78 %77 None OpBranch %64 %64 = OpLabel %68 = OpIAdd %uint %67 %uint_1 OpBranch %65 %66 = OpLabel - %79 = OpLoad %_arr_S_uint_4 %60 None - OpReturnValue %79 + %69 = OpLoad %_arr_S_uint_4 %60 None + OpReturnValue %69 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_storage.wgsl.expected.spvasm index f9b0530..01517ba 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_storage.wgsl.expected.spvasm
@@ -157,21 +157,21 @@ OpLoopMerge %93 %91 None OpBranch %90 %90 = OpLabel - %96 = OpUGreaterThanEqual %bool %94 %uint_4 - OpSelectionMerge %97 None - OpBranchConditional %96 %98 %97 - %98 = OpLabel + %97 = OpUGreaterThanEqual %bool %94 %uint_4 + OpSelectionMerge %98 None + OpBranchConditional %97 %99 %98 + %99 = OpLabel OpBranch %93 - %97 = OpLabel - %99 = OpAccessChain %_ptr_Function_S %85 %94 - %100 = OpLoad %S %99 None - %101 = OpAccessChain %_ptr_Function_S %87 %94 - OpStore %101 %100 None + %98 = OpLabel + %100 = OpAccessChain %_ptr_Function_S %85 %94 + %101 = OpLoad %S %100 None + %102 = OpAccessChain %_ptr_Function_S %87 %94 + OpStore %102 %101 None OpBranch %91 %91 = OpLabel %95 = OpIAdd %uint %94 %uint_1 OpBranch %92 %93 = OpLabel - %102 = OpLoad %_arr_S_uint_4_0 %87 None - OpReturnValue %102 + %96 = OpLoad %_arr_S_uint_4_0 %87 None + OpReturnValue %96 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.spvasm index 76f0837..7604ecb 100644 --- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.spvasm
@@ -57,20 +57,20 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %21 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_S = OpTypePointer Workgroup %S - %36 = OpConstantNull %S - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_S_tint_explicit_layout_uint_4 = OpTypePointer Uniform %_arr_S_tint_explicit_layout_uint_4 %uint_0 = OpConstant %uint 0 +%_ptr_Workgroup_S = OpTypePointer Workgroup %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_tint_explicit_layout = OpTypePointer Uniform %S_tint_explicit_layout %_ptr_Workgroup_mat2v4float = OpTypePointer Workgroup %mat2v4float %uint_3 = OpConstant %uint 3 %_ptr_Uniform_mat2v4float = OpTypePointer Uniform %mat2v4float %_ptr_Workgroup_v4float = OpTypePointer Workgroup %v4float %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float + %bool = OpTypeBool + %64 = OpConstantNull %S %66 = OpTypeFunction %void %71 = OpTypeFunction %S %S_tint_explicit_layout %78 = OpTypeFunction %_arr_S_uint_4 %_arr_S_tint_explicit_layout_uint_4 @@ -90,38 +90,38 @@ OpLoopMerge %27 %25 None OpBranch %24 %24 = OpLabel - %30 = OpUGreaterThanEqual %bool %28 %uint_4 - OpSelectionMerge %32 None - OpBranchConditional %30 %33 %32 - %33 = OpLabel + %59 = OpUGreaterThanEqual %bool %28 %uint_4 + OpSelectionMerge %61 None + OpBranchConditional %59 %62 %61 + %62 = OpLabel OpBranch %27 - %32 = OpLabel - %34 = OpAccessChain %_ptr_Workgroup_S %w %28 - OpStore %34 %36 None + %61 = OpLabel + %63 = OpAccessChain %_ptr_Workgroup_S %w %28 + OpStore %63 %64 None OpBranch %25 %25 = OpLabel %29 = OpIAdd %uint %28 %uint_1 OpBranch %26 %27 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %41 = OpAccessChain %_ptr_Uniform__arr_S_tint_explicit_layout_uint_4 %1 %uint_0 - %44 = OpLoad %_arr_S_tint_explicit_layout_uint_4 %41 None - %45 = OpFunctionCall %_arr_S_uint_4 %tint_convert_explicit_layout_0 %44 - OpStore %w %45 None - %47 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 - %48 = OpAccessChain %_ptr_Uniform_S_tint_explicit_layout %1 %uint_0 %uint_2 - %50 = OpLoad %S_tint_explicit_layout %48 None - %51 = OpFunctionCall %S %tint_convert_explicit_layout %50 - OpStore %47 %51 None - %53 = OpAccessChain %_ptr_Workgroup_mat2v4float %w %uint_3 %uint_1 - %56 = OpAccessChain %_ptr_Uniform_mat2v4float %1 %uint_0 %uint_2 %uint_1 - %58 = OpLoad %mat2v4float %56 None + %33 = OpAccessChain %_ptr_Uniform__arr_S_tint_explicit_layout_uint_4 %1 %uint_0 + %36 = OpLoad %_arr_S_tint_explicit_layout_uint_4 %33 None + %37 = OpFunctionCall %_arr_S_uint_4 %tint_convert_explicit_layout_0 %36 + OpStore %w %37 None + %39 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 + %42 = OpAccessChain %_ptr_Uniform_S_tint_explicit_layout %1 %uint_0 %uint_2 + %44 = OpLoad %S_tint_explicit_layout %42 None + %45 = OpFunctionCall %S %tint_convert_explicit_layout %44 + OpStore %39 %45 None + %47 = OpAccessChain %_ptr_Workgroup_mat2v4float %w %uint_3 %uint_1 + %50 = OpAccessChain %_ptr_Uniform_mat2v4float %1 %uint_0 %uint_2 %uint_1 + %52 = OpLoad %mat2v4float %50 None + OpStore %47 %52 None + %53 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 %uint_1 %uint_0 + %55 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 %uint_1 %uint_1 + %57 = OpLoad %v4float %55 None + %58 = OpVectorShuffle %v4float %57 %57 1 3 0 2 OpStore %53 %58 None - %59 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 %uint_1 %uint_0 - %61 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 %uint_1 %uint_1 - %63 = OpLoad %v4float %61 None - %64 = OpVectorShuffle %v4float %63 %63 1 3 0 2 - OpStore %59 %64 None OpReturn OpFunctionEnd %f = OpFunction %void None %66 @@ -153,22 +153,22 @@ OpLoopMerge %89 %87 None OpBranch %86 %86 = OpLabel - %92 = OpUGreaterThanEqual %bool %90 %uint_4 - OpSelectionMerge %93 None - OpBranchConditional %92 %94 %93 - %94 = OpLabel + %93 = OpUGreaterThanEqual %bool %90 %uint_4 + OpSelectionMerge %94 None + OpBranchConditional %93 %95 %94 + %95 = OpLabel OpBranch %89 - %93 = OpLabel - %95 = OpAccessChain %_ptr_Function_S_tint_explicit_layout %80 %90 - %97 = OpLoad %S_tint_explicit_layout %95 None - %98 = OpFunctionCall %S %tint_convert_explicit_layout %97 - %99 = OpAccessChain %_ptr_Function_S %82 %90 - OpStore %99 %98 None + %94 = OpLabel + %96 = OpAccessChain %_ptr_Function_S_tint_explicit_layout %80 %90 + %98 = OpLoad %S_tint_explicit_layout %96 None + %99 = OpFunctionCall %S %tint_convert_explicit_layout %98 + %100 = OpAccessChain %_ptr_Function_S %82 %90 + OpStore %100 %99 None OpBranch %87 %87 = OpLabel %91 = OpIAdd %uint %90 %uint_1 OpBranch %88 %89 = OpLabel - %101 = OpLoad %_arr_S_uint_4 %82 None - OpReturnValue %101 + %92 = OpLoad %_arr_S_uint_4 %82 None + OpReturnValue %92 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.spvasm index 327ab67..dad729a 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -97,12 +97,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %77 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %98 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %108 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %134 = OpTypeFunction %Inner %Inner_std140 @@ -128,8 +128,8 @@ %55 = OpVariable %_ptr_Function_mat3v2half Function %69 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %71 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %77 - %104 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %106 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %108 + %94 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %96 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %98 %27 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %30 = OpFunctionCall %int %i %31 = OpBitcast %uint %30 @@ -164,60 +164,60 @@ OpLoopMerge %82 %80 None OpBranch %79 %79 = OpLabel - %85 = OpUGreaterThanEqual %bool %83 %uint_4 - OpSelectionMerge %87 None - OpBranchConditional %85 %88 %87 - %88 = OpLabel + %114 = OpUGreaterThanEqual %bool %83 %uint_4 + OpSelectionMerge %116 None + OpBranchConditional %114 %117 %116 + %117 = OpLabel OpBranch %82 - %87 = OpLabel - %89 = OpAccessChain %_ptr_Function_Outer %71 %83 - %91 = OpAccessChain %_ptr_Function_Outer_std140 %69 %83 - %93 = OpLoad %Outer_std140 %91 None - %94 = OpFunctionCall %Outer %tint_convert_Outer %93 - OpStore %89 %94 None + %116 = OpLabel + %118 = OpAccessChain %_ptr_Function_Outer %71 %83 + %120 = OpAccessChain %_ptr_Function_Outer_std140 %69 %83 + %122 = OpLoad %Outer_std140 %120 None + %123 = OpFunctionCall %Outer %tint_convert_Outer %122 + OpStore %118 %123 None OpBranch %80 %80 = OpLabel %84 = OpIAdd %uint %83 %uint_1 OpBranch %81 %82 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %71 None - %97 = OpLoad %Outer_std140_tint_explicit_layout %35 None - %98 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %97 - %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %98 - %101 = OpLoad %_arr_Inner_std140_uint_4 %37 None - %102 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %101 - OpStore %104 %102 - OpBranch %109 - %109 = OpLabel - OpBranch %112 - %112 = OpLabel - %114 = OpPhi %uint %uint_0 %109 %115 %111 - OpLoopMerge %113 %111 None - OpBranch %110 - %110 = OpLabel - %116 = OpUGreaterThanEqual %bool %114 %uint_4 - OpSelectionMerge %117 None - OpBranchConditional %116 %118 %117 - %118 = OpLabel - OpBranch %113 - %117 = OpLabel - %119 = OpAccessChain %_ptr_Function_Inner %106 %114 - %121 = OpAccessChain %_ptr_Function_Inner_std140 %104 %114 - %123 = OpLoad %Inner_std140 %121 None - %124 = OpFunctionCall %Inner %tint_convert_Inner %123 - OpStore %119 %124 None - OpBranch %111 - %111 = OpLabel - %115 = OpIAdd %uint %114 %uint_1 - OpBranch %112 - %113 = OpLabel - %l_a_i_a = OpLoad %_arr_Inner_uint_4 %106 None - %127 = OpLoad %Inner_std140 %42 None - %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %127 - %129 = OpFunctionCall %int %i - %130 = OpBitcast %uint %129 - %131 = OpExtInst %uint %33 UMin %130 %uint_1 -%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %half %l_a_i_a_i_m_i %131 + %86 = OpLoad %Outer_std140_tint_explicit_layout %35 None + %87 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %86 + %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %87 + %91 = OpLoad %_arr_Inner_std140_uint_4 %37 None + %92 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %91 + OpStore %94 %92 + OpBranch %99 + %99 = OpLabel + OpBranch %102 + %102 = OpLabel + %104 = OpPhi %uint %uint_0 %99 %105 %101 + OpLoopMerge %103 %101 None + OpBranch %100 + %100 = OpLabel + %124 = OpUGreaterThanEqual %bool %104 %uint_4 + OpSelectionMerge %125 None + OpBranchConditional %124 %126 %125 + %126 = OpLabel + OpBranch %103 + %125 = OpLabel + %127 = OpAccessChain %_ptr_Function_Inner %96 %104 + %129 = OpAccessChain %_ptr_Function_Inner_std140 %94 %104 + %131 = OpLoad %Inner_std140 %129 None + %132 = OpFunctionCall %Inner %tint_convert_Inner %131 + OpStore %127 %132 None + OpBranch %101 + %101 = OpLabel + %105 = OpIAdd %uint %104 %uint_1 + OpBranch %102 + %103 = OpLabel + %l_a_i_a = OpLoad %_arr_Inner_uint_4 %96 None + %107 = OpLoad %Inner_std140 %42 None + %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %107 + %110 = OpFunctionCall %int %i + %111 = OpBitcast %uint %110 + %112 = OpExtInst %uint %33 UMin %111 %uint_1 +%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %half %l_a_i_a_i_m_i %112 OpReturn OpFunctionEnd %tint_convert_Inner = OpFunction %Inner None %134 @@ -234,7 +234,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %143 = OpLabel %145 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %146 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %108 + %146 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %98 %144 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %145 %144 OpBranch %147 @@ -245,25 +245,25 @@ OpLoopMerge %151 %149 None OpBranch %148 %148 = OpLabel - %154 = OpUGreaterThanEqual %bool %152 %uint_4 - OpSelectionMerge %155 None - OpBranchConditional %154 %156 %155 - %156 = OpLabel + %156 = OpUGreaterThanEqual %bool %152 %uint_4 + OpSelectionMerge %157 None + OpBranchConditional %156 %158 %157 + %158 = OpLabel OpBranch %151 - %155 = OpLabel - %157 = OpAccessChain %_ptr_Function_Inner %146 %152 - %158 = OpAccessChain %_ptr_Function_Inner_std140 %145 %152 - %159 = OpLoad %Inner_std140 %158 None - %160 = OpFunctionCall %Inner %tint_convert_Inner %159 - OpStore %157 %160 None + %157 = OpLabel + %159 = OpAccessChain %_ptr_Function_Inner %146 %152 + %160 = OpAccessChain %_ptr_Function_Inner_std140 %145 %152 + %161 = OpLoad %Inner_std140 %160 None + %162 = OpFunctionCall %Inner %tint_convert_Inner %161 + OpStore %159 %162 None OpBranch %149 %149 = OpLabel %153 = OpIAdd %uint %152 %uint_1 OpBranch %150 %151 = OpLabel - %161 = OpLoad %_arr_Inner_uint_4 %146 None - %162 = OpCompositeConstruct %Outer %161 - OpReturnValue %162 + %154 = OpLoad %_arr_Inner_uint_4 %146 None + %155 = OpCompositeConstruct %Outer %154 + OpReturnValue %155 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %164 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -279,23 +279,23 @@ OpLoopMerge %174 %172 None OpBranch %171 %171 = OpLabel - %177 = OpUGreaterThanEqual %bool %175 %uint_4 - OpSelectionMerge %178 None - OpBranchConditional %177 %179 %178 - %179 = OpLabel + %178 = OpUGreaterThanEqual %bool %175 %uint_4 + OpSelectionMerge %179 None + OpBranchConditional %178 %180 %179 + %180 = OpLabel OpBranch %174 - %178 = OpLabel - %180 = OpAccessChain %_ptr_Function_Inner_std140 %166 %175 - %181 = OpLoad %Inner_std140 %180 None - %182 = OpAccessChain %_ptr_Function_Inner_std140 %168 %175 - OpStore %182 %181 None + %179 = OpLabel + %181 = OpAccessChain %_ptr_Function_Inner_std140 %166 %175 + %182 = OpLoad %Inner_std140 %181 None + %183 = OpAccessChain %_ptr_Function_Inner_std140 %168 %175 + OpStore %183 %182 None OpBranch %172 %172 = OpLabel %176 = OpIAdd %uint %175 %uint_1 OpBranch %173 %174 = OpLabel - %183 = OpLoad %_arr_Inner_std140_uint_4_0 %168 None - OpReturnValue %183 + %177 = OpLoad %_arr_Inner_std140_uint_4_0 %168 None + OpReturnValue %177 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %185 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -319,22 +319,22 @@ OpLoopMerge %201 %199 None OpBranch %198 %198 = OpLabel - %204 = OpUGreaterThanEqual %bool %202 %uint_4 - OpSelectionMerge %205 None - OpBranchConditional %204 %206 %205 - %206 = OpLabel + %205 = OpUGreaterThanEqual %bool %202 %uint_4 + OpSelectionMerge %206 None + OpBranchConditional %205 %207 %206 + %207 = OpLabel OpBranch %201 - %205 = OpLabel - %207 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %193 %202 - %209 = OpLoad %Outer_std140_tint_explicit_layout %207 None - %210 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %209 - %211 = OpAccessChain %_ptr_Function_Outer_std140 %195 %202 - OpStore %211 %210 None + %206 = OpLabel + %208 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %193 %202 + %210 = OpLoad %Outer_std140_tint_explicit_layout %208 None + %211 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %210 + %212 = OpAccessChain %_ptr_Function_Outer_std140 %195 %202 + OpStore %212 %211 None OpBranch %199 %199 = OpLabel %203 = OpIAdd %uint %202 %uint_1 OpBranch %200 %201 = OpLabel - %212 = OpLoad %_arr_Outer_std140_uint_4 %195 None - OpReturnValue %212 + %204 = OpLoad %_arr_Outer_std140_uint_4 %195 None + OpReturnValue %204 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.spvasm index 43931d0..406de26 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.spvasm
@@ -86,12 +86,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %52 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %73 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %83 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %106 = OpTypeFunction %Inner %Inner_std140 @@ -108,8 +108,8 @@ %15 = OpLabel %44 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %46 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %52 - %79 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %81 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %83 + %69 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %71 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %73 %16 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %19 = OpAccessChain %_ptr_Uniform_Outer_std140_tint_explicit_layout %16 %uint_3 %22 = OpAccessChain %_ptr_Uniform__arr_Inner_std140_uint_4 %19 %uint_0 @@ -133,56 +133,56 @@ OpLoopMerge %57 %55 None OpBranch %54 %54 = OpLabel - %60 = OpUGreaterThanEqual %bool %58 %uint_4 - OpSelectionMerge %62 None - OpBranchConditional %60 %63 %62 - %63 = OpLabel + %86 = OpUGreaterThanEqual %bool %58 %uint_4 + OpSelectionMerge %88 None + OpBranchConditional %86 %89 %88 + %89 = OpLabel OpBranch %57 - %62 = OpLabel - %64 = OpAccessChain %_ptr_Function_Outer %46 %58 - %66 = OpAccessChain %_ptr_Function_Outer_std140 %44 %58 - %68 = OpLoad %Outer_std140 %66 None - %69 = OpFunctionCall %Outer %tint_convert_Outer %68 - OpStore %64 %69 None + %88 = OpLabel + %90 = OpAccessChain %_ptr_Function_Outer %46 %58 + %92 = OpAccessChain %_ptr_Function_Outer_std140 %44 %58 + %94 = OpLoad %Outer_std140 %92 None + %95 = OpFunctionCall %Outer %tint_convert_Outer %94 + OpStore %90 %95 None OpBranch %55 %55 = OpLabel %59 = OpIAdd %uint %58 %uint_1 OpBranch %56 %57 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %46 None - %72 = OpLoad %Outer_std140_tint_explicit_layout %19 None - %73 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %72 - %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %73 - %76 = OpLoad %_arr_Inner_std140_uint_4 %22 None - %77 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %76 - OpStore %79 %77 - OpBranch %84 - %84 = OpLabel - OpBranch %87 - %87 = OpLabel - %89 = OpPhi %uint %uint_0 %84 %90 %86 - OpLoopMerge %88 %86 None - OpBranch %85 - %85 = OpLabel - %91 = OpUGreaterThanEqual %bool %89 %uint_4 - OpSelectionMerge %92 None - OpBranchConditional %91 %93 %92 - %93 = OpLabel - OpBranch %88 - %92 = OpLabel - %94 = OpAccessChain %_ptr_Function_Inner %81 %89 - %96 = OpAccessChain %_ptr_Function_Inner_std140 %79 %89 - %98 = OpLoad %Inner_std140 %96 None - %99 = OpFunctionCall %Inner %tint_convert_Inner %98 - OpStore %94 %99 None - OpBranch %86 - %86 = OpLabel - %90 = OpIAdd %uint %89 %uint_1 - OpBranch %87 - %88 = OpLabel - %l_a_3_a = OpLoad %_arr_Inner_uint_4 %81 None - %102 = OpLoad %Inner_std140 %24 None - %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %102 + %61 = OpLoad %Outer_std140_tint_explicit_layout %19 None + %62 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %61 + %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %62 + %66 = OpLoad %_arr_Inner_std140_uint_4 %22 None + %67 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %66 + OpStore %69 %67 + OpBranch %74 + %74 = OpLabel + OpBranch %77 + %77 = OpLabel + %79 = OpPhi %uint %uint_0 %74 %80 %76 + OpLoopMerge %78 %76 None + OpBranch %75 + %75 = OpLabel + %96 = OpUGreaterThanEqual %bool %79 %uint_4 + OpSelectionMerge %97 None + OpBranchConditional %96 %98 %97 + %98 = OpLabel + OpBranch %78 + %97 = OpLabel + %99 = OpAccessChain %_ptr_Function_Inner %71 %79 + %101 = OpAccessChain %_ptr_Function_Inner_std140 %69 %79 + %103 = OpLoad %Inner_std140 %101 None + %104 = OpFunctionCall %Inner %tint_convert_Inner %103 + OpStore %99 %104 None + OpBranch %76 + %76 = OpLabel + %80 = OpIAdd %uint %79 %uint_1 + OpBranch %77 + %78 = OpLabel + %l_a_3_a = OpLoad %_arr_Inner_uint_4 %71 None + %82 = OpLoad %Inner_std140 %24 None + %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %82 %l_a_3_a_2_m_1_0 = OpCompositeExtract %half %l_a_3_a_2_m_1 0 OpReturn OpFunctionEnd @@ -200,7 +200,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %115 = OpLabel %117 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %118 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %83 + %118 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %73 %116 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %117 %116 OpBranch %119 @@ -211,25 +211,25 @@ OpLoopMerge %123 %121 None OpBranch %120 %120 = OpLabel - %126 = OpUGreaterThanEqual %bool %124 %uint_4 - OpSelectionMerge %127 None - OpBranchConditional %126 %128 %127 - %128 = OpLabel + %128 = OpUGreaterThanEqual %bool %124 %uint_4 + OpSelectionMerge %129 None + OpBranchConditional %128 %130 %129 + %130 = OpLabel OpBranch %123 - %127 = OpLabel - %129 = OpAccessChain %_ptr_Function_Inner %118 %124 - %130 = OpAccessChain %_ptr_Function_Inner_std140 %117 %124 - %131 = OpLoad %Inner_std140 %130 None - %132 = OpFunctionCall %Inner %tint_convert_Inner %131 - OpStore %129 %132 None + %129 = OpLabel + %131 = OpAccessChain %_ptr_Function_Inner %118 %124 + %132 = OpAccessChain %_ptr_Function_Inner_std140 %117 %124 + %133 = OpLoad %Inner_std140 %132 None + %134 = OpFunctionCall %Inner %tint_convert_Inner %133 + OpStore %131 %134 None OpBranch %121 %121 = OpLabel %125 = OpIAdd %uint %124 %uint_1 OpBranch %122 %123 = OpLabel - %133 = OpLoad %_arr_Inner_uint_4 %118 None - %134 = OpCompositeConstruct %Outer %133 - OpReturnValue %134 + %126 = OpLoad %_arr_Inner_uint_4 %118 None + %127 = OpCompositeConstruct %Outer %126 + OpReturnValue %127 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %136 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -245,23 +245,23 @@ OpLoopMerge %146 %144 None OpBranch %143 %143 = OpLabel - %149 = OpUGreaterThanEqual %bool %147 %uint_4 - OpSelectionMerge %150 None - OpBranchConditional %149 %151 %150 - %151 = OpLabel + %150 = OpUGreaterThanEqual %bool %147 %uint_4 + OpSelectionMerge %151 None + OpBranchConditional %150 %152 %151 + %152 = OpLabel OpBranch %146 - %150 = OpLabel - %152 = OpAccessChain %_ptr_Function_Inner_std140 %138 %147 - %153 = OpLoad %Inner_std140 %152 None - %154 = OpAccessChain %_ptr_Function_Inner_std140 %140 %147 - OpStore %154 %153 None + %151 = OpLabel + %153 = OpAccessChain %_ptr_Function_Inner_std140 %138 %147 + %154 = OpLoad %Inner_std140 %153 None + %155 = OpAccessChain %_ptr_Function_Inner_std140 %140 %147 + OpStore %155 %154 None OpBranch %144 %144 = OpLabel %148 = OpIAdd %uint %147 %uint_1 OpBranch %145 %146 = OpLabel - %155 = OpLoad %_arr_Inner_std140_uint_4_0 %140 None - OpReturnValue %155 + %149 = OpLoad %_arr_Inner_std140_uint_4_0 %140 None + OpReturnValue %149 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %157 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -285,22 +285,22 @@ OpLoopMerge %173 %171 None OpBranch %170 %170 = OpLabel - %176 = OpUGreaterThanEqual %bool %174 %uint_4 - OpSelectionMerge %177 None - OpBranchConditional %176 %178 %177 - %178 = OpLabel + %177 = OpUGreaterThanEqual %bool %174 %uint_4 + OpSelectionMerge %178 None + OpBranchConditional %177 %179 %178 + %179 = OpLabel OpBranch %173 - %177 = OpLabel - %179 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %165 %174 - %181 = OpLoad %Outer_std140_tint_explicit_layout %179 None - %182 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %181 - %183 = OpAccessChain %_ptr_Function_Outer_std140 %167 %174 - OpStore %183 %182 None + %178 = OpLabel + %180 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %165 %174 + %182 = OpLoad %Outer_std140_tint_explicit_layout %180 None + %183 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %182 + %184 = OpAccessChain %_ptr_Function_Outer_std140 %167 %174 + OpStore %184 %183 None OpBranch %171 %171 = OpLabel %175 = OpIAdd %uint %174 %uint_1 OpBranch %172 %173 = OpLabel - %184 = OpLoad %_arr_Outer_std140_uint_4 %167 None - OpReturnValue %184 + %176 = OpLoad %_arr_Outer_std140_uint_4 %167 None + OpReturnValue %176 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.spvasm index 08cfab3..734d5de 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.spvasm
@@ -74,14 +74,14 @@ %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %49 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Uniform_v2half = OpTypePointer Uniform %v2half + %uint_1 = OpConstant %uint 1 %uint_3 = OpConstant %uint 3 + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %97 = OpTypeFunction %S %S_std140 %107 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -127,45 +127,45 @@ OpLoopMerge %54 %52 None OpBranch %51 %51 = OpLabel - %57 = OpUGreaterThanEqual %bool %55 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel + %86 = OpUGreaterThanEqual %bool %55 %uint_4 + OpSelectionMerge %88 None + OpBranchConditional %86 %89 %88 + %89 = OpLabel OpBranch %54 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_S %47 %55 - %63 = OpAccessChain %_ptr_Function_S_std140 %45 %55 - %65 = OpLoad %S_std140 %63 None - %66 = OpFunctionCall %S %tint_convert_S %65 - OpStore %61 %66 None + %88 = OpLabel + %90 = OpAccessChain %_ptr_Function_S %47 %55 + %92 = OpAccessChain %_ptr_Function_S_std140 %45 %55 + %94 = OpLoad %S_std140 %92 None + %95 = OpFunctionCall %S %tint_convert_S %94 + OpStore %90 %95 None OpBranch %52 %52 = OpLabel %56 = OpIAdd %uint %55 %uint_1 OpBranch %53 %54 = OpLabel - %69 = OpLoad %_arr_S_uint_4 %47 None - %70 = OpFunctionCall %void %a %69 - %71 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %71 None - %75 = OpFunctionCall %S %tint_convert_S %74 - %76 = OpFunctionCall %void %b %75 - %77 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 - %79 = OpLoad %v2half %77 None - %80 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 - %81 = OpLoad %v2half %80 None - %82 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_3 - %84 = OpLoad %v2half %82 None - %85 = OpCompositeConstruct %mat3v2half %79 %81 %84 - %86 = OpFunctionCall %void %c %85 - %87 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 - %88 = OpLoad %v2half %87 None - %89 = OpVectorShuffle %v2half %88 %88 1 0 - %90 = OpFunctionCall %void %d %89 - %91 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 - %92 = OpLoad %v2half %91 None - %93 = OpVectorShuffle %v2half %92 %92 1 0 - %94 = OpCompositeExtract %half %93 0 - %95 = OpFunctionCall %void %e %94 + %57 = OpLoad %_arr_S_uint_4 %47 None + %58 = OpFunctionCall %void %a %57 + %59 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %62 = OpLoad %S_std140 %59 None + %63 = OpFunctionCall %S %tint_convert_S %62 + %65 = OpFunctionCall %void %b %63 + %66 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 + %69 = OpLoad %v2half %66 None + %70 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 + %71 = OpLoad %v2half %70 None + %72 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_3 + %74 = OpLoad %v2half %72 None + %75 = OpCompositeConstruct %mat3v2half %69 %71 %74 + %76 = OpFunctionCall %void %c %75 + %77 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 + %78 = OpLoad %v2half %77 None + %79 = OpVectorShuffle %v2half %78 %78 1 0 + %80 = OpFunctionCall %void %d %79 + %81 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 + %82 = OpLoad %v2half %81 None + %83 = OpVectorShuffle %v2half %82 %82 1 0 + %84 = OpCompositeExtract %half %83 0 + %85 = OpFunctionCall %void %e %84 OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %97 @@ -194,21 +194,21 @@ OpLoopMerge %117 %115 None OpBranch %114 %114 = OpLabel - %120 = OpUGreaterThanEqual %bool %118 %uint_4 - OpSelectionMerge %121 None - OpBranchConditional %120 %122 %121 - %122 = OpLabel + %121 = OpUGreaterThanEqual %bool %118 %uint_4 + OpSelectionMerge %122 None + OpBranchConditional %121 %123 %122 + %123 = OpLabel OpBranch %117 - %121 = OpLabel - %123 = OpAccessChain %_ptr_Function_S_std140 %109 %118 - %124 = OpLoad %S_std140 %123 None - %125 = OpAccessChain %_ptr_Function_S_std140 %111 %118 - OpStore %125 %124 None + %122 = OpLabel + %124 = OpAccessChain %_ptr_Function_S_std140 %109 %118 + %125 = OpLoad %S_std140 %124 None + %126 = OpAccessChain %_ptr_Function_S_std140 %111 %118 + OpStore %126 %125 None OpBranch %115 %115 = OpLabel %119 = OpIAdd %uint %118 %uint_1 OpBranch %116 %117 = OpLabel - %126 = OpLoad %_arr_S_std140_uint_4_0 %111 None - OpReturnValue %126 + %120 = OpLoad %_arr_S_std140_uint_4_0 %111 None + OpReturnValue %120 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.spvasm index c8c5eab..7dd5389 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.spvasm
@@ -62,17 +62,17 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Private_S = OpTypePointer Private %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Private_mat3v2half = OpTypePointer Private %mat3v2half %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v2half = OpTypePointer Uniform %v2half %_ptr_Private_v2half = OpTypePointer Private %v2half + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %76 = OpTypeFunction %S %S_std140 %86 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -93,43 +93,43 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_4 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %65 = OpUGreaterThanEqual %bool %37 %uint_4 + OpSelectionMerge %67 None + OpBranchConditional %65 %68 %67 + %68 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Function_S %30 %37 - %45 = OpAccessChain %_ptr_Function_S_std140 %28 %37 - %47 = OpLoad %S_std140 %45 None - %48 = OpFunctionCall %S %tint_convert_S %47 - OpStore %43 %48 None + %67 = OpLabel + %69 = OpAccessChain %_ptr_Function_S %30 %37 + %71 = OpAccessChain %_ptr_Function_S_std140 %28 %37 + %73 = OpLoad %S_std140 %71 None + %74 = OpFunctionCall %S %tint_convert_S %73 + OpStore %69 %74 None OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel - %51 = OpLoad %_arr_S_uint_4 %30 None - OpStore %p %51 None - %52 = OpAccessChain %_ptr_Private_S %p %uint_1 - %54 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %57 = OpLoad %S_std140 %54 None - %58 = OpFunctionCall %S %tint_convert_S %57 - OpStore %52 %58 None - %59 = OpAccessChain %_ptr_Private_mat3v2half %p %uint_3 %uint_1 - %62 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 - %64 = OpLoad %v2half %62 None - %65 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 - %66 = OpLoad %v2half %65 None - %67 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_3 - %68 = OpLoad %v2half %67 None - %69 = OpCompositeConstruct %mat3v2half %64 %66 %68 - OpStore %59 %69 None - %70 = OpAccessChain %_ptr_Private_v2half %p %uint_1 %uint_1 %uint_0 - %72 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 - %73 = OpLoad %v2half %72 None - %74 = OpVectorShuffle %v2half %73 %73 1 0 - OpStore %70 %74 None + %39 = OpLoad %_arr_S_uint_4 %30 None + OpStore %p %39 None + %40 = OpAccessChain %_ptr_Private_S %p %uint_1 + %43 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %46 = OpLoad %S_std140 %43 None + %47 = OpFunctionCall %S %tint_convert_S %46 + OpStore %40 %47 None + %49 = OpAccessChain %_ptr_Private_mat3v2half %p %uint_3 %uint_1 + %52 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 + %54 = OpLoad %v2half %52 None + %55 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 + %56 = OpLoad %v2half %55 None + %57 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_3 + %58 = OpLoad %v2half %57 None + %59 = OpCompositeConstruct %mat3v2half %54 %56 %58 + OpStore %49 %59 None + %60 = OpAccessChain %_ptr_Private_v2half %p %uint_1 %uint_1 %uint_0 + %62 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 + %63 = OpLoad %v2half %62 None + %64 = OpVectorShuffle %v2half %63 %63 1 0 + OpStore %60 %64 None OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %76 @@ -158,21 +158,21 @@ OpLoopMerge %96 %94 None OpBranch %93 %93 = OpLabel - %99 = OpUGreaterThanEqual %bool %97 %uint_4 - OpSelectionMerge %100 None - OpBranchConditional %99 %101 %100 - %101 = OpLabel + %100 = OpUGreaterThanEqual %bool %97 %uint_4 + OpSelectionMerge %101 None + OpBranchConditional %100 %102 %101 + %102 = OpLabel OpBranch %96 - %100 = OpLabel - %102 = OpAccessChain %_ptr_Function_S_std140 %88 %97 - %103 = OpLoad %S_std140 %102 None - %104 = OpAccessChain %_ptr_Function_S_std140 %90 %97 - OpStore %104 %103 None + %101 = OpLabel + %103 = OpAccessChain %_ptr_Function_S_std140 %88 %97 + %104 = OpLoad %S_std140 %103 None + %105 = OpAccessChain %_ptr_Function_S_std140 %90 %97 + OpStore %105 %104 None OpBranch %94 %94 = OpLabel %98 = OpIAdd %uint %97 %uint_1 OpBranch %95 %96 = OpLabel - %105 = OpLoad %_arr_S_std140_uint_4_0 %90 None - OpReturnValue %105 + %99 = OpLoad %_arr_S_std140_uint_4_0 %90 None + OpReturnValue %99 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_storage.wgsl.expected.spvasm index 9184edb..581de25 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_storage.wgsl.expected.spvasm
@@ -86,17 +86,17 @@ %_arr_S_uint_4 = OpTypeArray %S %uint_4 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %34 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 + %uint_1 = OpConstant %uint 1 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1 %_ptr_StorageBuffer_mat3v2half = OpTypePointer StorageBuffer %mat3v2half %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v2half = OpTypePointer Uniform %v2half %_ptr_StorageBuffer_v2half = OpTypePointer StorageBuffer %v2half + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %83 = OpTypeFunction %void %_arr_S_uint_4 %102 = OpTypeFunction %void %_arr_uint_uint_1 %S %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int @@ -120,43 +120,43 @@ OpLoopMerge %39 %37 None OpBranch %36 %36 = OpLabel - %42 = OpUGreaterThanEqual %bool %40 %uint_4 - OpSelectionMerge %44 None - OpBranchConditional %42 %45 %44 - %45 = OpLabel + %72 = OpUGreaterThanEqual %bool %40 %uint_4 + OpSelectionMerge %74 None + OpBranchConditional %72 %75 %74 + %75 = OpLabel OpBranch %39 - %44 = OpLabel - %46 = OpAccessChain %_ptr_Function_S %30 %40 - %48 = OpAccessChain %_ptr_Function_S_std140 %28 %40 - %50 = OpLoad %S_std140 %48 None - %51 = OpFunctionCall %S %tint_convert_S %50 - OpStore %46 %51 None + %74 = OpLabel + %76 = OpAccessChain %_ptr_Function_S %30 %40 + %78 = OpAccessChain %_ptr_Function_S_std140 %28 %40 + %80 = OpLoad %S_std140 %78 None + %81 = OpFunctionCall %S %tint_convert_S %80 + OpStore %76 %81 None OpBranch %37 %37 = OpLabel %41 = OpIAdd %uint %40 %uint_1 OpBranch %38 %39 = OpLabel - %54 = OpLoad %_arr_S_uint_4 %30 None - %55 = OpFunctionCall %void %tint_store_and_preserve_padding %54 - %57 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %60 = OpLoad %S_std140 %57 None - %61 = OpFunctionCall %S %tint_convert_S %60 - %63 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 - %64 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %63 %61 - %66 = OpAccessChain %_ptr_StorageBuffer_mat3v2half %11 %uint_0 %uint_3 %uint_1 - %69 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 - %71 = OpLoad %v2half %69 None - %72 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 - %73 = OpLoad %v2half %72 None - %74 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_3 - %75 = OpLoad %v2half %74 None - %76 = OpCompositeConstruct %mat3v2half %71 %73 %75 - OpStore %66 %76 None - %77 = OpAccessChain %_ptr_StorageBuffer_v2half %11 %uint_0 %uint_1 %uint_1 %uint_0 - %79 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 - %80 = OpLoad %v2half %79 None - %81 = OpVectorShuffle %v2half %80 %80 1 0 - OpStore %77 %81 None + %42 = OpLoad %_arr_S_uint_4 %30 None + %43 = OpFunctionCall %void %tint_store_and_preserve_padding %42 + %45 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %48 = OpLoad %S_std140 %45 None + %49 = OpFunctionCall %S %tint_convert_S %48 + %53 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 + %54 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %53 %49 + %56 = OpAccessChain %_ptr_StorageBuffer_mat3v2half %11 %uint_0 %uint_3 %uint_1 + %59 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 + %61 = OpLoad %v2half %59 None + %62 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 + %63 = OpLoad %v2half %62 None + %64 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_3 + %65 = OpLoad %v2half %64 None + %66 = OpCompositeConstruct %mat3v2half %61 %63 %65 + OpStore %56 %66 None + %67 = OpAccessChain %_ptr_StorageBuffer_v2half %11 %uint_0 %uint_1 %uint_1 %uint_0 + %69 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 + %70 = OpLoad %v2half %69 None + %71 = OpVectorShuffle %v2half %70 %70 1 0 + OpStore %67 %71 None OpReturn OpFunctionEnd %tint_store_and_preserve_padding = OpFunction %void None %83 @@ -231,21 +231,21 @@ OpLoopMerge %133 %131 None OpBranch %130 %130 = OpLabel - %136 = OpUGreaterThanEqual %bool %134 %uint_4 - OpSelectionMerge %137 None - OpBranchConditional %136 %138 %137 - %138 = OpLabel + %137 = OpUGreaterThanEqual %bool %134 %uint_4 + OpSelectionMerge %138 None + OpBranchConditional %137 %139 %138 + %139 = OpLabel OpBranch %133 - %137 = OpLabel - %139 = OpAccessChain %_ptr_Function_S_std140 %125 %134 - %140 = OpLoad %S_std140 %139 None - %141 = OpAccessChain %_ptr_Function_S_std140 %127 %134 - OpStore %141 %140 None + %138 = OpLabel + %140 = OpAccessChain %_ptr_Function_S_std140 %125 %134 + %141 = OpLoad %S_std140 %140 None + %142 = OpAccessChain %_ptr_Function_S_std140 %127 %134 + OpStore %142 %141 None OpBranch %131 %131 = OpLabel %135 = OpIAdd %uint %134 %uint_1 OpBranch %132 %133 = OpLabel - %142 = OpLoad %_arr_S_std140_uint_4_0 %127 None - OpReturnValue %142 + %136 = OpLoad %_arr_S_std140_uint_4_0 %127 None + OpReturnValue %136 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.spvasm index faad57c..1180138 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.spvasm
@@ -62,10 +62,6 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %21 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_S = OpTypePointer Workgroup %S - %36 = OpConstantNull %S - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_S_std140_uint_4 = OpTypePointer Uniform %_arr_S_std140_uint_4 @@ -73,14 +69,18 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %52 = OpConstantNull %_arr_S_uint_4 -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 + %44 = OpConstantNull %_arr_S_uint_4 +%_ptr_Workgroup_S = OpTypePointer Workgroup %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %_ptr_Workgroup_mat3v2half = OpTypePointer Workgroup %mat3v2half %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v2half = OpTypePointer Uniform %v2half %_ptr_Workgroup_v2half = OpTypePointer Workgroup %v2half + %bool = OpTypeBool + %82 = OpConstantNull %S +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %93 = OpTypeFunction %void %98 = OpTypeFunction %S %S_std140 %108 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 @@ -89,8 +89,8 @@ %f_inner = OpFunction %void None %21 %tint_local_index = OpFunctionParameter %uint %22 = OpLabel - %48 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function - %50 = OpVariable %_ptr_Function__arr_S_uint_4 Function %52 + %40 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function + %42 = OpVariable %_ptr_Function__arr_S_uint_4 Function %44 OpBranch %23 %23 = OpLabel OpBranch %26 @@ -99,69 +99,69 @@ OpLoopMerge %27 %25 None OpBranch %24 %24 = OpLabel - %30 = OpUGreaterThanEqual %bool %28 %uint_4 - OpSelectionMerge %32 None - OpBranchConditional %30 %33 %32 - %33 = OpLabel + %77 = OpUGreaterThanEqual %bool %28 %uint_4 + OpSelectionMerge %79 None + OpBranchConditional %77 %80 %79 + %80 = OpLabel OpBranch %27 - %32 = OpLabel - %34 = OpAccessChain %_ptr_Workgroup_S %w %28 - OpStore %34 %36 None + %79 = OpLabel + %81 = OpAccessChain %_ptr_Workgroup_S %w %28 + OpStore %81 %82 None OpBranch %25 %25 = OpLabel %29 = OpIAdd %uint %28 %uint_1 OpBranch %26 %27 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %41 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 - %44 = OpLoad %_arr_S_std140_uint_4 %41 None - %45 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %44 - OpStore %48 %45 - OpBranch %53 - %53 = OpLabel - OpBranch %56 - %56 = OpLabel - %58 = OpPhi %uint %uint_0 %53 %59 %55 - OpLoopMerge %57 %55 None - OpBranch %54 - %54 = OpLabel - %60 = OpUGreaterThanEqual %bool %58 %uint_4 - OpSelectionMerge %61 None - OpBranchConditional %60 %62 %61 - %62 = OpLabel - OpBranch %57 - %61 = OpLabel - %63 = OpAccessChain %_ptr_Function_S %50 %58 - %65 = OpAccessChain %_ptr_Function_S_std140 %48 %58 - %67 = OpLoad %S_std140 %65 None - %68 = OpFunctionCall %S %tint_convert_S %67 - OpStore %63 %68 None - OpBranch %55 - %55 = OpLabel - %59 = OpIAdd %uint %58 %uint_1 - OpBranch %56 - %57 = OpLabel - %70 = OpLoad %_arr_S_uint_4 %50 None - OpStore %w %70 None - %71 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 - %72 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %72 None - %75 = OpFunctionCall %S %tint_convert_S %74 - OpStore %71 %75 None - %76 = OpAccessChain %_ptr_Workgroup_mat3v2half %w %uint_3 %uint_1 - %79 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 - %81 = OpLoad %v2half %79 None - %82 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 - %83 = OpLoad %v2half %82 None - %84 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_3 - %85 = OpLoad %v2half %84 None - %86 = OpCompositeConstruct %mat3v2half %81 %83 %85 - OpStore %76 %86 None - %87 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_1 %uint_1 %uint_0 - %89 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 - %90 = OpLoad %v2half %89 None - %91 = OpVectorShuffle %v2half %90 %90 1 0 - OpStore %87 %91 None + %33 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 + %36 = OpLoad %_arr_S_std140_uint_4 %33 None + %37 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %36 + OpStore %40 %37 + OpBranch %45 + %45 = OpLabel + OpBranch %48 + %48 = OpLabel + %50 = OpPhi %uint %uint_0 %45 %51 %47 + OpLoopMerge %49 %47 None + OpBranch %46 + %46 = OpLabel + %83 = OpUGreaterThanEqual %bool %50 %uint_4 + OpSelectionMerge %84 None + OpBranchConditional %83 %85 %84 + %85 = OpLabel + OpBranch %49 + %84 = OpLabel + %86 = OpAccessChain %_ptr_Function_S %42 %50 + %88 = OpAccessChain %_ptr_Function_S_std140 %40 %50 + %90 = OpLoad %S_std140 %88 None + %91 = OpFunctionCall %S %tint_convert_S %90 + OpStore %86 %91 None + OpBranch %47 + %47 = OpLabel + %51 = OpIAdd %uint %50 %uint_1 + OpBranch %48 + %49 = OpLabel + %52 = OpLoad %_arr_S_uint_4 %42 None + OpStore %w %52 None + %53 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 + %56 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %58 = OpLoad %S_std140 %56 None + %59 = OpFunctionCall %S %tint_convert_S %58 + OpStore %53 %59 None + %61 = OpAccessChain %_ptr_Workgroup_mat3v2half %w %uint_3 %uint_1 + %64 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 + %66 = OpLoad %v2half %64 None + %67 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 + %68 = OpLoad %v2half %67 None + %69 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_3 + %70 = OpLoad %v2half %69 None + %71 = OpCompositeConstruct %mat3v2half %66 %68 %70 + OpStore %61 %71 None + %72 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_1 %uint_1 %uint_0 + %74 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 + %75 = OpLoad %v2half %74 None + %76 = OpVectorShuffle %v2half %75 %75 1 0 + OpStore %72 %76 None OpReturn OpFunctionEnd %f = OpFunction %void None %93 @@ -196,21 +196,21 @@ OpLoopMerge %118 %116 None OpBranch %115 %115 = OpLabel - %121 = OpUGreaterThanEqual %bool %119 %uint_4 - OpSelectionMerge %122 None - OpBranchConditional %121 %123 %122 - %123 = OpLabel + %122 = OpUGreaterThanEqual %bool %119 %uint_4 + OpSelectionMerge %123 None + OpBranchConditional %122 %124 %123 + %124 = OpLabel OpBranch %118 - %122 = OpLabel - %124 = OpAccessChain %_ptr_Function_S_std140 %110 %119 - %125 = OpLoad %S_std140 %124 None - %126 = OpAccessChain %_ptr_Function_S_std140 %112 %119 - OpStore %126 %125 None + %123 = OpLabel + %125 = OpAccessChain %_ptr_Function_S_std140 %110 %119 + %126 = OpLoad %S_std140 %125 None + %127 = OpAccessChain %_ptr_Function_S_std140 %112 %119 + OpStore %127 %126 None OpBranch %116 %116 = OpLabel %120 = OpIAdd %uint %119 %uint_1 OpBranch %117 %118 = OpLabel - %127 = OpLoad %_arr_S_std140_uint_4_0 %112 None - OpReturnValue %127 + %121 = OpLoad %_arr_S_std140_uint_4_0 %112 None + OpReturnValue %121 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.spvasm index 9252f60..495be83 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -94,12 +94,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %77 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %98 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %108 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %134 = OpTypeFunction %Inner %Inner_std140 @@ -125,8 +125,8 @@ %55 = OpVariable %_ptr_Function_mat3v2float Function %69 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %71 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %77 - %104 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %106 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %108 + %94 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %96 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %98 %27 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %30 = OpFunctionCall %int %i %31 = OpBitcast %uint %30 @@ -161,60 +161,60 @@ OpLoopMerge %82 %80 None OpBranch %79 %79 = OpLabel - %85 = OpUGreaterThanEqual %bool %83 %uint_4 - OpSelectionMerge %87 None - OpBranchConditional %85 %88 %87 - %88 = OpLabel + %114 = OpUGreaterThanEqual %bool %83 %uint_4 + OpSelectionMerge %116 None + OpBranchConditional %114 %117 %116 + %117 = OpLabel OpBranch %82 - %87 = OpLabel - %89 = OpAccessChain %_ptr_Function_Outer %71 %83 - %91 = OpAccessChain %_ptr_Function_Outer_std140 %69 %83 - %93 = OpLoad %Outer_std140 %91 None - %94 = OpFunctionCall %Outer %tint_convert_Outer %93 - OpStore %89 %94 None + %116 = OpLabel + %118 = OpAccessChain %_ptr_Function_Outer %71 %83 + %120 = OpAccessChain %_ptr_Function_Outer_std140 %69 %83 + %122 = OpLoad %Outer_std140 %120 None + %123 = OpFunctionCall %Outer %tint_convert_Outer %122 + OpStore %118 %123 None OpBranch %80 %80 = OpLabel %84 = OpIAdd %uint %83 %uint_1 OpBranch %81 %82 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %71 None - %97 = OpLoad %Outer_std140_tint_explicit_layout %35 None - %98 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %97 - %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %98 - %101 = OpLoad %_arr_Inner_std140_uint_4 %37 None - %102 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %101 - OpStore %104 %102 - OpBranch %109 - %109 = OpLabel - OpBranch %112 - %112 = OpLabel - %114 = OpPhi %uint %uint_0 %109 %115 %111 - OpLoopMerge %113 %111 None - OpBranch %110 - %110 = OpLabel - %116 = OpUGreaterThanEqual %bool %114 %uint_4 - OpSelectionMerge %117 None - OpBranchConditional %116 %118 %117 - %118 = OpLabel - OpBranch %113 - %117 = OpLabel - %119 = OpAccessChain %_ptr_Function_Inner %106 %114 - %121 = OpAccessChain %_ptr_Function_Inner_std140 %104 %114 - %123 = OpLoad %Inner_std140 %121 None - %124 = OpFunctionCall %Inner %tint_convert_Inner %123 - OpStore %119 %124 None - OpBranch %111 - %111 = OpLabel - %115 = OpIAdd %uint %114 %uint_1 - OpBranch %112 - %113 = OpLabel - %l_a_i_a = OpLoad %_arr_Inner_uint_4 %106 None - %127 = OpLoad %Inner_std140 %42 None - %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %127 - %129 = OpFunctionCall %int %i - %130 = OpBitcast %uint %129 - %131 = OpExtInst %uint %33 UMin %130 %uint_1 -%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %float %l_a_i_a_i_m_i %131 + %86 = OpLoad %Outer_std140_tint_explicit_layout %35 None + %87 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %86 + %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %87 + %91 = OpLoad %_arr_Inner_std140_uint_4 %37 None + %92 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %91 + OpStore %94 %92 + OpBranch %99 + %99 = OpLabel + OpBranch %102 + %102 = OpLabel + %104 = OpPhi %uint %uint_0 %99 %105 %101 + OpLoopMerge %103 %101 None + OpBranch %100 + %100 = OpLabel + %124 = OpUGreaterThanEqual %bool %104 %uint_4 + OpSelectionMerge %125 None + OpBranchConditional %124 %126 %125 + %126 = OpLabel + OpBranch %103 + %125 = OpLabel + %127 = OpAccessChain %_ptr_Function_Inner %96 %104 + %129 = OpAccessChain %_ptr_Function_Inner_std140 %94 %104 + %131 = OpLoad %Inner_std140 %129 None + %132 = OpFunctionCall %Inner %tint_convert_Inner %131 + OpStore %127 %132 None + OpBranch %101 + %101 = OpLabel + %105 = OpIAdd %uint %104 %uint_1 + OpBranch %102 + %103 = OpLabel + %l_a_i_a = OpLoad %_arr_Inner_uint_4 %96 None + %107 = OpLoad %Inner_std140 %42 None + %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %107 + %110 = OpFunctionCall %int %i + %111 = OpBitcast %uint %110 + %112 = OpExtInst %uint %33 UMin %111 %uint_1 +%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %float %l_a_i_a_i_m_i %112 OpReturn OpFunctionEnd %tint_convert_Inner = OpFunction %Inner None %134 @@ -231,7 +231,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %143 = OpLabel %145 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %146 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %108 + %146 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %98 %144 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %145 %144 OpBranch %147 @@ -242,25 +242,25 @@ OpLoopMerge %151 %149 None OpBranch %148 %148 = OpLabel - %154 = OpUGreaterThanEqual %bool %152 %uint_4 - OpSelectionMerge %155 None - OpBranchConditional %154 %156 %155 - %156 = OpLabel + %156 = OpUGreaterThanEqual %bool %152 %uint_4 + OpSelectionMerge %157 None + OpBranchConditional %156 %158 %157 + %158 = OpLabel OpBranch %151 - %155 = OpLabel - %157 = OpAccessChain %_ptr_Function_Inner %146 %152 - %158 = OpAccessChain %_ptr_Function_Inner_std140 %145 %152 - %159 = OpLoad %Inner_std140 %158 None - %160 = OpFunctionCall %Inner %tint_convert_Inner %159 - OpStore %157 %160 None + %157 = OpLabel + %159 = OpAccessChain %_ptr_Function_Inner %146 %152 + %160 = OpAccessChain %_ptr_Function_Inner_std140 %145 %152 + %161 = OpLoad %Inner_std140 %160 None + %162 = OpFunctionCall %Inner %tint_convert_Inner %161 + OpStore %159 %162 None OpBranch %149 %149 = OpLabel %153 = OpIAdd %uint %152 %uint_1 OpBranch %150 %151 = OpLabel - %161 = OpLoad %_arr_Inner_uint_4 %146 None - %162 = OpCompositeConstruct %Outer %161 - OpReturnValue %162 + %154 = OpLoad %_arr_Inner_uint_4 %146 None + %155 = OpCompositeConstruct %Outer %154 + OpReturnValue %155 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %164 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -276,23 +276,23 @@ OpLoopMerge %174 %172 None OpBranch %171 %171 = OpLabel - %177 = OpUGreaterThanEqual %bool %175 %uint_4 - OpSelectionMerge %178 None - OpBranchConditional %177 %179 %178 - %179 = OpLabel + %178 = OpUGreaterThanEqual %bool %175 %uint_4 + OpSelectionMerge %179 None + OpBranchConditional %178 %180 %179 + %180 = OpLabel OpBranch %174 - %178 = OpLabel - %180 = OpAccessChain %_ptr_Function_Inner_std140 %166 %175 - %181 = OpLoad %Inner_std140 %180 None - %182 = OpAccessChain %_ptr_Function_Inner_std140 %168 %175 - OpStore %182 %181 None + %179 = OpLabel + %181 = OpAccessChain %_ptr_Function_Inner_std140 %166 %175 + %182 = OpLoad %Inner_std140 %181 None + %183 = OpAccessChain %_ptr_Function_Inner_std140 %168 %175 + OpStore %183 %182 None OpBranch %172 %172 = OpLabel %176 = OpIAdd %uint %175 %uint_1 OpBranch %173 %174 = OpLabel - %183 = OpLoad %_arr_Inner_std140_uint_4_0 %168 None - OpReturnValue %183 + %177 = OpLoad %_arr_Inner_std140_uint_4_0 %168 None + OpReturnValue %177 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %185 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -316,22 +316,22 @@ OpLoopMerge %201 %199 None OpBranch %198 %198 = OpLabel - %204 = OpUGreaterThanEqual %bool %202 %uint_4 - OpSelectionMerge %205 None - OpBranchConditional %204 %206 %205 - %206 = OpLabel + %205 = OpUGreaterThanEqual %bool %202 %uint_4 + OpSelectionMerge %206 None + OpBranchConditional %205 %207 %206 + %207 = OpLabel OpBranch %201 - %205 = OpLabel - %207 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %193 %202 - %209 = OpLoad %Outer_std140_tint_explicit_layout %207 None - %210 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %209 - %211 = OpAccessChain %_ptr_Function_Outer_std140 %195 %202 - OpStore %211 %210 None + %206 = OpLabel + %208 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %193 %202 + %210 = OpLoad %Outer_std140_tint_explicit_layout %208 None + %211 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %210 + %212 = OpAccessChain %_ptr_Function_Outer_std140 %195 %202 + OpStore %212 %211 None OpBranch %199 %199 = OpLabel %203 = OpIAdd %uint %202 %uint_1 OpBranch %200 %201 = OpLabel - %212 = OpLoad %_arr_Outer_std140_uint_4 %195 None - OpReturnValue %212 + %204 = OpLoad %_arr_Outer_std140_uint_4 %195 None + OpReturnValue %204 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.spvasm index 32b3988..cfd2c1c 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.spvasm
@@ -83,12 +83,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %52 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %73 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %83 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %106 = OpTypeFunction %Inner %Inner_std140 @@ -105,8 +105,8 @@ %15 = OpLabel %44 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %46 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %52 - %79 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %81 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %83 + %69 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %71 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %73 %16 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %19 = OpAccessChain %_ptr_Uniform_Outer_std140_tint_explicit_layout %16 %uint_3 %22 = OpAccessChain %_ptr_Uniform__arr_Inner_std140_uint_4 %19 %uint_0 @@ -130,56 +130,56 @@ OpLoopMerge %57 %55 None OpBranch %54 %54 = OpLabel - %60 = OpUGreaterThanEqual %bool %58 %uint_4 - OpSelectionMerge %62 None - OpBranchConditional %60 %63 %62 - %63 = OpLabel + %86 = OpUGreaterThanEqual %bool %58 %uint_4 + OpSelectionMerge %88 None + OpBranchConditional %86 %89 %88 + %89 = OpLabel OpBranch %57 - %62 = OpLabel - %64 = OpAccessChain %_ptr_Function_Outer %46 %58 - %66 = OpAccessChain %_ptr_Function_Outer_std140 %44 %58 - %68 = OpLoad %Outer_std140 %66 None - %69 = OpFunctionCall %Outer %tint_convert_Outer %68 - OpStore %64 %69 None + %88 = OpLabel + %90 = OpAccessChain %_ptr_Function_Outer %46 %58 + %92 = OpAccessChain %_ptr_Function_Outer_std140 %44 %58 + %94 = OpLoad %Outer_std140 %92 None + %95 = OpFunctionCall %Outer %tint_convert_Outer %94 + OpStore %90 %95 None OpBranch %55 %55 = OpLabel %59 = OpIAdd %uint %58 %uint_1 OpBranch %56 %57 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %46 None - %72 = OpLoad %Outer_std140_tint_explicit_layout %19 None - %73 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %72 - %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %73 - %76 = OpLoad %_arr_Inner_std140_uint_4 %22 None - %77 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %76 - OpStore %79 %77 - OpBranch %84 - %84 = OpLabel - OpBranch %87 - %87 = OpLabel - %89 = OpPhi %uint %uint_0 %84 %90 %86 - OpLoopMerge %88 %86 None - OpBranch %85 - %85 = OpLabel - %91 = OpUGreaterThanEqual %bool %89 %uint_4 - OpSelectionMerge %92 None - OpBranchConditional %91 %93 %92 - %93 = OpLabel - OpBranch %88 - %92 = OpLabel - %94 = OpAccessChain %_ptr_Function_Inner %81 %89 - %96 = OpAccessChain %_ptr_Function_Inner_std140 %79 %89 - %98 = OpLoad %Inner_std140 %96 None - %99 = OpFunctionCall %Inner %tint_convert_Inner %98 - OpStore %94 %99 None - OpBranch %86 - %86 = OpLabel - %90 = OpIAdd %uint %89 %uint_1 - OpBranch %87 - %88 = OpLabel - %l_a_3_a = OpLoad %_arr_Inner_uint_4 %81 None - %102 = OpLoad %Inner_std140 %24 None - %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %102 + %61 = OpLoad %Outer_std140_tint_explicit_layout %19 None + %62 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %61 + %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %62 + %66 = OpLoad %_arr_Inner_std140_uint_4 %22 None + %67 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %66 + OpStore %69 %67 + OpBranch %74 + %74 = OpLabel + OpBranch %77 + %77 = OpLabel + %79 = OpPhi %uint %uint_0 %74 %80 %76 + OpLoopMerge %78 %76 None + OpBranch %75 + %75 = OpLabel + %96 = OpUGreaterThanEqual %bool %79 %uint_4 + OpSelectionMerge %97 None + OpBranchConditional %96 %98 %97 + %98 = OpLabel + OpBranch %78 + %97 = OpLabel + %99 = OpAccessChain %_ptr_Function_Inner %71 %79 + %101 = OpAccessChain %_ptr_Function_Inner_std140 %69 %79 + %103 = OpLoad %Inner_std140 %101 None + %104 = OpFunctionCall %Inner %tint_convert_Inner %103 + OpStore %99 %104 None + OpBranch %76 + %76 = OpLabel + %80 = OpIAdd %uint %79 %uint_1 + OpBranch %77 + %78 = OpLabel + %l_a_3_a = OpLoad %_arr_Inner_uint_4 %71 None + %82 = OpLoad %Inner_std140 %24 None + %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %82 %l_a_3_a_2_m_1_0 = OpCompositeExtract %float %l_a_3_a_2_m_1 0 OpReturn OpFunctionEnd @@ -197,7 +197,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %115 = OpLabel %117 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %118 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %83 + %118 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %73 %116 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %117 %116 OpBranch %119 @@ -208,25 +208,25 @@ OpLoopMerge %123 %121 None OpBranch %120 %120 = OpLabel - %126 = OpUGreaterThanEqual %bool %124 %uint_4 - OpSelectionMerge %127 None - OpBranchConditional %126 %128 %127 - %128 = OpLabel + %128 = OpUGreaterThanEqual %bool %124 %uint_4 + OpSelectionMerge %129 None + OpBranchConditional %128 %130 %129 + %130 = OpLabel OpBranch %123 - %127 = OpLabel - %129 = OpAccessChain %_ptr_Function_Inner %118 %124 - %130 = OpAccessChain %_ptr_Function_Inner_std140 %117 %124 - %131 = OpLoad %Inner_std140 %130 None - %132 = OpFunctionCall %Inner %tint_convert_Inner %131 - OpStore %129 %132 None + %129 = OpLabel + %131 = OpAccessChain %_ptr_Function_Inner %118 %124 + %132 = OpAccessChain %_ptr_Function_Inner_std140 %117 %124 + %133 = OpLoad %Inner_std140 %132 None + %134 = OpFunctionCall %Inner %tint_convert_Inner %133 + OpStore %131 %134 None OpBranch %121 %121 = OpLabel %125 = OpIAdd %uint %124 %uint_1 OpBranch %122 %123 = OpLabel - %133 = OpLoad %_arr_Inner_uint_4 %118 None - %134 = OpCompositeConstruct %Outer %133 - OpReturnValue %134 + %126 = OpLoad %_arr_Inner_uint_4 %118 None + %127 = OpCompositeConstruct %Outer %126 + OpReturnValue %127 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %136 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -242,23 +242,23 @@ OpLoopMerge %146 %144 None OpBranch %143 %143 = OpLabel - %149 = OpUGreaterThanEqual %bool %147 %uint_4 - OpSelectionMerge %150 None - OpBranchConditional %149 %151 %150 - %151 = OpLabel + %150 = OpUGreaterThanEqual %bool %147 %uint_4 + OpSelectionMerge %151 None + OpBranchConditional %150 %152 %151 + %152 = OpLabel OpBranch %146 - %150 = OpLabel - %152 = OpAccessChain %_ptr_Function_Inner_std140 %138 %147 - %153 = OpLoad %Inner_std140 %152 None - %154 = OpAccessChain %_ptr_Function_Inner_std140 %140 %147 - OpStore %154 %153 None + %151 = OpLabel + %153 = OpAccessChain %_ptr_Function_Inner_std140 %138 %147 + %154 = OpLoad %Inner_std140 %153 None + %155 = OpAccessChain %_ptr_Function_Inner_std140 %140 %147 + OpStore %155 %154 None OpBranch %144 %144 = OpLabel %148 = OpIAdd %uint %147 %uint_1 OpBranch %145 %146 = OpLabel - %155 = OpLoad %_arr_Inner_std140_uint_4_0 %140 None - OpReturnValue %155 + %149 = OpLoad %_arr_Inner_std140_uint_4_0 %140 None + OpReturnValue %149 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %157 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -282,22 +282,22 @@ OpLoopMerge %173 %171 None OpBranch %170 %170 = OpLabel - %176 = OpUGreaterThanEqual %bool %174 %uint_4 - OpSelectionMerge %177 None - OpBranchConditional %176 %178 %177 - %178 = OpLabel + %177 = OpUGreaterThanEqual %bool %174 %uint_4 + OpSelectionMerge %178 None + OpBranchConditional %177 %179 %178 + %179 = OpLabel OpBranch %173 - %177 = OpLabel - %179 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %165 %174 - %181 = OpLoad %Outer_std140_tint_explicit_layout %179 None - %182 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %181 - %183 = OpAccessChain %_ptr_Function_Outer_std140 %167 %174 - OpStore %183 %182 None + %178 = OpLabel + %180 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %165 %174 + %182 = OpLoad %Outer_std140_tint_explicit_layout %180 None + %183 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %182 + %184 = OpAccessChain %_ptr_Function_Outer_std140 %167 %174 + OpStore %184 %183 None OpBranch %171 %171 = OpLabel %175 = OpIAdd %uint %174 %uint_1 OpBranch %172 %173 = OpLabel - %184 = OpLoad %_arr_Outer_std140_uint_4 %167 None - OpReturnValue %184 + %176 = OpLoad %_arr_Outer_std140_uint_4 %167 None + OpReturnValue %176 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.spvasm index 89720ae..7a376bc 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.spvasm
@@ -71,14 +71,14 @@ %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %49 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float + %uint_1 = OpConstant %uint 1 %uint_3 = OpConstant %uint 3 + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %97 = OpTypeFunction %S %S_std140 %107 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -124,45 +124,45 @@ OpLoopMerge %54 %52 None OpBranch %51 %51 = OpLabel - %57 = OpUGreaterThanEqual %bool %55 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel + %86 = OpUGreaterThanEqual %bool %55 %uint_4 + OpSelectionMerge %88 None + OpBranchConditional %86 %89 %88 + %89 = OpLabel OpBranch %54 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_S %47 %55 - %63 = OpAccessChain %_ptr_Function_S_std140 %45 %55 - %65 = OpLoad %S_std140 %63 None - %66 = OpFunctionCall %S %tint_convert_S %65 - OpStore %61 %66 None + %88 = OpLabel + %90 = OpAccessChain %_ptr_Function_S %47 %55 + %92 = OpAccessChain %_ptr_Function_S_std140 %45 %55 + %94 = OpLoad %S_std140 %92 None + %95 = OpFunctionCall %S %tint_convert_S %94 + OpStore %90 %95 None OpBranch %52 %52 = OpLabel %56 = OpIAdd %uint %55 %uint_1 OpBranch %53 %54 = OpLabel - %69 = OpLoad %_arr_S_uint_4 %47 None - %70 = OpFunctionCall %void %a %69 - %71 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %71 None - %75 = OpFunctionCall %S %tint_convert_S %74 - %76 = OpFunctionCall %void %b %75 - %77 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 - %79 = OpLoad %v2float %77 None - %80 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 - %81 = OpLoad %v2float %80 None - %82 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_3 - %84 = OpLoad %v2float %82 None - %85 = OpCompositeConstruct %mat3v2float %79 %81 %84 - %86 = OpFunctionCall %void %c %85 - %87 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 - %88 = OpLoad %v2float %87 None - %89 = OpVectorShuffle %v2float %88 %88 1 0 - %90 = OpFunctionCall %void %d %89 - %91 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 - %92 = OpLoad %v2float %91 None - %93 = OpVectorShuffle %v2float %92 %92 1 0 - %94 = OpCompositeExtract %float %93 0 - %95 = OpFunctionCall %void %e %94 + %57 = OpLoad %_arr_S_uint_4 %47 None + %58 = OpFunctionCall %void %a %57 + %59 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %62 = OpLoad %S_std140 %59 None + %63 = OpFunctionCall %S %tint_convert_S %62 + %65 = OpFunctionCall %void %b %63 + %66 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 + %69 = OpLoad %v2float %66 None + %70 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 + %71 = OpLoad %v2float %70 None + %72 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_3 + %74 = OpLoad %v2float %72 None + %75 = OpCompositeConstruct %mat3v2float %69 %71 %74 + %76 = OpFunctionCall %void %c %75 + %77 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 + %78 = OpLoad %v2float %77 None + %79 = OpVectorShuffle %v2float %78 %78 1 0 + %80 = OpFunctionCall %void %d %79 + %81 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 + %82 = OpLoad %v2float %81 None + %83 = OpVectorShuffle %v2float %82 %82 1 0 + %84 = OpCompositeExtract %float %83 0 + %85 = OpFunctionCall %void %e %84 OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %97 @@ -191,21 +191,21 @@ OpLoopMerge %117 %115 None OpBranch %114 %114 = OpLabel - %120 = OpUGreaterThanEqual %bool %118 %uint_4 - OpSelectionMerge %121 None - OpBranchConditional %120 %122 %121 - %122 = OpLabel + %121 = OpUGreaterThanEqual %bool %118 %uint_4 + OpSelectionMerge %122 None + OpBranchConditional %121 %123 %122 + %123 = OpLabel OpBranch %117 - %121 = OpLabel - %123 = OpAccessChain %_ptr_Function_S_std140 %109 %118 - %124 = OpLoad %S_std140 %123 None - %125 = OpAccessChain %_ptr_Function_S_std140 %111 %118 - OpStore %125 %124 None + %122 = OpLabel + %124 = OpAccessChain %_ptr_Function_S_std140 %109 %118 + %125 = OpLoad %S_std140 %124 None + %126 = OpAccessChain %_ptr_Function_S_std140 %111 %118 + OpStore %126 %125 None OpBranch %115 %115 = OpLabel %119 = OpIAdd %uint %118 %uint_1 OpBranch %116 %117 = OpLabel - %126 = OpLoad %_arr_S_std140_uint_4_0 %111 None - OpReturnValue %126 + %120 = OpLoad %_arr_S_std140_uint_4_0 %111 None + OpReturnValue %120 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.spvasm index 46d1c26..dae604c 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.spvasm
@@ -59,17 +59,17 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Private_S = OpTypePointer Private %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Private_mat3v2float = OpTypePointer Private %mat3v2float %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float %_ptr_Private_v2float = OpTypePointer Private %v2float + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %76 = OpTypeFunction %S %S_std140 %86 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -90,43 +90,43 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_4 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %65 = OpUGreaterThanEqual %bool %37 %uint_4 + OpSelectionMerge %67 None + OpBranchConditional %65 %68 %67 + %68 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Function_S %30 %37 - %45 = OpAccessChain %_ptr_Function_S_std140 %28 %37 - %47 = OpLoad %S_std140 %45 None - %48 = OpFunctionCall %S %tint_convert_S %47 - OpStore %43 %48 None + %67 = OpLabel + %69 = OpAccessChain %_ptr_Function_S %30 %37 + %71 = OpAccessChain %_ptr_Function_S_std140 %28 %37 + %73 = OpLoad %S_std140 %71 None + %74 = OpFunctionCall %S %tint_convert_S %73 + OpStore %69 %74 None OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel - %51 = OpLoad %_arr_S_uint_4 %30 None - OpStore %p %51 None - %52 = OpAccessChain %_ptr_Private_S %p %uint_1 - %54 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %57 = OpLoad %S_std140 %54 None - %58 = OpFunctionCall %S %tint_convert_S %57 - OpStore %52 %58 None - %59 = OpAccessChain %_ptr_Private_mat3v2float %p %uint_3 %uint_1 - %62 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 - %64 = OpLoad %v2float %62 None - %65 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 - %66 = OpLoad %v2float %65 None - %67 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_3 - %68 = OpLoad %v2float %67 None - %69 = OpCompositeConstruct %mat3v2float %64 %66 %68 - OpStore %59 %69 None - %70 = OpAccessChain %_ptr_Private_v2float %p %uint_1 %uint_1 %uint_0 - %72 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 - %73 = OpLoad %v2float %72 None - %74 = OpVectorShuffle %v2float %73 %73 1 0 - OpStore %70 %74 None + %39 = OpLoad %_arr_S_uint_4 %30 None + OpStore %p %39 None + %40 = OpAccessChain %_ptr_Private_S %p %uint_1 + %43 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %46 = OpLoad %S_std140 %43 None + %47 = OpFunctionCall %S %tint_convert_S %46 + OpStore %40 %47 None + %49 = OpAccessChain %_ptr_Private_mat3v2float %p %uint_3 %uint_1 + %52 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 + %54 = OpLoad %v2float %52 None + %55 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 + %56 = OpLoad %v2float %55 None + %57 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_3 + %58 = OpLoad %v2float %57 None + %59 = OpCompositeConstruct %mat3v2float %54 %56 %58 + OpStore %49 %59 None + %60 = OpAccessChain %_ptr_Private_v2float %p %uint_1 %uint_1 %uint_0 + %62 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 + %63 = OpLoad %v2float %62 None + %64 = OpVectorShuffle %v2float %63 %63 1 0 + OpStore %60 %64 None OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %76 @@ -155,21 +155,21 @@ OpLoopMerge %96 %94 None OpBranch %93 %93 = OpLabel - %99 = OpUGreaterThanEqual %bool %97 %uint_4 - OpSelectionMerge %100 None - OpBranchConditional %99 %101 %100 - %101 = OpLabel + %100 = OpUGreaterThanEqual %bool %97 %uint_4 + OpSelectionMerge %101 None + OpBranchConditional %100 %102 %101 + %102 = OpLabel OpBranch %96 - %100 = OpLabel - %102 = OpAccessChain %_ptr_Function_S_std140 %88 %97 - %103 = OpLoad %S_std140 %102 None - %104 = OpAccessChain %_ptr_Function_S_std140 %90 %97 - OpStore %104 %103 None + %101 = OpLabel + %103 = OpAccessChain %_ptr_Function_S_std140 %88 %97 + %104 = OpLoad %S_std140 %103 None + %105 = OpAccessChain %_ptr_Function_S_std140 %90 %97 + OpStore %105 %104 None OpBranch %94 %94 = OpLabel %98 = OpIAdd %uint %97 %uint_1 OpBranch %95 %96 = OpLabel - %105 = OpLoad %_arr_S_std140_uint_4_0 %90 None - OpReturnValue %105 + %99 = OpLoad %_arr_S_std140_uint_4_0 %90 None + OpReturnValue %99 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_storage.wgsl.expected.spvasm index 3c1b5240..6878844 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_storage.wgsl.expected.spvasm
@@ -83,17 +83,17 @@ %_arr_S_uint_4 = OpTypeArray %S %uint_4 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %34 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 + %uint_1 = OpConstant %uint 1 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1 %_ptr_StorageBuffer_mat3v2float = OpTypePointer StorageBuffer %mat3v2float %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float %_ptr_StorageBuffer_v2float = OpTypePointer StorageBuffer %v2float + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %83 = OpTypeFunction %void %_arr_S_uint_4 %102 = OpTypeFunction %void %_arr_uint_uint_1 %S %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int @@ -117,43 +117,43 @@ OpLoopMerge %39 %37 None OpBranch %36 %36 = OpLabel - %42 = OpUGreaterThanEqual %bool %40 %uint_4 - OpSelectionMerge %44 None - OpBranchConditional %42 %45 %44 - %45 = OpLabel + %72 = OpUGreaterThanEqual %bool %40 %uint_4 + OpSelectionMerge %74 None + OpBranchConditional %72 %75 %74 + %75 = OpLabel OpBranch %39 - %44 = OpLabel - %46 = OpAccessChain %_ptr_Function_S %30 %40 - %48 = OpAccessChain %_ptr_Function_S_std140 %28 %40 - %50 = OpLoad %S_std140 %48 None - %51 = OpFunctionCall %S %tint_convert_S %50 - OpStore %46 %51 None + %74 = OpLabel + %76 = OpAccessChain %_ptr_Function_S %30 %40 + %78 = OpAccessChain %_ptr_Function_S_std140 %28 %40 + %80 = OpLoad %S_std140 %78 None + %81 = OpFunctionCall %S %tint_convert_S %80 + OpStore %76 %81 None OpBranch %37 %37 = OpLabel %41 = OpIAdd %uint %40 %uint_1 OpBranch %38 %39 = OpLabel - %54 = OpLoad %_arr_S_uint_4 %30 None - %55 = OpFunctionCall %void %tint_store_and_preserve_padding %54 - %57 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %60 = OpLoad %S_std140 %57 None - %61 = OpFunctionCall %S %tint_convert_S %60 - %63 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 - %64 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %63 %61 - %66 = OpAccessChain %_ptr_StorageBuffer_mat3v2float %11 %uint_0 %uint_3 %uint_1 - %69 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 - %71 = OpLoad %v2float %69 None - %72 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 - %73 = OpLoad %v2float %72 None - %74 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_3 - %75 = OpLoad %v2float %74 None - %76 = OpCompositeConstruct %mat3v2float %71 %73 %75 - OpStore %66 %76 None - %77 = OpAccessChain %_ptr_StorageBuffer_v2float %11 %uint_0 %uint_1 %uint_1 %uint_0 - %79 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 - %80 = OpLoad %v2float %79 None - %81 = OpVectorShuffle %v2float %80 %80 1 0 - OpStore %77 %81 None + %42 = OpLoad %_arr_S_uint_4 %30 None + %43 = OpFunctionCall %void %tint_store_and_preserve_padding %42 + %45 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %48 = OpLoad %S_std140 %45 None + %49 = OpFunctionCall %S %tint_convert_S %48 + %53 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 + %54 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %53 %49 + %56 = OpAccessChain %_ptr_StorageBuffer_mat3v2float %11 %uint_0 %uint_3 %uint_1 + %59 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 + %61 = OpLoad %v2float %59 None + %62 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 + %63 = OpLoad %v2float %62 None + %64 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_3 + %65 = OpLoad %v2float %64 None + %66 = OpCompositeConstruct %mat3v2float %61 %63 %65 + OpStore %56 %66 None + %67 = OpAccessChain %_ptr_StorageBuffer_v2float %11 %uint_0 %uint_1 %uint_1 %uint_0 + %69 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 + %70 = OpLoad %v2float %69 None + %71 = OpVectorShuffle %v2float %70 %70 1 0 + OpStore %67 %71 None OpReturn OpFunctionEnd %tint_store_and_preserve_padding = OpFunction %void None %83 @@ -228,21 +228,21 @@ OpLoopMerge %133 %131 None OpBranch %130 %130 = OpLabel - %136 = OpUGreaterThanEqual %bool %134 %uint_4 - OpSelectionMerge %137 None - OpBranchConditional %136 %138 %137 - %138 = OpLabel + %137 = OpUGreaterThanEqual %bool %134 %uint_4 + OpSelectionMerge %138 None + OpBranchConditional %137 %139 %138 + %139 = OpLabel OpBranch %133 - %137 = OpLabel - %139 = OpAccessChain %_ptr_Function_S_std140 %125 %134 - %140 = OpLoad %S_std140 %139 None - %141 = OpAccessChain %_ptr_Function_S_std140 %127 %134 - OpStore %141 %140 None + %138 = OpLabel + %140 = OpAccessChain %_ptr_Function_S_std140 %125 %134 + %141 = OpLoad %S_std140 %140 None + %142 = OpAccessChain %_ptr_Function_S_std140 %127 %134 + OpStore %142 %141 None OpBranch %131 %131 = OpLabel %135 = OpIAdd %uint %134 %uint_1 OpBranch %132 %133 = OpLabel - %142 = OpLoad %_arr_S_std140_uint_4_0 %127 None - OpReturnValue %142 + %136 = OpLoad %_arr_S_std140_uint_4_0 %127 None + OpReturnValue %136 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.spvasm index 8de7aa3..8f60c42 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.spvasm
@@ -59,10 +59,6 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %21 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_S = OpTypePointer Workgroup %S - %36 = OpConstantNull %S - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_S_std140_uint_4 = OpTypePointer Uniform %_arr_S_std140_uint_4 @@ -70,14 +66,18 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %52 = OpConstantNull %_arr_S_uint_4 -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 + %44 = OpConstantNull %_arr_S_uint_4 +%_ptr_Workgroup_S = OpTypePointer Workgroup %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %_ptr_Workgroup_mat3v2float = OpTypePointer Workgroup %mat3v2float %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float %_ptr_Workgroup_v2float = OpTypePointer Workgroup %v2float + %bool = OpTypeBool + %82 = OpConstantNull %S +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %93 = OpTypeFunction %void %98 = OpTypeFunction %S %S_std140 %108 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 @@ -86,8 +86,8 @@ %f_inner = OpFunction %void None %21 %tint_local_index = OpFunctionParameter %uint %22 = OpLabel - %48 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function - %50 = OpVariable %_ptr_Function__arr_S_uint_4 Function %52 + %40 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function + %42 = OpVariable %_ptr_Function__arr_S_uint_4 Function %44 OpBranch %23 %23 = OpLabel OpBranch %26 @@ -96,69 +96,69 @@ OpLoopMerge %27 %25 None OpBranch %24 %24 = OpLabel - %30 = OpUGreaterThanEqual %bool %28 %uint_4 - OpSelectionMerge %32 None - OpBranchConditional %30 %33 %32 - %33 = OpLabel + %77 = OpUGreaterThanEqual %bool %28 %uint_4 + OpSelectionMerge %79 None + OpBranchConditional %77 %80 %79 + %80 = OpLabel OpBranch %27 - %32 = OpLabel - %34 = OpAccessChain %_ptr_Workgroup_S %w %28 - OpStore %34 %36 None + %79 = OpLabel + %81 = OpAccessChain %_ptr_Workgroup_S %w %28 + OpStore %81 %82 None OpBranch %25 %25 = OpLabel %29 = OpIAdd %uint %28 %uint_1 OpBranch %26 %27 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %41 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 - %44 = OpLoad %_arr_S_std140_uint_4 %41 None - %45 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %44 - OpStore %48 %45 - OpBranch %53 - %53 = OpLabel - OpBranch %56 - %56 = OpLabel - %58 = OpPhi %uint %uint_0 %53 %59 %55 - OpLoopMerge %57 %55 None - OpBranch %54 - %54 = OpLabel - %60 = OpUGreaterThanEqual %bool %58 %uint_4 - OpSelectionMerge %61 None - OpBranchConditional %60 %62 %61 - %62 = OpLabel - OpBranch %57 - %61 = OpLabel - %63 = OpAccessChain %_ptr_Function_S %50 %58 - %65 = OpAccessChain %_ptr_Function_S_std140 %48 %58 - %67 = OpLoad %S_std140 %65 None - %68 = OpFunctionCall %S %tint_convert_S %67 - OpStore %63 %68 None - OpBranch %55 - %55 = OpLabel - %59 = OpIAdd %uint %58 %uint_1 - OpBranch %56 - %57 = OpLabel - %70 = OpLoad %_arr_S_uint_4 %50 None - OpStore %w %70 None - %71 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 - %72 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %72 None - %75 = OpFunctionCall %S %tint_convert_S %74 - OpStore %71 %75 None - %76 = OpAccessChain %_ptr_Workgroup_mat3v2float %w %uint_3 %uint_1 - %79 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 - %81 = OpLoad %v2float %79 None - %82 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 - %83 = OpLoad %v2float %82 None - %84 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_3 - %85 = OpLoad %v2float %84 None - %86 = OpCompositeConstruct %mat3v2float %81 %83 %85 - OpStore %76 %86 None - %87 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_1 %uint_1 %uint_0 - %89 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 - %90 = OpLoad %v2float %89 None - %91 = OpVectorShuffle %v2float %90 %90 1 0 - OpStore %87 %91 None + %33 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 + %36 = OpLoad %_arr_S_std140_uint_4 %33 None + %37 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %36 + OpStore %40 %37 + OpBranch %45 + %45 = OpLabel + OpBranch %48 + %48 = OpLabel + %50 = OpPhi %uint %uint_0 %45 %51 %47 + OpLoopMerge %49 %47 None + OpBranch %46 + %46 = OpLabel + %83 = OpUGreaterThanEqual %bool %50 %uint_4 + OpSelectionMerge %84 None + OpBranchConditional %83 %85 %84 + %85 = OpLabel + OpBranch %49 + %84 = OpLabel + %86 = OpAccessChain %_ptr_Function_S %42 %50 + %88 = OpAccessChain %_ptr_Function_S_std140 %40 %50 + %90 = OpLoad %S_std140 %88 None + %91 = OpFunctionCall %S %tint_convert_S %90 + OpStore %86 %91 None + OpBranch %47 + %47 = OpLabel + %51 = OpIAdd %uint %50 %uint_1 + OpBranch %48 + %49 = OpLabel + %52 = OpLoad %_arr_S_uint_4 %42 None + OpStore %w %52 None + %53 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 + %56 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %58 = OpLoad %S_std140 %56 None + %59 = OpFunctionCall %S %tint_convert_S %58 + OpStore %53 %59 None + %61 = OpAccessChain %_ptr_Workgroup_mat3v2float %w %uint_3 %uint_1 + %64 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 + %66 = OpLoad %v2float %64 None + %67 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 + %68 = OpLoad %v2float %67 None + %69 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_3 + %70 = OpLoad %v2float %69 None + %71 = OpCompositeConstruct %mat3v2float %66 %68 %70 + OpStore %61 %71 None + %72 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_1 %uint_1 %uint_0 + %74 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 + %75 = OpLoad %v2float %74 None + %76 = OpVectorShuffle %v2float %75 %75 1 0 + OpStore %72 %76 None OpReturn OpFunctionEnd %f = OpFunction %void None %93 @@ -193,21 +193,21 @@ OpLoopMerge %118 %116 None OpBranch %115 %115 = OpLabel - %121 = OpUGreaterThanEqual %bool %119 %uint_4 - OpSelectionMerge %122 None - OpBranchConditional %121 %123 %122 - %123 = OpLabel + %122 = OpUGreaterThanEqual %bool %119 %uint_4 + OpSelectionMerge %123 None + OpBranchConditional %122 %124 %123 + %124 = OpLabel OpBranch %118 - %122 = OpLabel - %124 = OpAccessChain %_ptr_Function_S_std140 %110 %119 - %125 = OpLoad %S_std140 %124 None - %126 = OpAccessChain %_ptr_Function_S_std140 %112 %119 - OpStore %126 %125 None + %123 = OpLabel + %125 = OpAccessChain %_ptr_Function_S_std140 %110 %119 + %126 = OpLoad %S_std140 %125 None + %127 = OpAccessChain %_ptr_Function_S_std140 %112 %119 + OpStore %127 %126 None OpBranch %116 %116 = OpLabel %120 = OpIAdd %uint %119 %uint_1 OpBranch %117 %118 = OpLabel - %127 = OpLoad %_arr_S_std140_uint_4_0 %112 None - OpReturnValue %127 + %121 = OpLoad %_arr_S_std140_uint_4_0 %112 None + OpReturnValue %121 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.spvasm index 19b7a75..62b33b3 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -97,12 +97,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %77 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %98 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %108 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %134 = OpTypeFunction %Inner %Inner_std140 @@ -128,8 +128,8 @@ %55 = OpVariable %_ptr_Function_mat3v3half Function %69 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %71 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %77 - %104 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %106 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %108 + %94 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %96 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %98 %27 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %30 = OpFunctionCall %int %i %31 = OpBitcast %uint %30 @@ -164,60 +164,60 @@ OpLoopMerge %82 %80 None OpBranch %79 %79 = OpLabel - %85 = OpUGreaterThanEqual %bool %83 %uint_4 - OpSelectionMerge %87 None - OpBranchConditional %85 %88 %87 - %88 = OpLabel + %114 = OpUGreaterThanEqual %bool %83 %uint_4 + OpSelectionMerge %116 None + OpBranchConditional %114 %117 %116 + %117 = OpLabel OpBranch %82 - %87 = OpLabel - %89 = OpAccessChain %_ptr_Function_Outer %71 %83 - %91 = OpAccessChain %_ptr_Function_Outer_std140 %69 %83 - %93 = OpLoad %Outer_std140 %91 None - %94 = OpFunctionCall %Outer %tint_convert_Outer %93 - OpStore %89 %94 None + %116 = OpLabel + %118 = OpAccessChain %_ptr_Function_Outer %71 %83 + %120 = OpAccessChain %_ptr_Function_Outer_std140 %69 %83 + %122 = OpLoad %Outer_std140 %120 None + %123 = OpFunctionCall %Outer %tint_convert_Outer %122 + OpStore %118 %123 None OpBranch %80 %80 = OpLabel %84 = OpIAdd %uint %83 %uint_1 OpBranch %81 %82 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %71 None - %97 = OpLoad %Outer_std140_tint_explicit_layout %35 None - %98 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %97 - %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %98 - %101 = OpLoad %_arr_Inner_std140_uint_4 %37 None - %102 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %101 - OpStore %104 %102 - OpBranch %109 - %109 = OpLabel - OpBranch %112 - %112 = OpLabel - %114 = OpPhi %uint %uint_0 %109 %115 %111 - OpLoopMerge %113 %111 None - OpBranch %110 - %110 = OpLabel - %116 = OpUGreaterThanEqual %bool %114 %uint_4 - OpSelectionMerge %117 None - OpBranchConditional %116 %118 %117 - %118 = OpLabel - OpBranch %113 - %117 = OpLabel - %119 = OpAccessChain %_ptr_Function_Inner %106 %114 - %121 = OpAccessChain %_ptr_Function_Inner_std140 %104 %114 - %123 = OpLoad %Inner_std140 %121 None - %124 = OpFunctionCall %Inner %tint_convert_Inner %123 - OpStore %119 %124 None - OpBranch %111 - %111 = OpLabel - %115 = OpIAdd %uint %114 %uint_1 - OpBranch %112 - %113 = OpLabel - %l_a_i_a = OpLoad %_arr_Inner_uint_4 %106 None - %127 = OpLoad %Inner_std140 %42 None - %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %127 - %129 = OpFunctionCall %int %i - %130 = OpBitcast %uint %129 - %131 = OpExtInst %uint %33 UMin %130 %uint_2 -%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %half %l_a_i_a_i_m_i %131 + %86 = OpLoad %Outer_std140_tint_explicit_layout %35 None + %87 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %86 + %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %87 + %91 = OpLoad %_arr_Inner_std140_uint_4 %37 None + %92 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %91 + OpStore %94 %92 + OpBranch %99 + %99 = OpLabel + OpBranch %102 + %102 = OpLabel + %104 = OpPhi %uint %uint_0 %99 %105 %101 + OpLoopMerge %103 %101 None + OpBranch %100 + %100 = OpLabel + %124 = OpUGreaterThanEqual %bool %104 %uint_4 + OpSelectionMerge %125 None + OpBranchConditional %124 %126 %125 + %126 = OpLabel + OpBranch %103 + %125 = OpLabel + %127 = OpAccessChain %_ptr_Function_Inner %96 %104 + %129 = OpAccessChain %_ptr_Function_Inner_std140 %94 %104 + %131 = OpLoad %Inner_std140 %129 None + %132 = OpFunctionCall %Inner %tint_convert_Inner %131 + OpStore %127 %132 None + OpBranch %101 + %101 = OpLabel + %105 = OpIAdd %uint %104 %uint_1 + OpBranch %102 + %103 = OpLabel + %l_a_i_a = OpLoad %_arr_Inner_uint_4 %96 None + %107 = OpLoad %Inner_std140 %42 None + %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %107 + %110 = OpFunctionCall %int %i + %111 = OpBitcast %uint %110 + %112 = OpExtInst %uint %33 UMin %111 %uint_2 +%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %half %l_a_i_a_i_m_i %112 OpReturn OpFunctionEnd %tint_convert_Inner = OpFunction %Inner None %134 @@ -234,7 +234,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %143 = OpLabel %145 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %146 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %108 + %146 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %98 %144 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %145 %144 OpBranch %147 @@ -245,25 +245,25 @@ OpLoopMerge %151 %149 None OpBranch %148 %148 = OpLabel - %154 = OpUGreaterThanEqual %bool %152 %uint_4 - OpSelectionMerge %155 None - OpBranchConditional %154 %156 %155 - %156 = OpLabel + %156 = OpUGreaterThanEqual %bool %152 %uint_4 + OpSelectionMerge %157 None + OpBranchConditional %156 %158 %157 + %158 = OpLabel OpBranch %151 - %155 = OpLabel - %157 = OpAccessChain %_ptr_Function_Inner %146 %152 - %158 = OpAccessChain %_ptr_Function_Inner_std140 %145 %152 - %159 = OpLoad %Inner_std140 %158 None - %160 = OpFunctionCall %Inner %tint_convert_Inner %159 - OpStore %157 %160 None + %157 = OpLabel + %159 = OpAccessChain %_ptr_Function_Inner %146 %152 + %160 = OpAccessChain %_ptr_Function_Inner_std140 %145 %152 + %161 = OpLoad %Inner_std140 %160 None + %162 = OpFunctionCall %Inner %tint_convert_Inner %161 + OpStore %159 %162 None OpBranch %149 %149 = OpLabel %153 = OpIAdd %uint %152 %uint_1 OpBranch %150 %151 = OpLabel - %161 = OpLoad %_arr_Inner_uint_4 %146 None - %162 = OpCompositeConstruct %Outer %161 - OpReturnValue %162 + %154 = OpLoad %_arr_Inner_uint_4 %146 None + %155 = OpCompositeConstruct %Outer %154 + OpReturnValue %155 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %164 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -279,23 +279,23 @@ OpLoopMerge %174 %172 None OpBranch %171 %171 = OpLabel - %177 = OpUGreaterThanEqual %bool %175 %uint_4 - OpSelectionMerge %178 None - OpBranchConditional %177 %179 %178 - %179 = OpLabel + %178 = OpUGreaterThanEqual %bool %175 %uint_4 + OpSelectionMerge %179 None + OpBranchConditional %178 %180 %179 + %180 = OpLabel OpBranch %174 - %178 = OpLabel - %180 = OpAccessChain %_ptr_Function_Inner_std140 %166 %175 - %181 = OpLoad %Inner_std140 %180 None - %182 = OpAccessChain %_ptr_Function_Inner_std140 %168 %175 - OpStore %182 %181 None + %179 = OpLabel + %181 = OpAccessChain %_ptr_Function_Inner_std140 %166 %175 + %182 = OpLoad %Inner_std140 %181 None + %183 = OpAccessChain %_ptr_Function_Inner_std140 %168 %175 + OpStore %183 %182 None OpBranch %172 %172 = OpLabel %176 = OpIAdd %uint %175 %uint_1 OpBranch %173 %174 = OpLabel - %183 = OpLoad %_arr_Inner_std140_uint_4_0 %168 None - OpReturnValue %183 + %177 = OpLoad %_arr_Inner_std140_uint_4_0 %168 None + OpReturnValue %177 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %185 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -319,22 +319,22 @@ OpLoopMerge %201 %199 None OpBranch %198 %198 = OpLabel - %204 = OpUGreaterThanEqual %bool %202 %uint_4 - OpSelectionMerge %205 None - OpBranchConditional %204 %206 %205 - %206 = OpLabel + %205 = OpUGreaterThanEqual %bool %202 %uint_4 + OpSelectionMerge %206 None + OpBranchConditional %205 %207 %206 + %207 = OpLabel OpBranch %201 - %205 = OpLabel - %207 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %193 %202 - %209 = OpLoad %Outer_std140_tint_explicit_layout %207 None - %210 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %209 - %211 = OpAccessChain %_ptr_Function_Outer_std140 %195 %202 - OpStore %211 %210 None + %206 = OpLabel + %208 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %193 %202 + %210 = OpLoad %Outer_std140_tint_explicit_layout %208 None + %211 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %210 + %212 = OpAccessChain %_ptr_Function_Outer_std140 %195 %202 + OpStore %212 %211 None OpBranch %199 %199 = OpLabel %203 = OpIAdd %uint %202 %uint_1 OpBranch %200 %201 = OpLabel - %212 = OpLoad %_arr_Outer_std140_uint_4 %195 None - OpReturnValue %212 + %204 = OpLoad %_arr_Outer_std140_uint_4 %195 None + OpReturnValue %204 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.spvasm index 56ab5da..404eb6d 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.spvasm
@@ -86,12 +86,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %52 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %73 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %83 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %106 = OpTypeFunction %Inner %Inner_std140 @@ -108,8 +108,8 @@ %15 = OpLabel %44 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %46 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %52 - %79 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %81 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %83 + %69 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %71 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %73 %16 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %19 = OpAccessChain %_ptr_Uniform_Outer_std140_tint_explicit_layout %16 %uint_3 %22 = OpAccessChain %_ptr_Uniform__arr_Inner_std140_uint_4 %19 %uint_0 @@ -133,56 +133,56 @@ OpLoopMerge %57 %55 None OpBranch %54 %54 = OpLabel - %60 = OpUGreaterThanEqual %bool %58 %uint_4 - OpSelectionMerge %62 None - OpBranchConditional %60 %63 %62 - %63 = OpLabel + %86 = OpUGreaterThanEqual %bool %58 %uint_4 + OpSelectionMerge %88 None + OpBranchConditional %86 %89 %88 + %89 = OpLabel OpBranch %57 - %62 = OpLabel - %64 = OpAccessChain %_ptr_Function_Outer %46 %58 - %66 = OpAccessChain %_ptr_Function_Outer_std140 %44 %58 - %68 = OpLoad %Outer_std140 %66 None - %69 = OpFunctionCall %Outer %tint_convert_Outer %68 - OpStore %64 %69 None + %88 = OpLabel + %90 = OpAccessChain %_ptr_Function_Outer %46 %58 + %92 = OpAccessChain %_ptr_Function_Outer_std140 %44 %58 + %94 = OpLoad %Outer_std140 %92 None + %95 = OpFunctionCall %Outer %tint_convert_Outer %94 + OpStore %90 %95 None OpBranch %55 %55 = OpLabel %59 = OpIAdd %uint %58 %uint_1 OpBranch %56 %57 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %46 None - %72 = OpLoad %Outer_std140_tint_explicit_layout %19 None - %73 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %72 - %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %73 - %76 = OpLoad %_arr_Inner_std140_uint_4 %22 None - %77 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %76 - OpStore %79 %77 - OpBranch %84 - %84 = OpLabel - OpBranch %87 - %87 = OpLabel - %89 = OpPhi %uint %uint_0 %84 %90 %86 - OpLoopMerge %88 %86 None - OpBranch %85 - %85 = OpLabel - %91 = OpUGreaterThanEqual %bool %89 %uint_4 - OpSelectionMerge %92 None - OpBranchConditional %91 %93 %92 - %93 = OpLabel - OpBranch %88 - %92 = OpLabel - %94 = OpAccessChain %_ptr_Function_Inner %81 %89 - %96 = OpAccessChain %_ptr_Function_Inner_std140 %79 %89 - %98 = OpLoad %Inner_std140 %96 None - %99 = OpFunctionCall %Inner %tint_convert_Inner %98 - OpStore %94 %99 None - OpBranch %86 - %86 = OpLabel - %90 = OpIAdd %uint %89 %uint_1 - OpBranch %87 - %88 = OpLabel - %l_a_3_a = OpLoad %_arr_Inner_uint_4 %81 None - %102 = OpLoad %Inner_std140 %24 None - %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %102 + %61 = OpLoad %Outer_std140_tint_explicit_layout %19 None + %62 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %61 + %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %62 + %66 = OpLoad %_arr_Inner_std140_uint_4 %22 None + %67 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %66 + OpStore %69 %67 + OpBranch %74 + %74 = OpLabel + OpBranch %77 + %77 = OpLabel + %79 = OpPhi %uint %uint_0 %74 %80 %76 + OpLoopMerge %78 %76 None + OpBranch %75 + %75 = OpLabel + %96 = OpUGreaterThanEqual %bool %79 %uint_4 + OpSelectionMerge %97 None + OpBranchConditional %96 %98 %97 + %98 = OpLabel + OpBranch %78 + %97 = OpLabel + %99 = OpAccessChain %_ptr_Function_Inner %71 %79 + %101 = OpAccessChain %_ptr_Function_Inner_std140 %69 %79 + %103 = OpLoad %Inner_std140 %101 None + %104 = OpFunctionCall %Inner %tint_convert_Inner %103 + OpStore %99 %104 None + OpBranch %76 + %76 = OpLabel + %80 = OpIAdd %uint %79 %uint_1 + OpBranch %77 + %78 = OpLabel + %l_a_3_a = OpLoad %_arr_Inner_uint_4 %71 None + %82 = OpLoad %Inner_std140 %24 None + %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %82 %l_a_3_a_2_m_1_0 = OpCompositeExtract %half %l_a_3_a_2_m_1 0 OpReturn OpFunctionEnd @@ -200,7 +200,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %115 = OpLabel %117 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %118 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %83 + %118 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %73 %116 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %117 %116 OpBranch %119 @@ -211,25 +211,25 @@ OpLoopMerge %123 %121 None OpBranch %120 %120 = OpLabel - %126 = OpUGreaterThanEqual %bool %124 %uint_4 - OpSelectionMerge %127 None - OpBranchConditional %126 %128 %127 - %128 = OpLabel + %128 = OpUGreaterThanEqual %bool %124 %uint_4 + OpSelectionMerge %129 None + OpBranchConditional %128 %130 %129 + %130 = OpLabel OpBranch %123 - %127 = OpLabel - %129 = OpAccessChain %_ptr_Function_Inner %118 %124 - %130 = OpAccessChain %_ptr_Function_Inner_std140 %117 %124 - %131 = OpLoad %Inner_std140 %130 None - %132 = OpFunctionCall %Inner %tint_convert_Inner %131 - OpStore %129 %132 None + %129 = OpLabel + %131 = OpAccessChain %_ptr_Function_Inner %118 %124 + %132 = OpAccessChain %_ptr_Function_Inner_std140 %117 %124 + %133 = OpLoad %Inner_std140 %132 None + %134 = OpFunctionCall %Inner %tint_convert_Inner %133 + OpStore %131 %134 None OpBranch %121 %121 = OpLabel %125 = OpIAdd %uint %124 %uint_1 OpBranch %122 %123 = OpLabel - %133 = OpLoad %_arr_Inner_uint_4 %118 None - %134 = OpCompositeConstruct %Outer %133 - OpReturnValue %134 + %126 = OpLoad %_arr_Inner_uint_4 %118 None + %127 = OpCompositeConstruct %Outer %126 + OpReturnValue %127 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %136 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -245,23 +245,23 @@ OpLoopMerge %146 %144 None OpBranch %143 %143 = OpLabel - %149 = OpUGreaterThanEqual %bool %147 %uint_4 - OpSelectionMerge %150 None - OpBranchConditional %149 %151 %150 - %151 = OpLabel + %150 = OpUGreaterThanEqual %bool %147 %uint_4 + OpSelectionMerge %151 None + OpBranchConditional %150 %152 %151 + %152 = OpLabel OpBranch %146 - %150 = OpLabel - %152 = OpAccessChain %_ptr_Function_Inner_std140 %138 %147 - %153 = OpLoad %Inner_std140 %152 None - %154 = OpAccessChain %_ptr_Function_Inner_std140 %140 %147 - OpStore %154 %153 None + %151 = OpLabel + %153 = OpAccessChain %_ptr_Function_Inner_std140 %138 %147 + %154 = OpLoad %Inner_std140 %153 None + %155 = OpAccessChain %_ptr_Function_Inner_std140 %140 %147 + OpStore %155 %154 None OpBranch %144 %144 = OpLabel %148 = OpIAdd %uint %147 %uint_1 OpBranch %145 %146 = OpLabel - %155 = OpLoad %_arr_Inner_std140_uint_4_0 %140 None - OpReturnValue %155 + %149 = OpLoad %_arr_Inner_std140_uint_4_0 %140 None + OpReturnValue %149 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %157 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -285,22 +285,22 @@ OpLoopMerge %173 %171 None OpBranch %170 %170 = OpLabel - %176 = OpUGreaterThanEqual %bool %174 %uint_4 - OpSelectionMerge %177 None - OpBranchConditional %176 %178 %177 - %178 = OpLabel + %177 = OpUGreaterThanEqual %bool %174 %uint_4 + OpSelectionMerge %178 None + OpBranchConditional %177 %179 %178 + %179 = OpLabel OpBranch %173 - %177 = OpLabel - %179 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %165 %174 - %181 = OpLoad %Outer_std140_tint_explicit_layout %179 None - %182 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %181 - %183 = OpAccessChain %_ptr_Function_Outer_std140 %167 %174 - OpStore %183 %182 None + %178 = OpLabel + %180 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %165 %174 + %182 = OpLoad %Outer_std140_tint_explicit_layout %180 None + %183 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %182 + %184 = OpAccessChain %_ptr_Function_Outer_std140 %167 %174 + OpStore %184 %183 None OpBranch %171 %171 = OpLabel %175 = OpIAdd %uint %174 %uint_1 OpBranch %172 %173 = OpLabel - %184 = OpLoad %_arr_Outer_std140_uint_4 %167 None - OpReturnValue %184 + %176 = OpLoad %_arr_Outer_std140_uint_4 %167 None + OpReturnValue %176 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.spvasm index f25d324..adde922 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.spvasm
@@ -74,14 +74,14 @@ %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %49 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Uniform_v3half = OpTypePointer Uniform %v3half + %uint_1 = OpConstant %uint 1 %uint_3 = OpConstant %uint 3 + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %97 = OpTypeFunction %S %S_std140 %107 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -127,45 +127,45 @@ OpLoopMerge %54 %52 None OpBranch %51 %51 = OpLabel - %57 = OpUGreaterThanEqual %bool %55 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel + %86 = OpUGreaterThanEqual %bool %55 %uint_4 + OpSelectionMerge %88 None + OpBranchConditional %86 %89 %88 + %89 = OpLabel OpBranch %54 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_S %47 %55 - %63 = OpAccessChain %_ptr_Function_S_std140 %45 %55 - %65 = OpLoad %S_std140 %63 None - %66 = OpFunctionCall %S %tint_convert_S %65 - OpStore %61 %66 None + %88 = OpLabel + %90 = OpAccessChain %_ptr_Function_S %47 %55 + %92 = OpAccessChain %_ptr_Function_S_std140 %45 %55 + %94 = OpLoad %S_std140 %92 None + %95 = OpFunctionCall %S %tint_convert_S %94 + OpStore %90 %95 None OpBranch %52 %52 = OpLabel %56 = OpIAdd %uint %55 %uint_1 OpBranch %53 %54 = OpLabel - %69 = OpLoad %_arr_S_uint_4 %47 None - %70 = OpFunctionCall %void %a %69 - %71 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %71 None - %75 = OpFunctionCall %S %tint_convert_S %74 - %76 = OpFunctionCall %void %b %75 - %77 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 - %79 = OpLoad %v3half %77 None - %80 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 - %81 = OpLoad %v3half %80 None - %82 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_3 - %84 = OpLoad %v3half %82 None - %85 = OpCompositeConstruct %mat3v3half %79 %81 %84 - %86 = OpFunctionCall %void %c %85 - %87 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 - %88 = OpLoad %v3half %87 None - %89 = OpVectorShuffle %v3half %88 %88 2 0 1 - %90 = OpFunctionCall %void %d %89 - %91 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 - %92 = OpLoad %v3half %91 None - %93 = OpVectorShuffle %v3half %92 %92 2 0 1 - %94 = OpCompositeExtract %half %93 0 - %95 = OpFunctionCall %void %e %94 + %57 = OpLoad %_arr_S_uint_4 %47 None + %58 = OpFunctionCall %void %a %57 + %59 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %62 = OpLoad %S_std140 %59 None + %63 = OpFunctionCall %S %tint_convert_S %62 + %65 = OpFunctionCall %void %b %63 + %66 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 + %69 = OpLoad %v3half %66 None + %70 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 + %71 = OpLoad %v3half %70 None + %72 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_3 + %74 = OpLoad %v3half %72 None + %75 = OpCompositeConstruct %mat3v3half %69 %71 %74 + %76 = OpFunctionCall %void %c %75 + %77 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 + %78 = OpLoad %v3half %77 None + %79 = OpVectorShuffle %v3half %78 %78 2 0 1 + %80 = OpFunctionCall %void %d %79 + %81 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 + %82 = OpLoad %v3half %81 None + %83 = OpVectorShuffle %v3half %82 %82 2 0 1 + %84 = OpCompositeExtract %half %83 0 + %85 = OpFunctionCall %void %e %84 OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %97 @@ -194,21 +194,21 @@ OpLoopMerge %117 %115 None OpBranch %114 %114 = OpLabel - %120 = OpUGreaterThanEqual %bool %118 %uint_4 - OpSelectionMerge %121 None - OpBranchConditional %120 %122 %121 - %122 = OpLabel + %121 = OpUGreaterThanEqual %bool %118 %uint_4 + OpSelectionMerge %122 None + OpBranchConditional %121 %123 %122 + %123 = OpLabel OpBranch %117 - %121 = OpLabel - %123 = OpAccessChain %_ptr_Function_S_std140 %109 %118 - %124 = OpLoad %S_std140 %123 None - %125 = OpAccessChain %_ptr_Function_S_std140 %111 %118 - OpStore %125 %124 None + %122 = OpLabel + %124 = OpAccessChain %_ptr_Function_S_std140 %109 %118 + %125 = OpLoad %S_std140 %124 None + %126 = OpAccessChain %_ptr_Function_S_std140 %111 %118 + OpStore %126 %125 None OpBranch %115 %115 = OpLabel %119 = OpIAdd %uint %118 %uint_1 OpBranch %116 %117 = OpLabel - %126 = OpLoad %_arr_S_std140_uint_4_0 %111 None - OpReturnValue %126 + %120 = OpLoad %_arr_S_std140_uint_4_0 %111 None + OpReturnValue %120 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.spvasm index 48831ce..dfe170a 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.spvasm
@@ -62,17 +62,17 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Private_S = OpTypePointer Private %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Private_mat3v3half = OpTypePointer Private %mat3v3half %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v3half = OpTypePointer Uniform %v3half %_ptr_Private_v3half = OpTypePointer Private %v3half + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %76 = OpTypeFunction %S %S_std140 %86 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -93,43 +93,43 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_4 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %65 = OpUGreaterThanEqual %bool %37 %uint_4 + OpSelectionMerge %67 None + OpBranchConditional %65 %68 %67 + %68 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Function_S %30 %37 - %45 = OpAccessChain %_ptr_Function_S_std140 %28 %37 - %47 = OpLoad %S_std140 %45 None - %48 = OpFunctionCall %S %tint_convert_S %47 - OpStore %43 %48 None + %67 = OpLabel + %69 = OpAccessChain %_ptr_Function_S %30 %37 + %71 = OpAccessChain %_ptr_Function_S_std140 %28 %37 + %73 = OpLoad %S_std140 %71 None + %74 = OpFunctionCall %S %tint_convert_S %73 + OpStore %69 %74 None OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel - %51 = OpLoad %_arr_S_uint_4 %30 None - OpStore %p %51 None - %52 = OpAccessChain %_ptr_Private_S %p %uint_1 - %54 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %57 = OpLoad %S_std140 %54 None - %58 = OpFunctionCall %S %tint_convert_S %57 - OpStore %52 %58 None - %59 = OpAccessChain %_ptr_Private_mat3v3half %p %uint_3 %uint_1 - %62 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 - %64 = OpLoad %v3half %62 None - %65 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 - %66 = OpLoad %v3half %65 None - %67 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_3 - %68 = OpLoad %v3half %67 None - %69 = OpCompositeConstruct %mat3v3half %64 %66 %68 - OpStore %59 %69 None - %70 = OpAccessChain %_ptr_Private_v3half %p %uint_1 %uint_1 %uint_0 - %72 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 - %73 = OpLoad %v3half %72 None - %74 = OpVectorShuffle %v3half %73 %73 2 0 1 - OpStore %70 %74 None + %39 = OpLoad %_arr_S_uint_4 %30 None + OpStore %p %39 None + %40 = OpAccessChain %_ptr_Private_S %p %uint_1 + %43 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %46 = OpLoad %S_std140 %43 None + %47 = OpFunctionCall %S %tint_convert_S %46 + OpStore %40 %47 None + %49 = OpAccessChain %_ptr_Private_mat3v3half %p %uint_3 %uint_1 + %52 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 + %54 = OpLoad %v3half %52 None + %55 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 + %56 = OpLoad %v3half %55 None + %57 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_3 + %58 = OpLoad %v3half %57 None + %59 = OpCompositeConstruct %mat3v3half %54 %56 %58 + OpStore %49 %59 None + %60 = OpAccessChain %_ptr_Private_v3half %p %uint_1 %uint_1 %uint_0 + %62 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 + %63 = OpLoad %v3half %62 None + %64 = OpVectorShuffle %v3half %63 %63 2 0 1 + OpStore %60 %64 None OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %76 @@ -158,21 +158,21 @@ OpLoopMerge %96 %94 None OpBranch %93 %93 = OpLabel - %99 = OpUGreaterThanEqual %bool %97 %uint_4 - OpSelectionMerge %100 None - OpBranchConditional %99 %101 %100 - %101 = OpLabel + %100 = OpUGreaterThanEqual %bool %97 %uint_4 + OpSelectionMerge %101 None + OpBranchConditional %100 %102 %101 + %102 = OpLabel OpBranch %96 - %100 = OpLabel - %102 = OpAccessChain %_ptr_Function_S_std140 %88 %97 - %103 = OpLoad %S_std140 %102 None - %104 = OpAccessChain %_ptr_Function_S_std140 %90 %97 - OpStore %104 %103 None + %101 = OpLabel + %103 = OpAccessChain %_ptr_Function_S_std140 %88 %97 + %104 = OpLoad %S_std140 %103 None + %105 = OpAccessChain %_ptr_Function_S_std140 %90 %97 + OpStore %105 %104 None OpBranch %94 %94 = OpLabel %98 = OpIAdd %uint %97 %uint_1 OpBranch %95 %96 = OpLabel - %105 = OpLoad %_arr_S_std140_uint_4_0 %90 None - OpReturnValue %105 + %99 = OpLoad %_arr_S_std140_uint_4_0 %90 None + OpReturnValue %99 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_storage.wgsl.expected.spvasm index 099ee1f..543cd05 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_storage.wgsl.expected.spvasm
@@ -89,16 +89,16 @@ %_arr_S_uint_4 = OpTypeArray %S %uint_4 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %34 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 + %uint_1 = OpConstant %uint 1 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1 %_ptr_Uniform_v3half = OpTypePointer Uniform %v3half %uint_3 = OpConstant %uint 3 %_ptr_StorageBuffer_v3half = OpTypePointer StorageBuffer %v3half + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %84 = OpTypeFunction %void %_arr_S_uint_4 %103 = OpTypeFunction %void %_arr_uint_uint_1 %S %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int @@ -123,43 +123,43 @@ OpLoopMerge %39 %37 None OpBranch %36 %36 = OpLabel - %42 = OpUGreaterThanEqual %bool %40 %uint_4 - OpSelectionMerge %44 None - OpBranchConditional %42 %45 %44 - %45 = OpLabel + %73 = OpUGreaterThanEqual %bool %40 %uint_4 + OpSelectionMerge %75 None + OpBranchConditional %73 %76 %75 + %76 = OpLabel OpBranch %39 - %44 = OpLabel - %46 = OpAccessChain %_ptr_Function_S %30 %40 - %48 = OpAccessChain %_ptr_Function_S_std140 %28 %40 - %50 = OpLoad %S_std140 %48 None - %51 = OpFunctionCall %S %tint_convert_S %50 - OpStore %46 %51 None + %75 = OpLabel + %77 = OpAccessChain %_ptr_Function_S %30 %40 + %79 = OpAccessChain %_ptr_Function_S_std140 %28 %40 + %81 = OpLoad %S_std140 %79 None + %82 = OpFunctionCall %S %tint_convert_S %81 + OpStore %77 %82 None OpBranch %37 %37 = OpLabel %41 = OpIAdd %uint %40 %uint_1 OpBranch %38 %39 = OpLabel - %54 = OpLoad %_arr_S_uint_4 %30 None - %55 = OpFunctionCall %void %tint_store_and_preserve_padding %54 - %57 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %60 = OpLoad %S_std140 %57 None - %61 = OpFunctionCall %S %tint_convert_S %60 - %63 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 - %64 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %63 %61 - %66 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 - %68 = OpLoad %v3half %66 None - %69 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 - %70 = OpLoad %v3half %69 None - %71 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_3 - %73 = OpLoad %v3half %71 None - %74 = OpCompositeConstruct %mat3v3half %68 %70 %73 - %75 = OpCompositeConstruct %_arr_uint_uint_1 %uint_3 - %76 = OpFunctionCall %void %tint_store_and_preserve_padding_1 %75 %74 - %78 = OpAccessChain %_ptr_StorageBuffer_v3half %11 %uint_0 %uint_1 %uint_1 %uint_0 - %80 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 - %81 = OpLoad %v3half %80 None - %82 = OpVectorShuffle %v3half %81 %81 2 0 1 - OpStore %78 %82 None + %42 = OpLoad %_arr_S_uint_4 %30 None + %43 = OpFunctionCall %void %tint_store_and_preserve_padding %42 + %45 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %48 = OpLoad %S_std140 %45 None + %49 = OpFunctionCall %S %tint_convert_S %48 + %53 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 + %54 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %53 %49 + %56 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 + %58 = OpLoad %v3half %56 None + %59 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 + %60 = OpLoad %v3half %59 None + %61 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_3 + %63 = OpLoad %v3half %61 None + %64 = OpCompositeConstruct %mat3v3half %58 %60 %63 + %65 = OpCompositeConstruct %_arr_uint_uint_1 %uint_3 + %66 = OpFunctionCall %void %tint_store_and_preserve_padding_1 %65 %64 + %68 = OpAccessChain %_ptr_StorageBuffer_v3half %11 %uint_0 %uint_1 %uint_1 %uint_0 + %70 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 + %71 = OpLoad %v3half %70 None + %72 = OpVectorShuffle %v3half %71 %71 2 0 1 + OpStore %68 %72 None OpReturn OpFunctionEnd %tint_store_and_preserve_padding = OpFunction %void None %84 @@ -250,21 +250,21 @@ OpLoopMerge %146 %144 None OpBranch %143 %143 = OpLabel - %149 = OpUGreaterThanEqual %bool %147 %uint_4 - OpSelectionMerge %150 None - OpBranchConditional %149 %151 %150 - %151 = OpLabel + %150 = OpUGreaterThanEqual %bool %147 %uint_4 + OpSelectionMerge %151 None + OpBranchConditional %150 %152 %151 + %152 = OpLabel OpBranch %146 - %150 = OpLabel - %152 = OpAccessChain %_ptr_Function_S_std140 %138 %147 - %153 = OpLoad %S_std140 %152 None - %154 = OpAccessChain %_ptr_Function_S_std140 %140 %147 - OpStore %154 %153 None + %151 = OpLabel + %153 = OpAccessChain %_ptr_Function_S_std140 %138 %147 + %154 = OpLoad %S_std140 %153 None + %155 = OpAccessChain %_ptr_Function_S_std140 %140 %147 + OpStore %155 %154 None OpBranch %144 %144 = OpLabel %148 = OpIAdd %uint %147 %uint_1 OpBranch %145 %146 = OpLabel - %155 = OpLoad %_arr_S_std140_uint_4_0 %140 None - OpReturnValue %155 + %149 = OpLoad %_arr_S_std140_uint_4_0 %140 None + OpReturnValue %149 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.spvasm index 349b188..ca65bbf 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.spvasm
@@ -62,10 +62,6 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %21 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_S = OpTypePointer Workgroup %S - %36 = OpConstantNull %S - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_S_std140_uint_4 = OpTypePointer Uniform %_arr_S_std140_uint_4 @@ -73,14 +69,18 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %52 = OpConstantNull %_arr_S_uint_4 -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 + %44 = OpConstantNull %_arr_S_uint_4 +%_ptr_Workgroup_S = OpTypePointer Workgroup %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %_ptr_Workgroup_mat3v3half = OpTypePointer Workgroup %mat3v3half %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v3half = OpTypePointer Uniform %v3half %_ptr_Workgroup_v3half = OpTypePointer Workgroup %v3half + %bool = OpTypeBool + %82 = OpConstantNull %S +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %93 = OpTypeFunction %void %98 = OpTypeFunction %S %S_std140 %108 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 @@ -89,8 +89,8 @@ %f_inner = OpFunction %void None %21 %tint_local_index = OpFunctionParameter %uint %22 = OpLabel - %48 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function - %50 = OpVariable %_ptr_Function__arr_S_uint_4 Function %52 + %40 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function + %42 = OpVariable %_ptr_Function__arr_S_uint_4 Function %44 OpBranch %23 %23 = OpLabel OpBranch %26 @@ -99,69 +99,69 @@ OpLoopMerge %27 %25 None OpBranch %24 %24 = OpLabel - %30 = OpUGreaterThanEqual %bool %28 %uint_4 - OpSelectionMerge %32 None - OpBranchConditional %30 %33 %32 - %33 = OpLabel + %77 = OpUGreaterThanEqual %bool %28 %uint_4 + OpSelectionMerge %79 None + OpBranchConditional %77 %80 %79 + %80 = OpLabel OpBranch %27 - %32 = OpLabel - %34 = OpAccessChain %_ptr_Workgroup_S %w %28 - OpStore %34 %36 None + %79 = OpLabel + %81 = OpAccessChain %_ptr_Workgroup_S %w %28 + OpStore %81 %82 None OpBranch %25 %25 = OpLabel %29 = OpIAdd %uint %28 %uint_1 OpBranch %26 %27 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %41 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 - %44 = OpLoad %_arr_S_std140_uint_4 %41 None - %45 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %44 - OpStore %48 %45 - OpBranch %53 - %53 = OpLabel - OpBranch %56 - %56 = OpLabel - %58 = OpPhi %uint %uint_0 %53 %59 %55 - OpLoopMerge %57 %55 None - OpBranch %54 - %54 = OpLabel - %60 = OpUGreaterThanEqual %bool %58 %uint_4 - OpSelectionMerge %61 None - OpBranchConditional %60 %62 %61 - %62 = OpLabel - OpBranch %57 - %61 = OpLabel - %63 = OpAccessChain %_ptr_Function_S %50 %58 - %65 = OpAccessChain %_ptr_Function_S_std140 %48 %58 - %67 = OpLoad %S_std140 %65 None - %68 = OpFunctionCall %S %tint_convert_S %67 - OpStore %63 %68 None - OpBranch %55 - %55 = OpLabel - %59 = OpIAdd %uint %58 %uint_1 - OpBranch %56 - %57 = OpLabel - %70 = OpLoad %_arr_S_uint_4 %50 None - OpStore %w %70 None - %71 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 - %72 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %72 None - %75 = OpFunctionCall %S %tint_convert_S %74 - OpStore %71 %75 None - %76 = OpAccessChain %_ptr_Workgroup_mat3v3half %w %uint_3 %uint_1 - %79 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 - %81 = OpLoad %v3half %79 None - %82 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 - %83 = OpLoad %v3half %82 None - %84 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_3 - %85 = OpLoad %v3half %84 None - %86 = OpCompositeConstruct %mat3v3half %81 %83 %85 - OpStore %76 %86 None - %87 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 %uint_1 %uint_0 - %89 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 - %90 = OpLoad %v3half %89 None - %91 = OpVectorShuffle %v3half %90 %90 2 0 1 - OpStore %87 %91 None + %33 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 + %36 = OpLoad %_arr_S_std140_uint_4 %33 None + %37 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %36 + OpStore %40 %37 + OpBranch %45 + %45 = OpLabel + OpBranch %48 + %48 = OpLabel + %50 = OpPhi %uint %uint_0 %45 %51 %47 + OpLoopMerge %49 %47 None + OpBranch %46 + %46 = OpLabel + %83 = OpUGreaterThanEqual %bool %50 %uint_4 + OpSelectionMerge %84 None + OpBranchConditional %83 %85 %84 + %85 = OpLabel + OpBranch %49 + %84 = OpLabel + %86 = OpAccessChain %_ptr_Function_S %42 %50 + %88 = OpAccessChain %_ptr_Function_S_std140 %40 %50 + %90 = OpLoad %S_std140 %88 None + %91 = OpFunctionCall %S %tint_convert_S %90 + OpStore %86 %91 None + OpBranch %47 + %47 = OpLabel + %51 = OpIAdd %uint %50 %uint_1 + OpBranch %48 + %49 = OpLabel + %52 = OpLoad %_arr_S_uint_4 %42 None + OpStore %w %52 None + %53 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 + %56 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %58 = OpLoad %S_std140 %56 None + %59 = OpFunctionCall %S %tint_convert_S %58 + OpStore %53 %59 None + %61 = OpAccessChain %_ptr_Workgroup_mat3v3half %w %uint_3 %uint_1 + %64 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 + %66 = OpLoad %v3half %64 None + %67 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 + %68 = OpLoad %v3half %67 None + %69 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_3 + %70 = OpLoad %v3half %69 None + %71 = OpCompositeConstruct %mat3v3half %66 %68 %70 + OpStore %61 %71 None + %72 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 %uint_1 %uint_0 + %74 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 + %75 = OpLoad %v3half %74 None + %76 = OpVectorShuffle %v3half %75 %75 2 0 1 + OpStore %72 %76 None OpReturn OpFunctionEnd %f = OpFunction %void None %93 @@ -196,21 +196,21 @@ OpLoopMerge %118 %116 None OpBranch %115 %115 = OpLabel - %121 = OpUGreaterThanEqual %bool %119 %uint_4 - OpSelectionMerge %122 None - OpBranchConditional %121 %123 %122 - %123 = OpLabel + %122 = OpUGreaterThanEqual %bool %119 %uint_4 + OpSelectionMerge %123 None + OpBranchConditional %122 %124 %123 + %124 = OpLabel OpBranch %118 - %122 = OpLabel - %124 = OpAccessChain %_ptr_Function_S_std140 %110 %119 - %125 = OpLoad %S_std140 %124 None - %126 = OpAccessChain %_ptr_Function_S_std140 %112 %119 - OpStore %126 %125 None + %123 = OpLabel + %125 = OpAccessChain %_ptr_Function_S_std140 %110 %119 + %126 = OpLoad %S_std140 %125 None + %127 = OpAccessChain %_ptr_Function_S_std140 %112 %119 + OpStore %127 %126 None OpBranch %116 %116 = OpLabel %120 = OpIAdd %uint %119 %uint_1 OpBranch %117 %118 = OpLabel - %127 = OpLoad %_arr_S_std140_uint_4_0 %112 None - OpReturnValue %127 + %121 = OpLoad %_arr_S_std140_uint_4_0 %112 None + OpReturnValue %121 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.spvasm index 8b0c1fc..d0b6737 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -94,12 +94,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %77 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %98 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %108 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %134 = OpTypeFunction %Inner %Inner_std140 @@ -125,8 +125,8 @@ %55 = OpVariable %_ptr_Function_mat3v3float Function %69 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %71 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %77 - %104 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %106 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %108 + %94 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %96 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %98 %27 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %30 = OpFunctionCall %int %i %31 = OpBitcast %uint %30 @@ -161,60 +161,60 @@ OpLoopMerge %82 %80 None OpBranch %79 %79 = OpLabel - %85 = OpUGreaterThanEqual %bool %83 %uint_4 - OpSelectionMerge %87 None - OpBranchConditional %85 %88 %87 - %88 = OpLabel + %114 = OpUGreaterThanEqual %bool %83 %uint_4 + OpSelectionMerge %116 None + OpBranchConditional %114 %117 %116 + %117 = OpLabel OpBranch %82 - %87 = OpLabel - %89 = OpAccessChain %_ptr_Function_Outer %71 %83 - %91 = OpAccessChain %_ptr_Function_Outer_std140 %69 %83 - %93 = OpLoad %Outer_std140 %91 None - %94 = OpFunctionCall %Outer %tint_convert_Outer %93 - OpStore %89 %94 None + %116 = OpLabel + %118 = OpAccessChain %_ptr_Function_Outer %71 %83 + %120 = OpAccessChain %_ptr_Function_Outer_std140 %69 %83 + %122 = OpLoad %Outer_std140 %120 None + %123 = OpFunctionCall %Outer %tint_convert_Outer %122 + OpStore %118 %123 None OpBranch %80 %80 = OpLabel %84 = OpIAdd %uint %83 %uint_1 OpBranch %81 %82 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %71 None - %97 = OpLoad %Outer_std140_tint_explicit_layout %35 None - %98 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %97 - %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %98 - %101 = OpLoad %_arr_Inner_std140_uint_4 %37 None - %102 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %101 - OpStore %104 %102 - OpBranch %109 - %109 = OpLabel - OpBranch %112 - %112 = OpLabel - %114 = OpPhi %uint %uint_0 %109 %115 %111 - OpLoopMerge %113 %111 None - OpBranch %110 - %110 = OpLabel - %116 = OpUGreaterThanEqual %bool %114 %uint_4 - OpSelectionMerge %117 None - OpBranchConditional %116 %118 %117 - %118 = OpLabel - OpBranch %113 - %117 = OpLabel - %119 = OpAccessChain %_ptr_Function_Inner %106 %114 - %121 = OpAccessChain %_ptr_Function_Inner_std140 %104 %114 - %123 = OpLoad %Inner_std140 %121 None - %124 = OpFunctionCall %Inner %tint_convert_Inner %123 - OpStore %119 %124 None - OpBranch %111 - %111 = OpLabel - %115 = OpIAdd %uint %114 %uint_1 - OpBranch %112 - %113 = OpLabel - %l_a_i_a = OpLoad %_arr_Inner_uint_4 %106 None - %127 = OpLoad %Inner_std140 %42 None - %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %127 - %129 = OpFunctionCall %int %i - %130 = OpBitcast %uint %129 - %131 = OpExtInst %uint %33 UMin %130 %uint_2 -%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %float %l_a_i_a_i_m_i %131 + %86 = OpLoad %Outer_std140_tint_explicit_layout %35 None + %87 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %86 + %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %87 + %91 = OpLoad %_arr_Inner_std140_uint_4 %37 None + %92 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %91 + OpStore %94 %92 + OpBranch %99 + %99 = OpLabel + OpBranch %102 + %102 = OpLabel + %104 = OpPhi %uint %uint_0 %99 %105 %101 + OpLoopMerge %103 %101 None + OpBranch %100 + %100 = OpLabel + %124 = OpUGreaterThanEqual %bool %104 %uint_4 + OpSelectionMerge %125 None + OpBranchConditional %124 %126 %125 + %126 = OpLabel + OpBranch %103 + %125 = OpLabel + %127 = OpAccessChain %_ptr_Function_Inner %96 %104 + %129 = OpAccessChain %_ptr_Function_Inner_std140 %94 %104 + %131 = OpLoad %Inner_std140 %129 None + %132 = OpFunctionCall %Inner %tint_convert_Inner %131 + OpStore %127 %132 None + OpBranch %101 + %101 = OpLabel + %105 = OpIAdd %uint %104 %uint_1 + OpBranch %102 + %103 = OpLabel + %l_a_i_a = OpLoad %_arr_Inner_uint_4 %96 None + %107 = OpLoad %Inner_std140 %42 None + %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %107 + %110 = OpFunctionCall %int %i + %111 = OpBitcast %uint %110 + %112 = OpExtInst %uint %33 UMin %111 %uint_2 +%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %float %l_a_i_a_i_m_i %112 OpReturn OpFunctionEnd %tint_convert_Inner = OpFunction %Inner None %134 @@ -231,7 +231,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %143 = OpLabel %145 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %146 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %108 + %146 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %98 %144 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %145 %144 OpBranch %147 @@ -242,25 +242,25 @@ OpLoopMerge %151 %149 None OpBranch %148 %148 = OpLabel - %154 = OpUGreaterThanEqual %bool %152 %uint_4 - OpSelectionMerge %155 None - OpBranchConditional %154 %156 %155 - %156 = OpLabel + %156 = OpUGreaterThanEqual %bool %152 %uint_4 + OpSelectionMerge %157 None + OpBranchConditional %156 %158 %157 + %158 = OpLabel OpBranch %151 - %155 = OpLabel - %157 = OpAccessChain %_ptr_Function_Inner %146 %152 - %158 = OpAccessChain %_ptr_Function_Inner_std140 %145 %152 - %159 = OpLoad %Inner_std140 %158 None - %160 = OpFunctionCall %Inner %tint_convert_Inner %159 - OpStore %157 %160 None + %157 = OpLabel + %159 = OpAccessChain %_ptr_Function_Inner %146 %152 + %160 = OpAccessChain %_ptr_Function_Inner_std140 %145 %152 + %161 = OpLoad %Inner_std140 %160 None + %162 = OpFunctionCall %Inner %tint_convert_Inner %161 + OpStore %159 %162 None OpBranch %149 %149 = OpLabel %153 = OpIAdd %uint %152 %uint_1 OpBranch %150 %151 = OpLabel - %161 = OpLoad %_arr_Inner_uint_4 %146 None - %162 = OpCompositeConstruct %Outer %161 - OpReturnValue %162 + %154 = OpLoad %_arr_Inner_uint_4 %146 None + %155 = OpCompositeConstruct %Outer %154 + OpReturnValue %155 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %164 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -276,23 +276,23 @@ OpLoopMerge %174 %172 None OpBranch %171 %171 = OpLabel - %177 = OpUGreaterThanEqual %bool %175 %uint_4 - OpSelectionMerge %178 None - OpBranchConditional %177 %179 %178 - %179 = OpLabel + %178 = OpUGreaterThanEqual %bool %175 %uint_4 + OpSelectionMerge %179 None + OpBranchConditional %178 %180 %179 + %180 = OpLabel OpBranch %174 - %178 = OpLabel - %180 = OpAccessChain %_ptr_Function_Inner_std140 %166 %175 - %181 = OpLoad %Inner_std140 %180 None - %182 = OpAccessChain %_ptr_Function_Inner_std140 %168 %175 - OpStore %182 %181 None + %179 = OpLabel + %181 = OpAccessChain %_ptr_Function_Inner_std140 %166 %175 + %182 = OpLoad %Inner_std140 %181 None + %183 = OpAccessChain %_ptr_Function_Inner_std140 %168 %175 + OpStore %183 %182 None OpBranch %172 %172 = OpLabel %176 = OpIAdd %uint %175 %uint_1 OpBranch %173 %174 = OpLabel - %183 = OpLoad %_arr_Inner_std140_uint_4_0 %168 None - OpReturnValue %183 + %177 = OpLoad %_arr_Inner_std140_uint_4_0 %168 None + OpReturnValue %177 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %185 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -316,22 +316,22 @@ OpLoopMerge %201 %199 None OpBranch %198 %198 = OpLabel - %204 = OpUGreaterThanEqual %bool %202 %uint_4 - OpSelectionMerge %205 None - OpBranchConditional %204 %206 %205 - %206 = OpLabel + %205 = OpUGreaterThanEqual %bool %202 %uint_4 + OpSelectionMerge %206 None + OpBranchConditional %205 %207 %206 + %207 = OpLabel OpBranch %201 - %205 = OpLabel - %207 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %193 %202 - %209 = OpLoad %Outer_std140_tint_explicit_layout %207 None - %210 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %209 - %211 = OpAccessChain %_ptr_Function_Outer_std140 %195 %202 - OpStore %211 %210 None + %206 = OpLabel + %208 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %193 %202 + %210 = OpLoad %Outer_std140_tint_explicit_layout %208 None + %211 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %210 + %212 = OpAccessChain %_ptr_Function_Outer_std140 %195 %202 + OpStore %212 %211 None OpBranch %199 %199 = OpLabel %203 = OpIAdd %uint %202 %uint_1 OpBranch %200 %201 = OpLabel - %212 = OpLoad %_arr_Outer_std140_uint_4 %195 None - OpReturnValue %212 + %204 = OpLoad %_arr_Outer_std140_uint_4 %195 None + OpReturnValue %204 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.spvasm index 98d741f..593e419 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.spvasm
@@ -83,12 +83,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %52 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %73 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %83 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %106 = OpTypeFunction %Inner %Inner_std140 @@ -105,8 +105,8 @@ %15 = OpLabel %44 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %46 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %52 - %79 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %81 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %83 + %69 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %71 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %73 %16 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %19 = OpAccessChain %_ptr_Uniform_Outer_std140_tint_explicit_layout %16 %uint_3 %22 = OpAccessChain %_ptr_Uniform__arr_Inner_std140_uint_4 %19 %uint_0 @@ -130,56 +130,56 @@ OpLoopMerge %57 %55 None OpBranch %54 %54 = OpLabel - %60 = OpUGreaterThanEqual %bool %58 %uint_4 - OpSelectionMerge %62 None - OpBranchConditional %60 %63 %62 - %63 = OpLabel + %86 = OpUGreaterThanEqual %bool %58 %uint_4 + OpSelectionMerge %88 None + OpBranchConditional %86 %89 %88 + %89 = OpLabel OpBranch %57 - %62 = OpLabel - %64 = OpAccessChain %_ptr_Function_Outer %46 %58 - %66 = OpAccessChain %_ptr_Function_Outer_std140 %44 %58 - %68 = OpLoad %Outer_std140 %66 None - %69 = OpFunctionCall %Outer %tint_convert_Outer %68 - OpStore %64 %69 None + %88 = OpLabel + %90 = OpAccessChain %_ptr_Function_Outer %46 %58 + %92 = OpAccessChain %_ptr_Function_Outer_std140 %44 %58 + %94 = OpLoad %Outer_std140 %92 None + %95 = OpFunctionCall %Outer %tint_convert_Outer %94 + OpStore %90 %95 None OpBranch %55 %55 = OpLabel %59 = OpIAdd %uint %58 %uint_1 OpBranch %56 %57 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %46 None - %72 = OpLoad %Outer_std140_tint_explicit_layout %19 None - %73 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %72 - %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %73 - %76 = OpLoad %_arr_Inner_std140_uint_4 %22 None - %77 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %76 - OpStore %79 %77 - OpBranch %84 - %84 = OpLabel - OpBranch %87 - %87 = OpLabel - %89 = OpPhi %uint %uint_0 %84 %90 %86 - OpLoopMerge %88 %86 None - OpBranch %85 - %85 = OpLabel - %91 = OpUGreaterThanEqual %bool %89 %uint_4 - OpSelectionMerge %92 None - OpBranchConditional %91 %93 %92 - %93 = OpLabel - OpBranch %88 - %92 = OpLabel - %94 = OpAccessChain %_ptr_Function_Inner %81 %89 - %96 = OpAccessChain %_ptr_Function_Inner_std140 %79 %89 - %98 = OpLoad %Inner_std140 %96 None - %99 = OpFunctionCall %Inner %tint_convert_Inner %98 - OpStore %94 %99 None - OpBranch %86 - %86 = OpLabel - %90 = OpIAdd %uint %89 %uint_1 - OpBranch %87 - %88 = OpLabel - %l_a_3_a = OpLoad %_arr_Inner_uint_4 %81 None - %102 = OpLoad %Inner_std140 %24 None - %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %102 + %61 = OpLoad %Outer_std140_tint_explicit_layout %19 None + %62 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %61 + %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %62 + %66 = OpLoad %_arr_Inner_std140_uint_4 %22 None + %67 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %66 + OpStore %69 %67 + OpBranch %74 + %74 = OpLabel + OpBranch %77 + %77 = OpLabel + %79 = OpPhi %uint %uint_0 %74 %80 %76 + OpLoopMerge %78 %76 None + OpBranch %75 + %75 = OpLabel + %96 = OpUGreaterThanEqual %bool %79 %uint_4 + OpSelectionMerge %97 None + OpBranchConditional %96 %98 %97 + %98 = OpLabel + OpBranch %78 + %97 = OpLabel + %99 = OpAccessChain %_ptr_Function_Inner %71 %79 + %101 = OpAccessChain %_ptr_Function_Inner_std140 %69 %79 + %103 = OpLoad %Inner_std140 %101 None + %104 = OpFunctionCall %Inner %tint_convert_Inner %103 + OpStore %99 %104 None + OpBranch %76 + %76 = OpLabel + %80 = OpIAdd %uint %79 %uint_1 + OpBranch %77 + %78 = OpLabel + %l_a_3_a = OpLoad %_arr_Inner_uint_4 %71 None + %82 = OpLoad %Inner_std140 %24 None + %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %82 %l_a_3_a_2_m_1_0 = OpCompositeExtract %float %l_a_3_a_2_m_1 0 OpReturn OpFunctionEnd @@ -197,7 +197,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %115 = OpLabel %117 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %118 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %83 + %118 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %73 %116 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %117 %116 OpBranch %119 @@ -208,25 +208,25 @@ OpLoopMerge %123 %121 None OpBranch %120 %120 = OpLabel - %126 = OpUGreaterThanEqual %bool %124 %uint_4 - OpSelectionMerge %127 None - OpBranchConditional %126 %128 %127 - %128 = OpLabel + %128 = OpUGreaterThanEqual %bool %124 %uint_4 + OpSelectionMerge %129 None + OpBranchConditional %128 %130 %129 + %130 = OpLabel OpBranch %123 - %127 = OpLabel - %129 = OpAccessChain %_ptr_Function_Inner %118 %124 - %130 = OpAccessChain %_ptr_Function_Inner_std140 %117 %124 - %131 = OpLoad %Inner_std140 %130 None - %132 = OpFunctionCall %Inner %tint_convert_Inner %131 - OpStore %129 %132 None + %129 = OpLabel + %131 = OpAccessChain %_ptr_Function_Inner %118 %124 + %132 = OpAccessChain %_ptr_Function_Inner_std140 %117 %124 + %133 = OpLoad %Inner_std140 %132 None + %134 = OpFunctionCall %Inner %tint_convert_Inner %133 + OpStore %131 %134 None OpBranch %121 %121 = OpLabel %125 = OpIAdd %uint %124 %uint_1 OpBranch %122 %123 = OpLabel - %133 = OpLoad %_arr_Inner_uint_4 %118 None - %134 = OpCompositeConstruct %Outer %133 - OpReturnValue %134 + %126 = OpLoad %_arr_Inner_uint_4 %118 None + %127 = OpCompositeConstruct %Outer %126 + OpReturnValue %127 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %136 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -242,23 +242,23 @@ OpLoopMerge %146 %144 None OpBranch %143 %143 = OpLabel - %149 = OpUGreaterThanEqual %bool %147 %uint_4 - OpSelectionMerge %150 None - OpBranchConditional %149 %151 %150 - %151 = OpLabel + %150 = OpUGreaterThanEqual %bool %147 %uint_4 + OpSelectionMerge %151 None + OpBranchConditional %150 %152 %151 + %152 = OpLabel OpBranch %146 - %150 = OpLabel - %152 = OpAccessChain %_ptr_Function_Inner_std140 %138 %147 - %153 = OpLoad %Inner_std140 %152 None - %154 = OpAccessChain %_ptr_Function_Inner_std140 %140 %147 - OpStore %154 %153 None + %151 = OpLabel + %153 = OpAccessChain %_ptr_Function_Inner_std140 %138 %147 + %154 = OpLoad %Inner_std140 %153 None + %155 = OpAccessChain %_ptr_Function_Inner_std140 %140 %147 + OpStore %155 %154 None OpBranch %144 %144 = OpLabel %148 = OpIAdd %uint %147 %uint_1 OpBranch %145 %146 = OpLabel - %155 = OpLoad %_arr_Inner_std140_uint_4_0 %140 None - OpReturnValue %155 + %149 = OpLoad %_arr_Inner_std140_uint_4_0 %140 None + OpReturnValue %149 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %157 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -282,22 +282,22 @@ OpLoopMerge %173 %171 None OpBranch %170 %170 = OpLabel - %176 = OpUGreaterThanEqual %bool %174 %uint_4 - OpSelectionMerge %177 None - OpBranchConditional %176 %178 %177 - %178 = OpLabel + %177 = OpUGreaterThanEqual %bool %174 %uint_4 + OpSelectionMerge %178 None + OpBranchConditional %177 %179 %178 + %179 = OpLabel OpBranch %173 - %177 = OpLabel - %179 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %165 %174 - %181 = OpLoad %Outer_std140_tint_explicit_layout %179 None - %182 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %181 - %183 = OpAccessChain %_ptr_Function_Outer_std140 %167 %174 - OpStore %183 %182 None + %178 = OpLabel + %180 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %165 %174 + %182 = OpLoad %Outer_std140_tint_explicit_layout %180 None + %183 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %182 + %184 = OpAccessChain %_ptr_Function_Outer_std140 %167 %174 + OpStore %184 %183 None OpBranch %171 %171 = OpLabel %175 = OpIAdd %uint %174 %uint_1 OpBranch %172 %173 = OpLabel - %184 = OpLoad %_arr_Outer_std140_uint_4 %167 None - OpReturnValue %184 + %176 = OpLoad %_arr_Outer_std140_uint_4 %167 None + OpReturnValue %176 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.spvasm index 8ffdb4d..6a5b05a 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.spvasm
@@ -71,14 +71,14 @@ %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %49 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float + %uint_1 = OpConstant %uint 1 %uint_3 = OpConstant %uint 3 + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %97 = OpTypeFunction %S %S_std140 %107 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -124,45 +124,45 @@ OpLoopMerge %54 %52 None OpBranch %51 %51 = OpLabel - %57 = OpUGreaterThanEqual %bool %55 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel + %86 = OpUGreaterThanEqual %bool %55 %uint_4 + OpSelectionMerge %88 None + OpBranchConditional %86 %89 %88 + %89 = OpLabel OpBranch %54 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_S %47 %55 - %63 = OpAccessChain %_ptr_Function_S_std140 %45 %55 - %65 = OpLoad %S_std140 %63 None - %66 = OpFunctionCall %S %tint_convert_S %65 - OpStore %61 %66 None + %88 = OpLabel + %90 = OpAccessChain %_ptr_Function_S %47 %55 + %92 = OpAccessChain %_ptr_Function_S_std140 %45 %55 + %94 = OpLoad %S_std140 %92 None + %95 = OpFunctionCall %S %tint_convert_S %94 + OpStore %90 %95 None OpBranch %52 %52 = OpLabel %56 = OpIAdd %uint %55 %uint_1 OpBranch %53 %54 = OpLabel - %69 = OpLoad %_arr_S_uint_4 %47 None - %70 = OpFunctionCall %void %a %69 - %71 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %71 None - %75 = OpFunctionCall %S %tint_convert_S %74 - %76 = OpFunctionCall %void %b %75 - %77 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 - %79 = OpLoad %v3float %77 None - %80 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 - %81 = OpLoad %v3float %80 None - %82 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_3 - %84 = OpLoad %v3float %82 None - %85 = OpCompositeConstruct %mat3v3float %79 %81 %84 - %86 = OpFunctionCall %void %c %85 - %87 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 - %88 = OpLoad %v3float %87 None - %89 = OpVectorShuffle %v3float %88 %88 2 0 1 - %90 = OpFunctionCall %void %d %89 - %91 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 - %92 = OpLoad %v3float %91 None - %93 = OpVectorShuffle %v3float %92 %92 2 0 1 - %94 = OpCompositeExtract %float %93 0 - %95 = OpFunctionCall %void %e %94 + %57 = OpLoad %_arr_S_uint_4 %47 None + %58 = OpFunctionCall %void %a %57 + %59 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %62 = OpLoad %S_std140 %59 None + %63 = OpFunctionCall %S %tint_convert_S %62 + %65 = OpFunctionCall %void %b %63 + %66 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 + %69 = OpLoad %v3float %66 None + %70 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 + %71 = OpLoad %v3float %70 None + %72 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_3 + %74 = OpLoad %v3float %72 None + %75 = OpCompositeConstruct %mat3v3float %69 %71 %74 + %76 = OpFunctionCall %void %c %75 + %77 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 + %78 = OpLoad %v3float %77 None + %79 = OpVectorShuffle %v3float %78 %78 2 0 1 + %80 = OpFunctionCall %void %d %79 + %81 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 + %82 = OpLoad %v3float %81 None + %83 = OpVectorShuffle %v3float %82 %82 2 0 1 + %84 = OpCompositeExtract %float %83 0 + %85 = OpFunctionCall %void %e %84 OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %97 @@ -191,21 +191,21 @@ OpLoopMerge %117 %115 None OpBranch %114 %114 = OpLabel - %120 = OpUGreaterThanEqual %bool %118 %uint_4 - OpSelectionMerge %121 None - OpBranchConditional %120 %122 %121 - %122 = OpLabel + %121 = OpUGreaterThanEqual %bool %118 %uint_4 + OpSelectionMerge %122 None + OpBranchConditional %121 %123 %122 + %123 = OpLabel OpBranch %117 - %121 = OpLabel - %123 = OpAccessChain %_ptr_Function_S_std140 %109 %118 - %124 = OpLoad %S_std140 %123 None - %125 = OpAccessChain %_ptr_Function_S_std140 %111 %118 - OpStore %125 %124 None + %122 = OpLabel + %124 = OpAccessChain %_ptr_Function_S_std140 %109 %118 + %125 = OpLoad %S_std140 %124 None + %126 = OpAccessChain %_ptr_Function_S_std140 %111 %118 + OpStore %126 %125 None OpBranch %115 %115 = OpLabel %119 = OpIAdd %uint %118 %uint_1 OpBranch %116 %117 = OpLabel - %126 = OpLoad %_arr_S_std140_uint_4_0 %111 None - OpReturnValue %126 + %120 = OpLoad %_arr_S_std140_uint_4_0 %111 None + OpReturnValue %120 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.spvasm index e1d35b9..f9bd5a4 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.spvasm
@@ -59,17 +59,17 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Private_S = OpTypePointer Private %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Private_mat3v3float = OpTypePointer Private %mat3v3float %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float %_ptr_Private_v3float = OpTypePointer Private %v3float + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %76 = OpTypeFunction %S %S_std140 %86 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -90,43 +90,43 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_4 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %65 = OpUGreaterThanEqual %bool %37 %uint_4 + OpSelectionMerge %67 None + OpBranchConditional %65 %68 %67 + %68 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Function_S %30 %37 - %45 = OpAccessChain %_ptr_Function_S_std140 %28 %37 - %47 = OpLoad %S_std140 %45 None - %48 = OpFunctionCall %S %tint_convert_S %47 - OpStore %43 %48 None + %67 = OpLabel + %69 = OpAccessChain %_ptr_Function_S %30 %37 + %71 = OpAccessChain %_ptr_Function_S_std140 %28 %37 + %73 = OpLoad %S_std140 %71 None + %74 = OpFunctionCall %S %tint_convert_S %73 + OpStore %69 %74 None OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel - %51 = OpLoad %_arr_S_uint_4 %30 None - OpStore %p %51 None - %52 = OpAccessChain %_ptr_Private_S %p %uint_1 - %54 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %57 = OpLoad %S_std140 %54 None - %58 = OpFunctionCall %S %tint_convert_S %57 - OpStore %52 %58 None - %59 = OpAccessChain %_ptr_Private_mat3v3float %p %uint_3 %uint_1 - %62 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 - %64 = OpLoad %v3float %62 None - %65 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 - %66 = OpLoad %v3float %65 None - %67 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_3 - %68 = OpLoad %v3float %67 None - %69 = OpCompositeConstruct %mat3v3float %64 %66 %68 - OpStore %59 %69 None - %70 = OpAccessChain %_ptr_Private_v3float %p %uint_1 %uint_1 %uint_0 - %72 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 - %73 = OpLoad %v3float %72 None - %74 = OpVectorShuffle %v3float %73 %73 2 0 1 - OpStore %70 %74 None + %39 = OpLoad %_arr_S_uint_4 %30 None + OpStore %p %39 None + %40 = OpAccessChain %_ptr_Private_S %p %uint_1 + %43 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %46 = OpLoad %S_std140 %43 None + %47 = OpFunctionCall %S %tint_convert_S %46 + OpStore %40 %47 None + %49 = OpAccessChain %_ptr_Private_mat3v3float %p %uint_3 %uint_1 + %52 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 + %54 = OpLoad %v3float %52 None + %55 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 + %56 = OpLoad %v3float %55 None + %57 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_3 + %58 = OpLoad %v3float %57 None + %59 = OpCompositeConstruct %mat3v3float %54 %56 %58 + OpStore %49 %59 None + %60 = OpAccessChain %_ptr_Private_v3float %p %uint_1 %uint_1 %uint_0 + %62 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 + %63 = OpLoad %v3float %62 None + %64 = OpVectorShuffle %v3float %63 %63 2 0 1 + OpStore %60 %64 None OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %76 @@ -155,21 +155,21 @@ OpLoopMerge %96 %94 None OpBranch %93 %93 = OpLabel - %99 = OpUGreaterThanEqual %bool %97 %uint_4 - OpSelectionMerge %100 None - OpBranchConditional %99 %101 %100 - %101 = OpLabel + %100 = OpUGreaterThanEqual %bool %97 %uint_4 + OpSelectionMerge %101 None + OpBranchConditional %100 %102 %101 + %102 = OpLabel OpBranch %96 - %100 = OpLabel - %102 = OpAccessChain %_ptr_Function_S_std140 %88 %97 - %103 = OpLoad %S_std140 %102 None - %104 = OpAccessChain %_ptr_Function_S_std140 %90 %97 - OpStore %104 %103 None + %101 = OpLabel + %103 = OpAccessChain %_ptr_Function_S_std140 %88 %97 + %104 = OpLoad %S_std140 %103 None + %105 = OpAccessChain %_ptr_Function_S_std140 %90 %97 + OpStore %105 %104 None OpBranch %94 %94 = OpLabel %98 = OpIAdd %uint %97 %uint_1 OpBranch %95 %96 = OpLabel - %105 = OpLoad %_arr_S_std140_uint_4_0 %90 None - OpReturnValue %105 + %99 = OpLoad %_arr_S_std140_uint_4_0 %90 None + OpReturnValue %99 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_storage.wgsl.expected.spvasm index a85f44c..f8903eb 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_storage.wgsl.expected.spvasm
@@ -86,16 +86,16 @@ %_arr_S_uint_4 = OpTypeArray %S %uint_4 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %34 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 + %uint_1 = OpConstant %uint 1 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float %uint_3 = OpConstant %uint 3 %_ptr_StorageBuffer_v3float = OpTypePointer StorageBuffer %v3float + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %84 = OpTypeFunction %void %_arr_S_uint_4 %103 = OpTypeFunction %void %_arr_uint_uint_1 %S %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int @@ -120,43 +120,43 @@ OpLoopMerge %39 %37 None OpBranch %36 %36 = OpLabel - %42 = OpUGreaterThanEqual %bool %40 %uint_4 - OpSelectionMerge %44 None - OpBranchConditional %42 %45 %44 - %45 = OpLabel + %73 = OpUGreaterThanEqual %bool %40 %uint_4 + OpSelectionMerge %75 None + OpBranchConditional %73 %76 %75 + %76 = OpLabel OpBranch %39 - %44 = OpLabel - %46 = OpAccessChain %_ptr_Function_S %30 %40 - %48 = OpAccessChain %_ptr_Function_S_std140 %28 %40 - %50 = OpLoad %S_std140 %48 None - %51 = OpFunctionCall %S %tint_convert_S %50 - OpStore %46 %51 None + %75 = OpLabel + %77 = OpAccessChain %_ptr_Function_S %30 %40 + %79 = OpAccessChain %_ptr_Function_S_std140 %28 %40 + %81 = OpLoad %S_std140 %79 None + %82 = OpFunctionCall %S %tint_convert_S %81 + OpStore %77 %82 None OpBranch %37 %37 = OpLabel %41 = OpIAdd %uint %40 %uint_1 OpBranch %38 %39 = OpLabel - %54 = OpLoad %_arr_S_uint_4 %30 None - %55 = OpFunctionCall %void %tint_store_and_preserve_padding %54 - %57 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %60 = OpLoad %S_std140 %57 None - %61 = OpFunctionCall %S %tint_convert_S %60 - %63 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 - %64 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %63 %61 - %66 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 - %68 = OpLoad %v3float %66 None - %69 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 - %70 = OpLoad %v3float %69 None - %71 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_3 - %73 = OpLoad %v3float %71 None - %74 = OpCompositeConstruct %mat3v3float %68 %70 %73 - %75 = OpCompositeConstruct %_arr_uint_uint_1 %uint_3 - %76 = OpFunctionCall %void %tint_store_and_preserve_padding_1 %75 %74 - %78 = OpAccessChain %_ptr_StorageBuffer_v3float %11 %uint_0 %uint_1 %uint_1 %uint_0 - %80 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 - %81 = OpLoad %v3float %80 None - %82 = OpVectorShuffle %v3float %81 %81 2 0 1 - OpStore %78 %82 None + %42 = OpLoad %_arr_S_uint_4 %30 None + %43 = OpFunctionCall %void %tint_store_and_preserve_padding %42 + %45 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %48 = OpLoad %S_std140 %45 None + %49 = OpFunctionCall %S %tint_convert_S %48 + %53 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 + %54 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %53 %49 + %56 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 + %58 = OpLoad %v3float %56 None + %59 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 + %60 = OpLoad %v3float %59 None + %61 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_3 + %63 = OpLoad %v3float %61 None + %64 = OpCompositeConstruct %mat3v3float %58 %60 %63 + %65 = OpCompositeConstruct %_arr_uint_uint_1 %uint_3 + %66 = OpFunctionCall %void %tint_store_and_preserve_padding_1 %65 %64 + %68 = OpAccessChain %_ptr_StorageBuffer_v3float %11 %uint_0 %uint_1 %uint_1 %uint_0 + %70 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 + %71 = OpLoad %v3float %70 None + %72 = OpVectorShuffle %v3float %71 %71 2 0 1 + OpStore %68 %72 None OpReturn OpFunctionEnd %tint_store_and_preserve_padding = OpFunction %void None %84 @@ -247,21 +247,21 @@ OpLoopMerge %146 %144 None OpBranch %143 %143 = OpLabel - %149 = OpUGreaterThanEqual %bool %147 %uint_4 - OpSelectionMerge %150 None - OpBranchConditional %149 %151 %150 - %151 = OpLabel + %150 = OpUGreaterThanEqual %bool %147 %uint_4 + OpSelectionMerge %151 None + OpBranchConditional %150 %152 %151 + %152 = OpLabel OpBranch %146 - %150 = OpLabel - %152 = OpAccessChain %_ptr_Function_S_std140 %138 %147 - %153 = OpLoad %S_std140 %152 None - %154 = OpAccessChain %_ptr_Function_S_std140 %140 %147 - OpStore %154 %153 None + %151 = OpLabel + %153 = OpAccessChain %_ptr_Function_S_std140 %138 %147 + %154 = OpLoad %S_std140 %153 None + %155 = OpAccessChain %_ptr_Function_S_std140 %140 %147 + OpStore %155 %154 None OpBranch %144 %144 = OpLabel %148 = OpIAdd %uint %147 %uint_1 OpBranch %145 %146 = OpLabel - %155 = OpLoad %_arr_S_std140_uint_4_0 %140 None - OpReturnValue %155 + %149 = OpLoad %_arr_S_std140_uint_4_0 %140 None + OpReturnValue %149 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.spvasm index be4cc1e..63b2d7c 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.spvasm
@@ -59,10 +59,6 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %21 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_S = OpTypePointer Workgroup %S - %36 = OpConstantNull %S - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_S_std140_uint_4 = OpTypePointer Uniform %_arr_S_std140_uint_4 @@ -70,14 +66,18 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %52 = OpConstantNull %_arr_S_uint_4 -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 + %44 = OpConstantNull %_arr_S_uint_4 +%_ptr_Workgroup_S = OpTypePointer Workgroup %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %_ptr_Workgroup_mat3v3float = OpTypePointer Workgroup %mat3v3float %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float %_ptr_Workgroup_v3float = OpTypePointer Workgroup %v3float + %bool = OpTypeBool + %82 = OpConstantNull %S +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %93 = OpTypeFunction %void %98 = OpTypeFunction %S %S_std140 %108 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 @@ -86,8 +86,8 @@ %f_inner = OpFunction %void None %21 %tint_local_index = OpFunctionParameter %uint %22 = OpLabel - %48 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function - %50 = OpVariable %_ptr_Function__arr_S_uint_4 Function %52 + %40 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function + %42 = OpVariable %_ptr_Function__arr_S_uint_4 Function %44 OpBranch %23 %23 = OpLabel OpBranch %26 @@ -96,69 +96,69 @@ OpLoopMerge %27 %25 None OpBranch %24 %24 = OpLabel - %30 = OpUGreaterThanEqual %bool %28 %uint_4 - OpSelectionMerge %32 None - OpBranchConditional %30 %33 %32 - %33 = OpLabel + %77 = OpUGreaterThanEqual %bool %28 %uint_4 + OpSelectionMerge %79 None + OpBranchConditional %77 %80 %79 + %80 = OpLabel OpBranch %27 - %32 = OpLabel - %34 = OpAccessChain %_ptr_Workgroup_S %w %28 - OpStore %34 %36 None + %79 = OpLabel + %81 = OpAccessChain %_ptr_Workgroup_S %w %28 + OpStore %81 %82 None OpBranch %25 %25 = OpLabel %29 = OpIAdd %uint %28 %uint_1 OpBranch %26 %27 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %41 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 - %44 = OpLoad %_arr_S_std140_uint_4 %41 None - %45 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %44 - OpStore %48 %45 - OpBranch %53 - %53 = OpLabel - OpBranch %56 - %56 = OpLabel - %58 = OpPhi %uint %uint_0 %53 %59 %55 - OpLoopMerge %57 %55 None - OpBranch %54 - %54 = OpLabel - %60 = OpUGreaterThanEqual %bool %58 %uint_4 - OpSelectionMerge %61 None - OpBranchConditional %60 %62 %61 - %62 = OpLabel - OpBranch %57 - %61 = OpLabel - %63 = OpAccessChain %_ptr_Function_S %50 %58 - %65 = OpAccessChain %_ptr_Function_S_std140 %48 %58 - %67 = OpLoad %S_std140 %65 None - %68 = OpFunctionCall %S %tint_convert_S %67 - OpStore %63 %68 None - OpBranch %55 - %55 = OpLabel - %59 = OpIAdd %uint %58 %uint_1 - OpBranch %56 - %57 = OpLabel - %70 = OpLoad %_arr_S_uint_4 %50 None - OpStore %w %70 None - %71 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 - %72 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %72 None - %75 = OpFunctionCall %S %tint_convert_S %74 - OpStore %71 %75 None - %76 = OpAccessChain %_ptr_Workgroup_mat3v3float %w %uint_3 %uint_1 - %79 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 - %81 = OpLoad %v3float %79 None - %82 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 - %83 = OpLoad %v3float %82 None - %84 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_3 - %85 = OpLoad %v3float %84 None - %86 = OpCompositeConstruct %mat3v3float %81 %83 %85 - OpStore %76 %86 None - %87 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 %uint_1 %uint_0 - %89 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 - %90 = OpLoad %v3float %89 None - %91 = OpVectorShuffle %v3float %90 %90 2 0 1 - OpStore %87 %91 None + %33 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 + %36 = OpLoad %_arr_S_std140_uint_4 %33 None + %37 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %36 + OpStore %40 %37 + OpBranch %45 + %45 = OpLabel + OpBranch %48 + %48 = OpLabel + %50 = OpPhi %uint %uint_0 %45 %51 %47 + OpLoopMerge %49 %47 None + OpBranch %46 + %46 = OpLabel + %83 = OpUGreaterThanEqual %bool %50 %uint_4 + OpSelectionMerge %84 None + OpBranchConditional %83 %85 %84 + %85 = OpLabel + OpBranch %49 + %84 = OpLabel + %86 = OpAccessChain %_ptr_Function_S %42 %50 + %88 = OpAccessChain %_ptr_Function_S_std140 %40 %50 + %90 = OpLoad %S_std140 %88 None + %91 = OpFunctionCall %S %tint_convert_S %90 + OpStore %86 %91 None + OpBranch %47 + %47 = OpLabel + %51 = OpIAdd %uint %50 %uint_1 + OpBranch %48 + %49 = OpLabel + %52 = OpLoad %_arr_S_uint_4 %42 None + OpStore %w %52 None + %53 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 + %56 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %58 = OpLoad %S_std140 %56 None + %59 = OpFunctionCall %S %tint_convert_S %58 + OpStore %53 %59 None + %61 = OpAccessChain %_ptr_Workgroup_mat3v3float %w %uint_3 %uint_1 + %64 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 + %66 = OpLoad %v3float %64 None + %67 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 + %68 = OpLoad %v3float %67 None + %69 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_3 + %70 = OpLoad %v3float %69 None + %71 = OpCompositeConstruct %mat3v3float %66 %68 %70 + OpStore %61 %71 None + %72 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 %uint_1 %uint_0 + %74 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 + %75 = OpLoad %v3float %74 None + %76 = OpVectorShuffle %v3float %75 %75 2 0 1 + OpStore %72 %76 None OpReturn OpFunctionEnd %f = OpFunction %void None %93 @@ -193,21 +193,21 @@ OpLoopMerge %118 %116 None OpBranch %115 %115 = OpLabel - %121 = OpUGreaterThanEqual %bool %119 %uint_4 - OpSelectionMerge %122 None - OpBranchConditional %121 %123 %122 - %123 = OpLabel + %122 = OpUGreaterThanEqual %bool %119 %uint_4 + OpSelectionMerge %123 None + OpBranchConditional %122 %124 %123 + %124 = OpLabel OpBranch %118 - %122 = OpLabel - %124 = OpAccessChain %_ptr_Function_S_std140 %110 %119 - %125 = OpLoad %S_std140 %124 None - %126 = OpAccessChain %_ptr_Function_S_std140 %112 %119 - OpStore %126 %125 None + %123 = OpLabel + %125 = OpAccessChain %_ptr_Function_S_std140 %110 %119 + %126 = OpLoad %S_std140 %125 None + %127 = OpAccessChain %_ptr_Function_S_std140 %112 %119 + OpStore %127 %126 None OpBranch %116 %116 = OpLabel %120 = OpIAdd %uint %119 %uint_1 OpBranch %117 %118 = OpLabel - %127 = OpLoad %_arr_S_std140_uint_4_0 %112 None - OpReturnValue %127 + %121 = OpLoad %_arr_S_std140_uint_4_0 %112 None + OpReturnValue %121 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.spvasm index e734a94..7692d21 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -97,12 +97,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %77 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %98 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %108 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %134 = OpTypeFunction %Inner %Inner_std140 @@ -128,8 +128,8 @@ %55 = OpVariable %_ptr_Function_mat3v4half Function %69 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %71 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %77 - %104 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %106 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %108 + %94 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %96 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %98 %27 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %30 = OpFunctionCall %int %i %31 = OpBitcast %uint %30 @@ -164,60 +164,60 @@ OpLoopMerge %82 %80 None OpBranch %79 %79 = OpLabel - %85 = OpUGreaterThanEqual %bool %83 %uint_4 - OpSelectionMerge %87 None - OpBranchConditional %85 %88 %87 - %88 = OpLabel + %114 = OpUGreaterThanEqual %bool %83 %uint_4 + OpSelectionMerge %116 None + OpBranchConditional %114 %117 %116 + %117 = OpLabel OpBranch %82 - %87 = OpLabel - %89 = OpAccessChain %_ptr_Function_Outer %71 %83 - %91 = OpAccessChain %_ptr_Function_Outer_std140 %69 %83 - %93 = OpLoad %Outer_std140 %91 None - %94 = OpFunctionCall %Outer %tint_convert_Outer %93 - OpStore %89 %94 None + %116 = OpLabel + %118 = OpAccessChain %_ptr_Function_Outer %71 %83 + %120 = OpAccessChain %_ptr_Function_Outer_std140 %69 %83 + %122 = OpLoad %Outer_std140 %120 None + %123 = OpFunctionCall %Outer %tint_convert_Outer %122 + OpStore %118 %123 None OpBranch %80 %80 = OpLabel %84 = OpIAdd %uint %83 %uint_1 OpBranch %81 %82 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %71 None - %97 = OpLoad %Outer_std140_tint_explicit_layout %35 None - %98 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %97 - %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %98 - %101 = OpLoad %_arr_Inner_std140_uint_4 %37 None - %102 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %101 - OpStore %104 %102 - OpBranch %109 - %109 = OpLabel - OpBranch %112 - %112 = OpLabel - %114 = OpPhi %uint %uint_0 %109 %115 %111 - OpLoopMerge %113 %111 None - OpBranch %110 - %110 = OpLabel - %116 = OpUGreaterThanEqual %bool %114 %uint_4 - OpSelectionMerge %117 None - OpBranchConditional %116 %118 %117 - %118 = OpLabel - OpBranch %113 - %117 = OpLabel - %119 = OpAccessChain %_ptr_Function_Inner %106 %114 - %121 = OpAccessChain %_ptr_Function_Inner_std140 %104 %114 - %123 = OpLoad %Inner_std140 %121 None - %124 = OpFunctionCall %Inner %tint_convert_Inner %123 - OpStore %119 %124 None - OpBranch %111 - %111 = OpLabel - %115 = OpIAdd %uint %114 %uint_1 - OpBranch %112 - %113 = OpLabel - %l_a_i_a = OpLoad %_arr_Inner_uint_4 %106 None - %127 = OpLoad %Inner_std140 %42 None - %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %127 - %129 = OpFunctionCall %int %i - %130 = OpBitcast %uint %129 - %131 = OpExtInst %uint %33 UMin %130 %uint_3 -%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %half %l_a_i_a_i_m_i %131 + %86 = OpLoad %Outer_std140_tint_explicit_layout %35 None + %87 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %86 + %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %87 + %91 = OpLoad %_arr_Inner_std140_uint_4 %37 None + %92 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %91 + OpStore %94 %92 + OpBranch %99 + %99 = OpLabel + OpBranch %102 + %102 = OpLabel + %104 = OpPhi %uint %uint_0 %99 %105 %101 + OpLoopMerge %103 %101 None + OpBranch %100 + %100 = OpLabel + %124 = OpUGreaterThanEqual %bool %104 %uint_4 + OpSelectionMerge %125 None + OpBranchConditional %124 %126 %125 + %126 = OpLabel + OpBranch %103 + %125 = OpLabel + %127 = OpAccessChain %_ptr_Function_Inner %96 %104 + %129 = OpAccessChain %_ptr_Function_Inner_std140 %94 %104 + %131 = OpLoad %Inner_std140 %129 None + %132 = OpFunctionCall %Inner %tint_convert_Inner %131 + OpStore %127 %132 None + OpBranch %101 + %101 = OpLabel + %105 = OpIAdd %uint %104 %uint_1 + OpBranch %102 + %103 = OpLabel + %l_a_i_a = OpLoad %_arr_Inner_uint_4 %96 None + %107 = OpLoad %Inner_std140 %42 None + %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %107 + %110 = OpFunctionCall %int %i + %111 = OpBitcast %uint %110 + %112 = OpExtInst %uint %33 UMin %111 %uint_3 +%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %half %l_a_i_a_i_m_i %112 OpReturn OpFunctionEnd %tint_convert_Inner = OpFunction %Inner None %134 @@ -234,7 +234,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %143 = OpLabel %145 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %146 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %108 + %146 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %98 %144 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %145 %144 OpBranch %147 @@ -245,25 +245,25 @@ OpLoopMerge %151 %149 None OpBranch %148 %148 = OpLabel - %154 = OpUGreaterThanEqual %bool %152 %uint_4 - OpSelectionMerge %155 None - OpBranchConditional %154 %156 %155 - %156 = OpLabel + %156 = OpUGreaterThanEqual %bool %152 %uint_4 + OpSelectionMerge %157 None + OpBranchConditional %156 %158 %157 + %158 = OpLabel OpBranch %151 - %155 = OpLabel - %157 = OpAccessChain %_ptr_Function_Inner %146 %152 - %158 = OpAccessChain %_ptr_Function_Inner_std140 %145 %152 - %159 = OpLoad %Inner_std140 %158 None - %160 = OpFunctionCall %Inner %tint_convert_Inner %159 - OpStore %157 %160 None + %157 = OpLabel + %159 = OpAccessChain %_ptr_Function_Inner %146 %152 + %160 = OpAccessChain %_ptr_Function_Inner_std140 %145 %152 + %161 = OpLoad %Inner_std140 %160 None + %162 = OpFunctionCall %Inner %tint_convert_Inner %161 + OpStore %159 %162 None OpBranch %149 %149 = OpLabel %153 = OpIAdd %uint %152 %uint_1 OpBranch %150 %151 = OpLabel - %161 = OpLoad %_arr_Inner_uint_4 %146 None - %162 = OpCompositeConstruct %Outer %161 - OpReturnValue %162 + %154 = OpLoad %_arr_Inner_uint_4 %146 None + %155 = OpCompositeConstruct %Outer %154 + OpReturnValue %155 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %164 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -279,23 +279,23 @@ OpLoopMerge %174 %172 None OpBranch %171 %171 = OpLabel - %177 = OpUGreaterThanEqual %bool %175 %uint_4 - OpSelectionMerge %178 None - OpBranchConditional %177 %179 %178 - %179 = OpLabel + %178 = OpUGreaterThanEqual %bool %175 %uint_4 + OpSelectionMerge %179 None + OpBranchConditional %178 %180 %179 + %180 = OpLabel OpBranch %174 - %178 = OpLabel - %180 = OpAccessChain %_ptr_Function_Inner_std140 %166 %175 - %181 = OpLoad %Inner_std140 %180 None - %182 = OpAccessChain %_ptr_Function_Inner_std140 %168 %175 - OpStore %182 %181 None + %179 = OpLabel + %181 = OpAccessChain %_ptr_Function_Inner_std140 %166 %175 + %182 = OpLoad %Inner_std140 %181 None + %183 = OpAccessChain %_ptr_Function_Inner_std140 %168 %175 + OpStore %183 %182 None OpBranch %172 %172 = OpLabel %176 = OpIAdd %uint %175 %uint_1 OpBranch %173 %174 = OpLabel - %183 = OpLoad %_arr_Inner_std140_uint_4_0 %168 None - OpReturnValue %183 + %177 = OpLoad %_arr_Inner_std140_uint_4_0 %168 None + OpReturnValue %177 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %185 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -319,22 +319,22 @@ OpLoopMerge %201 %199 None OpBranch %198 %198 = OpLabel - %204 = OpUGreaterThanEqual %bool %202 %uint_4 - OpSelectionMerge %205 None - OpBranchConditional %204 %206 %205 - %206 = OpLabel + %205 = OpUGreaterThanEqual %bool %202 %uint_4 + OpSelectionMerge %206 None + OpBranchConditional %205 %207 %206 + %207 = OpLabel OpBranch %201 - %205 = OpLabel - %207 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %193 %202 - %209 = OpLoad %Outer_std140_tint_explicit_layout %207 None - %210 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %209 - %211 = OpAccessChain %_ptr_Function_Outer_std140 %195 %202 - OpStore %211 %210 None + %206 = OpLabel + %208 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %193 %202 + %210 = OpLoad %Outer_std140_tint_explicit_layout %208 None + %211 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %210 + %212 = OpAccessChain %_ptr_Function_Outer_std140 %195 %202 + OpStore %212 %211 None OpBranch %199 %199 = OpLabel %203 = OpIAdd %uint %202 %uint_1 OpBranch %200 %201 = OpLabel - %212 = OpLoad %_arr_Outer_std140_uint_4 %195 None - OpReturnValue %212 + %204 = OpLoad %_arr_Outer_std140_uint_4 %195 None + OpReturnValue %204 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.spvasm index c605f3c..c08513a 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.spvasm
@@ -86,12 +86,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %52 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %73 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %83 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %106 = OpTypeFunction %Inner %Inner_std140 @@ -108,8 +108,8 @@ %15 = OpLabel %44 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %46 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %52 - %79 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %81 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %83 + %69 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %71 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %73 %16 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %19 = OpAccessChain %_ptr_Uniform_Outer_std140_tint_explicit_layout %16 %uint_3 %22 = OpAccessChain %_ptr_Uniform__arr_Inner_std140_uint_4 %19 %uint_0 @@ -133,56 +133,56 @@ OpLoopMerge %57 %55 None OpBranch %54 %54 = OpLabel - %60 = OpUGreaterThanEqual %bool %58 %uint_4 - OpSelectionMerge %62 None - OpBranchConditional %60 %63 %62 - %63 = OpLabel + %86 = OpUGreaterThanEqual %bool %58 %uint_4 + OpSelectionMerge %88 None + OpBranchConditional %86 %89 %88 + %89 = OpLabel OpBranch %57 - %62 = OpLabel - %64 = OpAccessChain %_ptr_Function_Outer %46 %58 - %66 = OpAccessChain %_ptr_Function_Outer_std140 %44 %58 - %68 = OpLoad %Outer_std140 %66 None - %69 = OpFunctionCall %Outer %tint_convert_Outer %68 - OpStore %64 %69 None + %88 = OpLabel + %90 = OpAccessChain %_ptr_Function_Outer %46 %58 + %92 = OpAccessChain %_ptr_Function_Outer_std140 %44 %58 + %94 = OpLoad %Outer_std140 %92 None + %95 = OpFunctionCall %Outer %tint_convert_Outer %94 + OpStore %90 %95 None OpBranch %55 %55 = OpLabel %59 = OpIAdd %uint %58 %uint_1 OpBranch %56 %57 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %46 None - %72 = OpLoad %Outer_std140_tint_explicit_layout %19 None - %73 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %72 - %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %73 - %76 = OpLoad %_arr_Inner_std140_uint_4 %22 None - %77 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %76 - OpStore %79 %77 - OpBranch %84 - %84 = OpLabel - OpBranch %87 - %87 = OpLabel - %89 = OpPhi %uint %uint_0 %84 %90 %86 - OpLoopMerge %88 %86 None - OpBranch %85 - %85 = OpLabel - %91 = OpUGreaterThanEqual %bool %89 %uint_4 - OpSelectionMerge %92 None - OpBranchConditional %91 %93 %92 - %93 = OpLabel - OpBranch %88 - %92 = OpLabel - %94 = OpAccessChain %_ptr_Function_Inner %81 %89 - %96 = OpAccessChain %_ptr_Function_Inner_std140 %79 %89 - %98 = OpLoad %Inner_std140 %96 None - %99 = OpFunctionCall %Inner %tint_convert_Inner %98 - OpStore %94 %99 None - OpBranch %86 - %86 = OpLabel - %90 = OpIAdd %uint %89 %uint_1 - OpBranch %87 - %88 = OpLabel - %l_a_3_a = OpLoad %_arr_Inner_uint_4 %81 None - %102 = OpLoad %Inner_std140 %24 None - %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %102 + %61 = OpLoad %Outer_std140_tint_explicit_layout %19 None + %62 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %61 + %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %62 + %66 = OpLoad %_arr_Inner_std140_uint_4 %22 None + %67 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %66 + OpStore %69 %67 + OpBranch %74 + %74 = OpLabel + OpBranch %77 + %77 = OpLabel + %79 = OpPhi %uint %uint_0 %74 %80 %76 + OpLoopMerge %78 %76 None + OpBranch %75 + %75 = OpLabel + %96 = OpUGreaterThanEqual %bool %79 %uint_4 + OpSelectionMerge %97 None + OpBranchConditional %96 %98 %97 + %98 = OpLabel + OpBranch %78 + %97 = OpLabel + %99 = OpAccessChain %_ptr_Function_Inner %71 %79 + %101 = OpAccessChain %_ptr_Function_Inner_std140 %69 %79 + %103 = OpLoad %Inner_std140 %101 None + %104 = OpFunctionCall %Inner %tint_convert_Inner %103 + OpStore %99 %104 None + OpBranch %76 + %76 = OpLabel + %80 = OpIAdd %uint %79 %uint_1 + OpBranch %77 + %78 = OpLabel + %l_a_3_a = OpLoad %_arr_Inner_uint_4 %71 None + %82 = OpLoad %Inner_std140 %24 None + %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %82 %l_a_3_a_2_m_1_0 = OpCompositeExtract %half %l_a_3_a_2_m_1 0 OpReturn OpFunctionEnd @@ -200,7 +200,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %115 = OpLabel %117 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %118 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %83 + %118 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %73 %116 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %117 %116 OpBranch %119 @@ -211,25 +211,25 @@ OpLoopMerge %123 %121 None OpBranch %120 %120 = OpLabel - %126 = OpUGreaterThanEqual %bool %124 %uint_4 - OpSelectionMerge %127 None - OpBranchConditional %126 %128 %127 - %128 = OpLabel + %128 = OpUGreaterThanEqual %bool %124 %uint_4 + OpSelectionMerge %129 None + OpBranchConditional %128 %130 %129 + %130 = OpLabel OpBranch %123 - %127 = OpLabel - %129 = OpAccessChain %_ptr_Function_Inner %118 %124 - %130 = OpAccessChain %_ptr_Function_Inner_std140 %117 %124 - %131 = OpLoad %Inner_std140 %130 None - %132 = OpFunctionCall %Inner %tint_convert_Inner %131 - OpStore %129 %132 None + %129 = OpLabel + %131 = OpAccessChain %_ptr_Function_Inner %118 %124 + %132 = OpAccessChain %_ptr_Function_Inner_std140 %117 %124 + %133 = OpLoad %Inner_std140 %132 None + %134 = OpFunctionCall %Inner %tint_convert_Inner %133 + OpStore %131 %134 None OpBranch %121 %121 = OpLabel %125 = OpIAdd %uint %124 %uint_1 OpBranch %122 %123 = OpLabel - %133 = OpLoad %_arr_Inner_uint_4 %118 None - %134 = OpCompositeConstruct %Outer %133 - OpReturnValue %134 + %126 = OpLoad %_arr_Inner_uint_4 %118 None + %127 = OpCompositeConstruct %Outer %126 + OpReturnValue %127 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %136 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -245,23 +245,23 @@ OpLoopMerge %146 %144 None OpBranch %143 %143 = OpLabel - %149 = OpUGreaterThanEqual %bool %147 %uint_4 - OpSelectionMerge %150 None - OpBranchConditional %149 %151 %150 - %151 = OpLabel + %150 = OpUGreaterThanEqual %bool %147 %uint_4 + OpSelectionMerge %151 None + OpBranchConditional %150 %152 %151 + %152 = OpLabel OpBranch %146 - %150 = OpLabel - %152 = OpAccessChain %_ptr_Function_Inner_std140 %138 %147 - %153 = OpLoad %Inner_std140 %152 None - %154 = OpAccessChain %_ptr_Function_Inner_std140 %140 %147 - OpStore %154 %153 None + %151 = OpLabel + %153 = OpAccessChain %_ptr_Function_Inner_std140 %138 %147 + %154 = OpLoad %Inner_std140 %153 None + %155 = OpAccessChain %_ptr_Function_Inner_std140 %140 %147 + OpStore %155 %154 None OpBranch %144 %144 = OpLabel %148 = OpIAdd %uint %147 %uint_1 OpBranch %145 %146 = OpLabel - %155 = OpLoad %_arr_Inner_std140_uint_4_0 %140 None - OpReturnValue %155 + %149 = OpLoad %_arr_Inner_std140_uint_4_0 %140 None + OpReturnValue %149 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %157 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -285,22 +285,22 @@ OpLoopMerge %173 %171 None OpBranch %170 %170 = OpLabel - %176 = OpUGreaterThanEqual %bool %174 %uint_4 - OpSelectionMerge %177 None - OpBranchConditional %176 %178 %177 - %178 = OpLabel + %177 = OpUGreaterThanEqual %bool %174 %uint_4 + OpSelectionMerge %178 None + OpBranchConditional %177 %179 %178 + %179 = OpLabel OpBranch %173 - %177 = OpLabel - %179 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %165 %174 - %181 = OpLoad %Outer_std140_tint_explicit_layout %179 None - %182 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %181 - %183 = OpAccessChain %_ptr_Function_Outer_std140 %167 %174 - OpStore %183 %182 None + %178 = OpLabel + %180 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %165 %174 + %182 = OpLoad %Outer_std140_tint_explicit_layout %180 None + %183 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %182 + %184 = OpAccessChain %_ptr_Function_Outer_std140 %167 %174 + OpStore %184 %183 None OpBranch %171 %171 = OpLabel %175 = OpIAdd %uint %174 %uint_1 OpBranch %172 %173 = OpLabel - %184 = OpLoad %_arr_Outer_std140_uint_4 %167 None - OpReturnValue %184 + %176 = OpLoad %_arr_Outer_std140_uint_4 %167 None + OpReturnValue %176 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.spvasm index a2e2b45..d39a4e0 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.spvasm
@@ -74,14 +74,14 @@ %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %49 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Uniform_v4half = OpTypePointer Uniform %v4half + %uint_1 = OpConstant %uint 1 %uint_3 = OpConstant %uint 3 + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %97 = OpTypeFunction %S %S_std140 %107 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -127,45 +127,45 @@ OpLoopMerge %54 %52 None OpBranch %51 %51 = OpLabel - %57 = OpUGreaterThanEqual %bool %55 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel + %86 = OpUGreaterThanEqual %bool %55 %uint_4 + OpSelectionMerge %88 None + OpBranchConditional %86 %89 %88 + %89 = OpLabel OpBranch %54 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_S %47 %55 - %63 = OpAccessChain %_ptr_Function_S_std140 %45 %55 - %65 = OpLoad %S_std140 %63 None - %66 = OpFunctionCall %S %tint_convert_S %65 - OpStore %61 %66 None + %88 = OpLabel + %90 = OpAccessChain %_ptr_Function_S %47 %55 + %92 = OpAccessChain %_ptr_Function_S_std140 %45 %55 + %94 = OpLoad %S_std140 %92 None + %95 = OpFunctionCall %S %tint_convert_S %94 + OpStore %90 %95 None OpBranch %52 %52 = OpLabel %56 = OpIAdd %uint %55 %uint_1 OpBranch %53 %54 = OpLabel - %69 = OpLoad %_arr_S_uint_4 %47 None - %70 = OpFunctionCall %void %a %69 - %71 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %71 None - %75 = OpFunctionCall %S %tint_convert_S %74 - %76 = OpFunctionCall %void %b %75 - %77 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 - %79 = OpLoad %v4half %77 None - %80 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 - %81 = OpLoad %v4half %80 None - %82 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_3 - %84 = OpLoad %v4half %82 None - %85 = OpCompositeConstruct %mat3v4half %79 %81 %84 - %86 = OpFunctionCall %void %c %85 - %87 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 - %88 = OpLoad %v4half %87 None - %89 = OpVectorShuffle %v4half %88 %88 1 3 0 2 - %90 = OpFunctionCall %void %d %89 - %91 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 - %92 = OpLoad %v4half %91 None - %93 = OpVectorShuffle %v4half %92 %92 1 3 0 2 - %94 = OpCompositeExtract %half %93 0 - %95 = OpFunctionCall %void %e %94 + %57 = OpLoad %_arr_S_uint_4 %47 None + %58 = OpFunctionCall %void %a %57 + %59 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %62 = OpLoad %S_std140 %59 None + %63 = OpFunctionCall %S %tint_convert_S %62 + %65 = OpFunctionCall %void %b %63 + %66 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 + %69 = OpLoad %v4half %66 None + %70 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 + %71 = OpLoad %v4half %70 None + %72 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_3 + %74 = OpLoad %v4half %72 None + %75 = OpCompositeConstruct %mat3v4half %69 %71 %74 + %76 = OpFunctionCall %void %c %75 + %77 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 + %78 = OpLoad %v4half %77 None + %79 = OpVectorShuffle %v4half %78 %78 1 3 0 2 + %80 = OpFunctionCall %void %d %79 + %81 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 + %82 = OpLoad %v4half %81 None + %83 = OpVectorShuffle %v4half %82 %82 1 3 0 2 + %84 = OpCompositeExtract %half %83 0 + %85 = OpFunctionCall %void %e %84 OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %97 @@ -194,21 +194,21 @@ OpLoopMerge %117 %115 None OpBranch %114 %114 = OpLabel - %120 = OpUGreaterThanEqual %bool %118 %uint_4 - OpSelectionMerge %121 None - OpBranchConditional %120 %122 %121 - %122 = OpLabel + %121 = OpUGreaterThanEqual %bool %118 %uint_4 + OpSelectionMerge %122 None + OpBranchConditional %121 %123 %122 + %123 = OpLabel OpBranch %117 - %121 = OpLabel - %123 = OpAccessChain %_ptr_Function_S_std140 %109 %118 - %124 = OpLoad %S_std140 %123 None - %125 = OpAccessChain %_ptr_Function_S_std140 %111 %118 - OpStore %125 %124 None + %122 = OpLabel + %124 = OpAccessChain %_ptr_Function_S_std140 %109 %118 + %125 = OpLoad %S_std140 %124 None + %126 = OpAccessChain %_ptr_Function_S_std140 %111 %118 + OpStore %126 %125 None OpBranch %115 %115 = OpLabel %119 = OpIAdd %uint %118 %uint_1 OpBranch %116 %117 = OpLabel - %126 = OpLoad %_arr_S_std140_uint_4_0 %111 None - OpReturnValue %126 + %120 = OpLoad %_arr_S_std140_uint_4_0 %111 None + OpReturnValue %120 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.spvasm index 2445a77..64cf638 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.spvasm
@@ -62,17 +62,17 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Private_S = OpTypePointer Private %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Private_mat3v4half = OpTypePointer Private %mat3v4half %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v4half = OpTypePointer Uniform %v4half %_ptr_Private_v4half = OpTypePointer Private %v4half + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %76 = OpTypeFunction %S %S_std140 %86 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -93,43 +93,43 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_4 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %65 = OpUGreaterThanEqual %bool %37 %uint_4 + OpSelectionMerge %67 None + OpBranchConditional %65 %68 %67 + %68 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Function_S %30 %37 - %45 = OpAccessChain %_ptr_Function_S_std140 %28 %37 - %47 = OpLoad %S_std140 %45 None - %48 = OpFunctionCall %S %tint_convert_S %47 - OpStore %43 %48 None + %67 = OpLabel + %69 = OpAccessChain %_ptr_Function_S %30 %37 + %71 = OpAccessChain %_ptr_Function_S_std140 %28 %37 + %73 = OpLoad %S_std140 %71 None + %74 = OpFunctionCall %S %tint_convert_S %73 + OpStore %69 %74 None OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel - %51 = OpLoad %_arr_S_uint_4 %30 None - OpStore %p %51 None - %52 = OpAccessChain %_ptr_Private_S %p %uint_1 - %54 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %57 = OpLoad %S_std140 %54 None - %58 = OpFunctionCall %S %tint_convert_S %57 - OpStore %52 %58 None - %59 = OpAccessChain %_ptr_Private_mat3v4half %p %uint_3 %uint_1 - %62 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 - %64 = OpLoad %v4half %62 None - %65 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 - %66 = OpLoad %v4half %65 None - %67 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_3 - %68 = OpLoad %v4half %67 None - %69 = OpCompositeConstruct %mat3v4half %64 %66 %68 - OpStore %59 %69 None - %70 = OpAccessChain %_ptr_Private_v4half %p %uint_1 %uint_1 %uint_0 - %72 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 - %73 = OpLoad %v4half %72 None - %74 = OpVectorShuffle %v4half %73 %73 1 3 0 2 - OpStore %70 %74 None + %39 = OpLoad %_arr_S_uint_4 %30 None + OpStore %p %39 None + %40 = OpAccessChain %_ptr_Private_S %p %uint_1 + %43 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %46 = OpLoad %S_std140 %43 None + %47 = OpFunctionCall %S %tint_convert_S %46 + OpStore %40 %47 None + %49 = OpAccessChain %_ptr_Private_mat3v4half %p %uint_3 %uint_1 + %52 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 + %54 = OpLoad %v4half %52 None + %55 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 + %56 = OpLoad %v4half %55 None + %57 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_3 + %58 = OpLoad %v4half %57 None + %59 = OpCompositeConstruct %mat3v4half %54 %56 %58 + OpStore %49 %59 None + %60 = OpAccessChain %_ptr_Private_v4half %p %uint_1 %uint_1 %uint_0 + %62 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 + %63 = OpLoad %v4half %62 None + %64 = OpVectorShuffle %v4half %63 %63 1 3 0 2 + OpStore %60 %64 None OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %76 @@ -158,21 +158,21 @@ OpLoopMerge %96 %94 None OpBranch %93 %93 = OpLabel - %99 = OpUGreaterThanEqual %bool %97 %uint_4 - OpSelectionMerge %100 None - OpBranchConditional %99 %101 %100 - %101 = OpLabel + %100 = OpUGreaterThanEqual %bool %97 %uint_4 + OpSelectionMerge %101 None + OpBranchConditional %100 %102 %101 + %102 = OpLabel OpBranch %96 - %100 = OpLabel - %102 = OpAccessChain %_ptr_Function_S_std140 %88 %97 - %103 = OpLoad %S_std140 %102 None - %104 = OpAccessChain %_ptr_Function_S_std140 %90 %97 - OpStore %104 %103 None + %101 = OpLabel + %103 = OpAccessChain %_ptr_Function_S_std140 %88 %97 + %104 = OpLoad %S_std140 %103 None + %105 = OpAccessChain %_ptr_Function_S_std140 %90 %97 + OpStore %105 %104 None OpBranch %94 %94 = OpLabel %98 = OpIAdd %uint %97 %uint_1 OpBranch %95 %96 = OpLabel - %105 = OpLoad %_arr_S_std140_uint_4_0 %90 None - OpReturnValue %105 + %99 = OpLoad %_arr_S_std140_uint_4_0 %90 None + OpReturnValue %99 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_storage.wgsl.expected.spvasm index c1e9aaf..6dd3628 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_storage.wgsl.expected.spvasm
@@ -86,17 +86,17 @@ %_arr_S_uint_4 = OpTypeArray %S %uint_4 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %34 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 + %uint_1 = OpConstant %uint 1 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1 %_ptr_StorageBuffer_mat3v4half = OpTypePointer StorageBuffer %mat3v4half %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v4half = OpTypePointer Uniform %v4half %_ptr_StorageBuffer_v4half = OpTypePointer StorageBuffer %v4half + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %83 = OpTypeFunction %void %_arr_S_uint_4 %102 = OpTypeFunction %void %_arr_uint_uint_1 %S %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int @@ -120,43 +120,43 @@ OpLoopMerge %39 %37 None OpBranch %36 %36 = OpLabel - %42 = OpUGreaterThanEqual %bool %40 %uint_4 - OpSelectionMerge %44 None - OpBranchConditional %42 %45 %44 - %45 = OpLabel + %72 = OpUGreaterThanEqual %bool %40 %uint_4 + OpSelectionMerge %74 None + OpBranchConditional %72 %75 %74 + %75 = OpLabel OpBranch %39 - %44 = OpLabel - %46 = OpAccessChain %_ptr_Function_S %30 %40 - %48 = OpAccessChain %_ptr_Function_S_std140 %28 %40 - %50 = OpLoad %S_std140 %48 None - %51 = OpFunctionCall %S %tint_convert_S %50 - OpStore %46 %51 None + %74 = OpLabel + %76 = OpAccessChain %_ptr_Function_S %30 %40 + %78 = OpAccessChain %_ptr_Function_S_std140 %28 %40 + %80 = OpLoad %S_std140 %78 None + %81 = OpFunctionCall %S %tint_convert_S %80 + OpStore %76 %81 None OpBranch %37 %37 = OpLabel %41 = OpIAdd %uint %40 %uint_1 OpBranch %38 %39 = OpLabel - %54 = OpLoad %_arr_S_uint_4 %30 None - %55 = OpFunctionCall %void %tint_store_and_preserve_padding %54 - %57 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %60 = OpLoad %S_std140 %57 None - %61 = OpFunctionCall %S %tint_convert_S %60 - %63 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 - %64 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %63 %61 - %66 = OpAccessChain %_ptr_StorageBuffer_mat3v4half %11 %uint_0 %uint_3 %uint_1 - %69 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 - %71 = OpLoad %v4half %69 None - %72 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 - %73 = OpLoad %v4half %72 None - %74 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_3 - %75 = OpLoad %v4half %74 None - %76 = OpCompositeConstruct %mat3v4half %71 %73 %75 - OpStore %66 %76 None - %77 = OpAccessChain %_ptr_StorageBuffer_v4half %11 %uint_0 %uint_1 %uint_1 %uint_0 - %79 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 - %80 = OpLoad %v4half %79 None - %81 = OpVectorShuffle %v4half %80 %80 1 3 0 2 - OpStore %77 %81 None + %42 = OpLoad %_arr_S_uint_4 %30 None + %43 = OpFunctionCall %void %tint_store_and_preserve_padding %42 + %45 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %48 = OpLoad %S_std140 %45 None + %49 = OpFunctionCall %S %tint_convert_S %48 + %53 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 + %54 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %53 %49 + %56 = OpAccessChain %_ptr_StorageBuffer_mat3v4half %11 %uint_0 %uint_3 %uint_1 + %59 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 + %61 = OpLoad %v4half %59 None + %62 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 + %63 = OpLoad %v4half %62 None + %64 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_3 + %65 = OpLoad %v4half %64 None + %66 = OpCompositeConstruct %mat3v4half %61 %63 %65 + OpStore %56 %66 None + %67 = OpAccessChain %_ptr_StorageBuffer_v4half %11 %uint_0 %uint_1 %uint_1 %uint_0 + %69 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 + %70 = OpLoad %v4half %69 None + %71 = OpVectorShuffle %v4half %70 %70 1 3 0 2 + OpStore %67 %71 None OpReturn OpFunctionEnd %tint_store_and_preserve_padding = OpFunction %void None %83 @@ -231,21 +231,21 @@ OpLoopMerge %133 %131 None OpBranch %130 %130 = OpLabel - %136 = OpUGreaterThanEqual %bool %134 %uint_4 - OpSelectionMerge %137 None - OpBranchConditional %136 %138 %137 - %138 = OpLabel + %137 = OpUGreaterThanEqual %bool %134 %uint_4 + OpSelectionMerge %138 None + OpBranchConditional %137 %139 %138 + %139 = OpLabel OpBranch %133 - %137 = OpLabel - %139 = OpAccessChain %_ptr_Function_S_std140 %125 %134 - %140 = OpLoad %S_std140 %139 None - %141 = OpAccessChain %_ptr_Function_S_std140 %127 %134 - OpStore %141 %140 None + %138 = OpLabel + %140 = OpAccessChain %_ptr_Function_S_std140 %125 %134 + %141 = OpLoad %S_std140 %140 None + %142 = OpAccessChain %_ptr_Function_S_std140 %127 %134 + OpStore %142 %141 None OpBranch %131 %131 = OpLabel %135 = OpIAdd %uint %134 %uint_1 OpBranch %132 %133 = OpLabel - %142 = OpLoad %_arr_S_std140_uint_4_0 %127 None - OpReturnValue %142 + %136 = OpLoad %_arr_S_std140_uint_4_0 %127 None + OpReturnValue %136 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.spvasm index d36cd56..c56d616 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.spvasm
@@ -62,10 +62,6 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %21 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_S = OpTypePointer Workgroup %S - %36 = OpConstantNull %S - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_S_std140_uint_4 = OpTypePointer Uniform %_arr_S_std140_uint_4 @@ -73,14 +69,18 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %52 = OpConstantNull %_arr_S_uint_4 -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 + %44 = OpConstantNull %_arr_S_uint_4 +%_ptr_Workgroup_S = OpTypePointer Workgroup %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %_ptr_Workgroup_mat3v4half = OpTypePointer Workgroup %mat3v4half %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v4half = OpTypePointer Uniform %v4half %_ptr_Workgroup_v4half = OpTypePointer Workgroup %v4half + %bool = OpTypeBool + %82 = OpConstantNull %S +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %93 = OpTypeFunction %void %98 = OpTypeFunction %S %S_std140 %108 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 @@ -89,8 +89,8 @@ %f_inner = OpFunction %void None %21 %tint_local_index = OpFunctionParameter %uint %22 = OpLabel - %48 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function - %50 = OpVariable %_ptr_Function__arr_S_uint_4 Function %52 + %40 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function + %42 = OpVariable %_ptr_Function__arr_S_uint_4 Function %44 OpBranch %23 %23 = OpLabel OpBranch %26 @@ -99,69 +99,69 @@ OpLoopMerge %27 %25 None OpBranch %24 %24 = OpLabel - %30 = OpUGreaterThanEqual %bool %28 %uint_4 - OpSelectionMerge %32 None - OpBranchConditional %30 %33 %32 - %33 = OpLabel + %77 = OpUGreaterThanEqual %bool %28 %uint_4 + OpSelectionMerge %79 None + OpBranchConditional %77 %80 %79 + %80 = OpLabel OpBranch %27 - %32 = OpLabel - %34 = OpAccessChain %_ptr_Workgroup_S %w %28 - OpStore %34 %36 None + %79 = OpLabel + %81 = OpAccessChain %_ptr_Workgroup_S %w %28 + OpStore %81 %82 None OpBranch %25 %25 = OpLabel %29 = OpIAdd %uint %28 %uint_1 OpBranch %26 %27 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %41 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 - %44 = OpLoad %_arr_S_std140_uint_4 %41 None - %45 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %44 - OpStore %48 %45 - OpBranch %53 - %53 = OpLabel - OpBranch %56 - %56 = OpLabel - %58 = OpPhi %uint %uint_0 %53 %59 %55 - OpLoopMerge %57 %55 None - OpBranch %54 - %54 = OpLabel - %60 = OpUGreaterThanEqual %bool %58 %uint_4 - OpSelectionMerge %61 None - OpBranchConditional %60 %62 %61 - %62 = OpLabel - OpBranch %57 - %61 = OpLabel - %63 = OpAccessChain %_ptr_Function_S %50 %58 - %65 = OpAccessChain %_ptr_Function_S_std140 %48 %58 - %67 = OpLoad %S_std140 %65 None - %68 = OpFunctionCall %S %tint_convert_S %67 - OpStore %63 %68 None - OpBranch %55 - %55 = OpLabel - %59 = OpIAdd %uint %58 %uint_1 - OpBranch %56 - %57 = OpLabel - %70 = OpLoad %_arr_S_uint_4 %50 None - OpStore %w %70 None - %71 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 - %72 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %72 None - %75 = OpFunctionCall %S %tint_convert_S %74 - OpStore %71 %75 None - %76 = OpAccessChain %_ptr_Workgroup_mat3v4half %w %uint_3 %uint_1 - %79 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 - %81 = OpLoad %v4half %79 None - %82 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 - %83 = OpLoad %v4half %82 None - %84 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_3 - %85 = OpLoad %v4half %84 None - %86 = OpCompositeConstruct %mat3v4half %81 %83 %85 - OpStore %76 %86 None - %87 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_1 %uint_1 %uint_0 - %89 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 - %90 = OpLoad %v4half %89 None - %91 = OpVectorShuffle %v4half %90 %90 1 3 0 2 - OpStore %87 %91 None + %33 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 + %36 = OpLoad %_arr_S_std140_uint_4 %33 None + %37 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %36 + OpStore %40 %37 + OpBranch %45 + %45 = OpLabel + OpBranch %48 + %48 = OpLabel + %50 = OpPhi %uint %uint_0 %45 %51 %47 + OpLoopMerge %49 %47 None + OpBranch %46 + %46 = OpLabel + %83 = OpUGreaterThanEqual %bool %50 %uint_4 + OpSelectionMerge %84 None + OpBranchConditional %83 %85 %84 + %85 = OpLabel + OpBranch %49 + %84 = OpLabel + %86 = OpAccessChain %_ptr_Function_S %42 %50 + %88 = OpAccessChain %_ptr_Function_S_std140 %40 %50 + %90 = OpLoad %S_std140 %88 None + %91 = OpFunctionCall %S %tint_convert_S %90 + OpStore %86 %91 None + OpBranch %47 + %47 = OpLabel + %51 = OpIAdd %uint %50 %uint_1 + OpBranch %48 + %49 = OpLabel + %52 = OpLoad %_arr_S_uint_4 %42 None + OpStore %w %52 None + %53 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 + %56 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %58 = OpLoad %S_std140 %56 None + %59 = OpFunctionCall %S %tint_convert_S %58 + OpStore %53 %59 None + %61 = OpAccessChain %_ptr_Workgroup_mat3v4half %w %uint_3 %uint_1 + %64 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 + %66 = OpLoad %v4half %64 None + %67 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 + %68 = OpLoad %v4half %67 None + %69 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_3 + %70 = OpLoad %v4half %69 None + %71 = OpCompositeConstruct %mat3v4half %66 %68 %70 + OpStore %61 %71 None + %72 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_1 %uint_1 %uint_0 + %74 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 + %75 = OpLoad %v4half %74 None + %76 = OpVectorShuffle %v4half %75 %75 1 3 0 2 + OpStore %72 %76 None OpReturn OpFunctionEnd %f = OpFunction %void None %93 @@ -196,21 +196,21 @@ OpLoopMerge %118 %116 None OpBranch %115 %115 = OpLabel - %121 = OpUGreaterThanEqual %bool %119 %uint_4 - OpSelectionMerge %122 None - OpBranchConditional %121 %123 %122 - %123 = OpLabel + %122 = OpUGreaterThanEqual %bool %119 %uint_4 + OpSelectionMerge %123 None + OpBranchConditional %122 %124 %123 + %124 = OpLabel OpBranch %118 - %122 = OpLabel - %124 = OpAccessChain %_ptr_Function_S_std140 %110 %119 - %125 = OpLoad %S_std140 %124 None - %126 = OpAccessChain %_ptr_Function_S_std140 %112 %119 - OpStore %126 %125 None + %123 = OpLabel + %125 = OpAccessChain %_ptr_Function_S_std140 %110 %119 + %126 = OpLoad %S_std140 %125 None + %127 = OpAccessChain %_ptr_Function_S_std140 %112 %119 + OpStore %127 %126 None OpBranch %116 %116 = OpLabel %120 = OpIAdd %uint %119 %uint_1 OpBranch %117 %118 = OpLabel - %127 = OpLoad %_arr_S_std140_uint_4_0 %112 None - OpReturnValue %127 + %121 = OpLoad %_arr_S_std140_uint_4_0 %112 None + OpReturnValue %121 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.spvasm index da51a53..3c8b056 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -151,23 +151,23 @@ OpLoopMerge %86 %84 None OpBranch %83 %83 = OpLabel - %89 = OpUGreaterThanEqual %bool %87 %uint_4 - OpSelectionMerge %91 None - OpBranchConditional %89 %92 %91 - %92 = OpLabel + %90 = OpUGreaterThanEqual %bool %87 %uint_4 + OpSelectionMerge %92 None + OpBranchConditional %90 %93 %92 + %93 = OpLabel OpBranch %86 - %91 = OpLabel - %93 = OpAccessChain %_ptr_Function_Inner %77 %87 - %95 = OpLoad %Inner %93 None - %96 = OpAccessChain %_ptr_Function_Inner %79 %87 - OpStore %96 %95 None + %92 = OpLabel + %94 = OpAccessChain %_ptr_Function_Inner %77 %87 + %96 = OpLoad %Inner %94 None + %97 = OpAccessChain %_ptr_Function_Inner %79 %87 + OpStore %97 %96 None OpBranch %84 %84 = OpLabel %88 = OpIAdd %uint %87 %uint_1 OpBranch %85 %86 = OpLabel - %98 = OpLoad %_arr_Inner_uint_4_0 %79 None - OpReturnValue %98 + %89 = OpLoad %_arr_Inner_uint_4_0 %79 None + OpReturnValue %89 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer None %100 %tint_source_0 = OpFunctionParameter %Outer_tint_explicit_layout @@ -191,22 +191,22 @@ OpLoopMerge %117 %115 None OpBranch %114 %114 = OpLabel - %120 = OpUGreaterThanEqual %bool %118 %uint_4 - OpSelectionMerge %121 None - OpBranchConditional %120 %122 %121 - %122 = OpLabel + %121 = OpUGreaterThanEqual %bool %118 %uint_4 + OpSelectionMerge %122 None + OpBranchConditional %121 %123 %122 + %123 = OpLabel OpBranch %117 - %121 = OpLabel - %123 = OpAccessChain %_ptr_Function_Outer_tint_explicit_layout %108 %118 - %125 = OpLoad %Outer_tint_explicit_layout %123 None - %126 = OpFunctionCall %Outer %tint_convert_explicit_layout_0 %125 - %127 = OpAccessChain %_ptr_Function_Outer %110 %118 - OpStore %127 %126 None + %122 = OpLabel + %124 = OpAccessChain %_ptr_Function_Outer_tint_explicit_layout %108 %118 + %126 = OpLoad %Outer_tint_explicit_layout %124 None + %127 = OpFunctionCall %Outer %tint_convert_explicit_layout_0 %126 + %128 = OpAccessChain %_ptr_Function_Outer %110 %118 + OpStore %128 %127 None OpBranch %115 %115 = OpLabel %119 = OpIAdd %uint %118 %uint_1 OpBranch %116 %117 = OpLabel - %129 = OpLoad %_arr_Outer_uint_4 %110 None - OpReturnValue %129 + %120 = OpLoad %_arr_Outer_uint_4 %110 None + OpReturnValue %120 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.spvasm index 8f4fccc..abd998d 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.spvasm
@@ -122,23 +122,23 @@ OpLoopMerge %63 %61 None OpBranch %60 %60 = OpLabel - %66 = OpUGreaterThanEqual %bool %64 %uint_4 - OpSelectionMerge %68 None - OpBranchConditional %66 %69 %68 - %69 = OpLabel + %67 = OpUGreaterThanEqual %bool %64 %uint_4 + OpSelectionMerge %69 None + OpBranchConditional %67 %70 %69 + %70 = OpLabel OpBranch %63 - %68 = OpLabel - %70 = OpAccessChain %_ptr_Function_Inner %54 %64 - %72 = OpLoad %Inner %70 None - %73 = OpAccessChain %_ptr_Function_Inner %56 %64 - OpStore %73 %72 None + %69 = OpLabel + %71 = OpAccessChain %_ptr_Function_Inner %54 %64 + %73 = OpLoad %Inner %71 None + %74 = OpAccessChain %_ptr_Function_Inner %56 %64 + OpStore %74 %73 None OpBranch %61 %61 = OpLabel %65 = OpIAdd %uint %64 %uint_1 OpBranch %62 %63 = OpLabel - %74 = OpLoad %_arr_Inner_uint_4_0 %56 None - OpReturnValue %74 + %66 = OpLoad %_arr_Inner_uint_4_0 %56 None + OpReturnValue %66 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer None %76 %tint_source_0 = OpFunctionParameter %Outer_tint_explicit_layout @@ -162,22 +162,22 @@ OpLoopMerge %93 %91 None OpBranch %90 %90 = OpLabel - %96 = OpUGreaterThanEqual %bool %94 %uint_4 - OpSelectionMerge %97 None - OpBranchConditional %96 %98 %97 - %98 = OpLabel + %97 = OpUGreaterThanEqual %bool %94 %uint_4 + OpSelectionMerge %98 None + OpBranchConditional %97 %99 %98 + %99 = OpLabel OpBranch %93 - %97 = OpLabel - %99 = OpAccessChain %_ptr_Function_Outer_tint_explicit_layout %84 %94 - %101 = OpLoad %Outer_tint_explicit_layout %99 None - %102 = OpFunctionCall %Outer %tint_convert_explicit_layout_0 %101 - %103 = OpAccessChain %_ptr_Function_Outer %86 %94 - OpStore %103 %102 None + %98 = OpLabel + %100 = OpAccessChain %_ptr_Function_Outer_tint_explicit_layout %84 %94 + %102 = OpLoad %Outer_tint_explicit_layout %100 None + %103 = OpFunctionCall %Outer %tint_convert_explicit_layout_0 %102 + %104 = OpAccessChain %_ptr_Function_Outer %86 %94 + OpStore %104 %103 None OpBranch %91 %91 = OpLabel %95 = OpIAdd %uint %94 %uint_1 OpBranch %92 %93 = OpLabel - %105 = OpLoad %_arr_Outer_uint_4 %86 None - OpReturnValue %105 + %96 = OpLoad %_arr_Outer_uint_4 %86 None + OpReturnValue %96 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.spvasm index 7cd5e81..5ac83ab 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.spvasm
@@ -131,21 +131,21 @@ OpLoopMerge %76 %74 None OpBranch %73 %73 = OpLabel - %79 = OpUGreaterThanEqual %bool %77 %uint_4 - OpSelectionMerge %81 None - OpBranchConditional %79 %82 %81 - %82 = OpLabel + %80 = OpUGreaterThanEqual %bool %77 %uint_4 + OpSelectionMerge %82 None + OpBranchConditional %80 %83 %82 + %83 = OpLabel OpBranch %76 - %81 = OpLabel - %83 = OpAccessChain %_ptr_Function_S %67 %77 - %85 = OpLoad %S %83 None - %86 = OpAccessChain %_ptr_Function_S %69 %77 - OpStore %86 %85 None + %82 = OpLabel + %84 = OpAccessChain %_ptr_Function_S %67 %77 + %86 = OpLoad %S %84 None + %87 = OpAccessChain %_ptr_Function_S %69 %77 + OpStore %87 %86 None OpBranch %74 %74 = OpLabel %78 = OpIAdd %uint %77 %uint_1 OpBranch %75 %76 = OpLabel - %87 = OpLoad %_arr_S_uint_4_0 %69 None - OpReturnValue %87 + %79 = OpLoad %_arr_S_uint_4_0 %69 None + OpReturnValue %79 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.spvasm index f5c87de..a5bccb4 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.spvasm
@@ -115,22 +115,22 @@ OpLoopMerge %66 %64 None OpBranch %63 %63 = OpLabel - %69 = OpUGreaterThanEqual %bool %67 %uint_4 - OpSelectionMerge %71 None - OpBranchConditional %69 %72 %71 - %72 = OpLabel + %70 = OpUGreaterThanEqual %bool %67 %uint_4 + OpSelectionMerge %72 None + OpBranchConditional %70 %73 %72 + %73 = OpLabel OpBranch %66 - %71 = OpLabel - %73 = OpAccessChain %_ptr_Function_S_tint_explicit_layout %58 %67 - %75 = OpLoad %S_tint_explicit_layout %73 None - %76 = OpFunctionCall %S %tint_convert_explicit_layout %75 - %77 = OpAccessChain %_ptr_Function_S %60 %67 - OpStore %77 %76 None + %72 = OpLabel + %74 = OpAccessChain %_ptr_Function_S_tint_explicit_layout %58 %67 + %76 = OpLoad %S_tint_explicit_layout %74 None + %77 = OpFunctionCall %S %tint_convert_explicit_layout %76 + %78 = OpAccessChain %_ptr_Function_S %60 %67 + OpStore %78 %77 None OpBranch %64 %64 = OpLabel %68 = OpIAdd %uint %67 %uint_1 OpBranch %65 %66 = OpLabel - %79 = OpLoad %_arr_S_uint_4 %60 None - OpReturnValue %79 + %69 = OpLoad %_arr_S_uint_4 %60 None + OpReturnValue %69 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_storage.wgsl.expected.spvasm index 0899898..a658144 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_storage.wgsl.expected.spvasm
@@ -157,21 +157,21 @@ OpLoopMerge %93 %91 None OpBranch %90 %90 = OpLabel - %96 = OpUGreaterThanEqual %bool %94 %uint_4 - OpSelectionMerge %97 None - OpBranchConditional %96 %98 %97 - %98 = OpLabel + %97 = OpUGreaterThanEqual %bool %94 %uint_4 + OpSelectionMerge %98 None + OpBranchConditional %97 %99 %98 + %99 = OpLabel OpBranch %93 - %97 = OpLabel - %99 = OpAccessChain %_ptr_Function_S %85 %94 - %100 = OpLoad %S %99 None - %101 = OpAccessChain %_ptr_Function_S %87 %94 - OpStore %101 %100 None + %98 = OpLabel + %100 = OpAccessChain %_ptr_Function_S %85 %94 + %101 = OpLoad %S %100 None + %102 = OpAccessChain %_ptr_Function_S %87 %94 + OpStore %102 %101 None OpBranch %91 %91 = OpLabel %95 = OpIAdd %uint %94 %uint_1 OpBranch %92 %93 = OpLabel - %102 = OpLoad %_arr_S_uint_4_0 %87 None - OpReturnValue %102 + %96 = OpLoad %_arr_S_uint_4_0 %87 None + OpReturnValue %96 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.spvasm index d01aab6..e28aaa1 100644 --- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.spvasm
@@ -57,20 +57,20 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %21 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_S = OpTypePointer Workgroup %S - %36 = OpConstantNull %S - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_S_tint_explicit_layout_uint_4 = OpTypePointer Uniform %_arr_S_tint_explicit_layout_uint_4 %uint_0 = OpConstant %uint 0 +%_ptr_Workgroup_S = OpTypePointer Workgroup %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_tint_explicit_layout = OpTypePointer Uniform %S_tint_explicit_layout %_ptr_Workgroup_mat3v4float = OpTypePointer Workgroup %mat3v4float %uint_3 = OpConstant %uint 3 %_ptr_Uniform_mat3v4float = OpTypePointer Uniform %mat3v4float %_ptr_Workgroup_v4float = OpTypePointer Workgroup %v4float %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float + %bool = OpTypeBool + %64 = OpConstantNull %S %66 = OpTypeFunction %void %71 = OpTypeFunction %S %S_tint_explicit_layout %78 = OpTypeFunction %_arr_S_uint_4 %_arr_S_tint_explicit_layout_uint_4 @@ -90,38 +90,38 @@ OpLoopMerge %27 %25 None OpBranch %24 %24 = OpLabel - %30 = OpUGreaterThanEqual %bool %28 %uint_4 - OpSelectionMerge %32 None - OpBranchConditional %30 %33 %32 - %33 = OpLabel + %59 = OpUGreaterThanEqual %bool %28 %uint_4 + OpSelectionMerge %61 None + OpBranchConditional %59 %62 %61 + %62 = OpLabel OpBranch %27 - %32 = OpLabel - %34 = OpAccessChain %_ptr_Workgroup_S %w %28 - OpStore %34 %36 None + %61 = OpLabel + %63 = OpAccessChain %_ptr_Workgroup_S %w %28 + OpStore %63 %64 None OpBranch %25 %25 = OpLabel %29 = OpIAdd %uint %28 %uint_1 OpBranch %26 %27 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %41 = OpAccessChain %_ptr_Uniform__arr_S_tint_explicit_layout_uint_4 %1 %uint_0 - %44 = OpLoad %_arr_S_tint_explicit_layout_uint_4 %41 None - %45 = OpFunctionCall %_arr_S_uint_4 %tint_convert_explicit_layout_0 %44 - OpStore %w %45 None - %47 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 - %48 = OpAccessChain %_ptr_Uniform_S_tint_explicit_layout %1 %uint_0 %uint_2 - %50 = OpLoad %S_tint_explicit_layout %48 None - %51 = OpFunctionCall %S %tint_convert_explicit_layout %50 - OpStore %47 %51 None - %53 = OpAccessChain %_ptr_Workgroup_mat3v4float %w %uint_3 %uint_1 - %56 = OpAccessChain %_ptr_Uniform_mat3v4float %1 %uint_0 %uint_2 %uint_1 - %58 = OpLoad %mat3v4float %56 None + %33 = OpAccessChain %_ptr_Uniform__arr_S_tint_explicit_layout_uint_4 %1 %uint_0 + %36 = OpLoad %_arr_S_tint_explicit_layout_uint_4 %33 None + %37 = OpFunctionCall %_arr_S_uint_4 %tint_convert_explicit_layout_0 %36 + OpStore %w %37 None + %39 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 + %42 = OpAccessChain %_ptr_Uniform_S_tint_explicit_layout %1 %uint_0 %uint_2 + %44 = OpLoad %S_tint_explicit_layout %42 None + %45 = OpFunctionCall %S %tint_convert_explicit_layout %44 + OpStore %39 %45 None + %47 = OpAccessChain %_ptr_Workgroup_mat3v4float %w %uint_3 %uint_1 + %50 = OpAccessChain %_ptr_Uniform_mat3v4float %1 %uint_0 %uint_2 %uint_1 + %52 = OpLoad %mat3v4float %50 None + OpStore %47 %52 None + %53 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 %uint_1 %uint_0 + %55 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 %uint_1 %uint_1 + %57 = OpLoad %v4float %55 None + %58 = OpVectorShuffle %v4float %57 %57 1 3 0 2 OpStore %53 %58 None - %59 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 %uint_1 %uint_0 - %61 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 %uint_1 %uint_1 - %63 = OpLoad %v4float %61 None - %64 = OpVectorShuffle %v4float %63 %63 1 3 0 2 - OpStore %59 %64 None OpReturn OpFunctionEnd %f = OpFunction %void None %66 @@ -153,22 +153,22 @@ OpLoopMerge %89 %87 None OpBranch %86 %86 = OpLabel - %92 = OpUGreaterThanEqual %bool %90 %uint_4 - OpSelectionMerge %93 None - OpBranchConditional %92 %94 %93 - %94 = OpLabel + %93 = OpUGreaterThanEqual %bool %90 %uint_4 + OpSelectionMerge %94 None + OpBranchConditional %93 %95 %94 + %95 = OpLabel OpBranch %89 - %93 = OpLabel - %95 = OpAccessChain %_ptr_Function_S_tint_explicit_layout %80 %90 - %97 = OpLoad %S_tint_explicit_layout %95 None - %98 = OpFunctionCall %S %tint_convert_explicit_layout %97 - %99 = OpAccessChain %_ptr_Function_S %82 %90 - OpStore %99 %98 None + %94 = OpLabel + %96 = OpAccessChain %_ptr_Function_S_tint_explicit_layout %80 %90 + %98 = OpLoad %S_tint_explicit_layout %96 None + %99 = OpFunctionCall %S %tint_convert_explicit_layout %98 + %100 = OpAccessChain %_ptr_Function_S %82 %90 + OpStore %100 %99 None OpBranch %87 %87 = OpLabel %91 = OpIAdd %uint %90 %uint_1 OpBranch %88 %89 = OpLabel - %101 = OpLoad %_arr_S_uint_4 %82 None - OpReturnValue %101 + %92 = OpLoad %_arr_S_uint_4 %82 None + OpReturnValue %92 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.spvasm index 00b95db..ccc4c2d 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -99,12 +99,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %79 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %100 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %110 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %136 = OpTypeFunction %Inner %Inner_std140 @@ -130,8 +130,8 @@ %57 = OpVariable %_ptr_Function_mat4v2half Function %71 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %73 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %79 - %106 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %108 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %110 + %96 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %98 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %100 %27 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %30 = OpFunctionCall %int %i %31 = OpBitcast %uint %30 @@ -168,60 +168,60 @@ OpLoopMerge %84 %82 None OpBranch %81 %81 = OpLabel - %87 = OpUGreaterThanEqual %bool %85 %uint_4 - OpSelectionMerge %89 None - OpBranchConditional %87 %90 %89 - %90 = OpLabel + %116 = OpUGreaterThanEqual %bool %85 %uint_4 + OpSelectionMerge %118 None + OpBranchConditional %116 %119 %118 + %119 = OpLabel OpBranch %84 - %89 = OpLabel - %91 = OpAccessChain %_ptr_Function_Outer %73 %85 - %93 = OpAccessChain %_ptr_Function_Outer_std140 %71 %85 - %95 = OpLoad %Outer_std140 %93 None - %96 = OpFunctionCall %Outer %tint_convert_Outer %95 - OpStore %91 %96 None + %118 = OpLabel + %120 = OpAccessChain %_ptr_Function_Outer %73 %85 + %122 = OpAccessChain %_ptr_Function_Outer_std140 %71 %85 + %124 = OpLoad %Outer_std140 %122 None + %125 = OpFunctionCall %Outer %tint_convert_Outer %124 + OpStore %120 %125 None OpBranch %82 %82 = OpLabel %86 = OpIAdd %uint %85 %uint_1 OpBranch %83 %84 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %73 None - %99 = OpLoad %Outer_std140_tint_explicit_layout %35 None - %100 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %99 - %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %100 - %103 = OpLoad %_arr_Inner_std140_uint_4 %37 None - %104 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %103 - OpStore %106 %104 - OpBranch %111 - %111 = OpLabel - OpBranch %114 - %114 = OpLabel - %116 = OpPhi %uint %uint_0 %111 %117 %113 - OpLoopMerge %115 %113 None - OpBranch %112 - %112 = OpLabel - %118 = OpUGreaterThanEqual %bool %116 %uint_4 - OpSelectionMerge %119 None - OpBranchConditional %118 %120 %119 - %120 = OpLabel - OpBranch %115 - %119 = OpLabel - %121 = OpAccessChain %_ptr_Function_Inner %108 %116 - %123 = OpAccessChain %_ptr_Function_Inner_std140 %106 %116 - %125 = OpLoad %Inner_std140 %123 None - %126 = OpFunctionCall %Inner %tint_convert_Inner %125 - OpStore %121 %126 None - OpBranch %113 - %113 = OpLabel - %117 = OpIAdd %uint %116 %uint_1 - OpBranch %114 - %115 = OpLabel - %l_a_i_a = OpLoad %_arr_Inner_uint_4 %108 None - %129 = OpLoad %Inner_std140 %42 None - %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %129 - %131 = OpFunctionCall %int %i - %132 = OpBitcast %uint %131 - %133 = OpExtInst %uint %33 UMin %132 %uint_1 -%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %half %l_a_i_a_i_m_i %133 + %88 = OpLoad %Outer_std140_tint_explicit_layout %35 None + %89 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %88 + %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %89 + %93 = OpLoad %_arr_Inner_std140_uint_4 %37 None + %94 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %93 + OpStore %96 %94 + OpBranch %101 + %101 = OpLabel + OpBranch %104 + %104 = OpLabel + %106 = OpPhi %uint %uint_0 %101 %107 %103 + OpLoopMerge %105 %103 None + OpBranch %102 + %102 = OpLabel + %126 = OpUGreaterThanEqual %bool %106 %uint_4 + OpSelectionMerge %127 None + OpBranchConditional %126 %128 %127 + %128 = OpLabel + OpBranch %105 + %127 = OpLabel + %129 = OpAccessChain %_ptr_Function_Inner %98 %106 + %131 = OpAccessChain %_ptr_Function_Inner_std140 %96 %106 + %133 = OpLoad %Inner_std140 %131 None + %134 = OpFunctionCall %Inner %tint_convert_Inner %133 + OpStore %129 %134 None + OpBranch %103 + %103 = OpLabel + %107 = OpIAdd %uint %106 %uint_1 + OpBranch %104 + %105 = OpLabel + %l_a_i_a = OpLoad %_arr_Inner_uint_4 %98 None + %109 = OpLoad %Inner_std140 %42 None + %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %109 + %112 = OpFunctionCall %int %i + %113 = OpBitcast %uint %112 + %114 = OpExtInst %uint %33 UMin %113 %uint_1 +%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %half %l_a_i_a_i_m_i %114 OpReturn OpFunctionEnd %tint_convert_Inner = OpFunction %Inner None %136 @@ -239,7 +239,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %146 = OpLabel %148 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %149 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %110 + %149 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %100 %147 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %148 %147 OpBranch %150 @@ -250,25 +250,25 @@ OpLoopMerge %154 %152 None OpBranch %151 %151 = OpLabel - %157 = OpUGreaterThanEqual %bool %155 %uint_4 - OpSelectionMerge %158 None - OpBranchConditional %157 %159 %158 - %159 = OpLabel + %159 = OpUGreaterThanEqual %bool %155 %uint_4 + OpSelectionMerge %160 None + OpBranchConditional %159 %161 %160 + %161 = OpLabel OpBranch %154 - %158 = OpLabel - %160 = OpAccessChain %_ptr_Function_Inner %149 %155 - %161 = OpAccessChain %_ptr_Function_Inner_std140 %148 %155 - %162 = OpLoad %Inner_std140 %161 None - %163 = OpFunctionCall %Inner %tint_convert_Inner %162 - OpStore %160 %163 None + %160 = OpLabel + %162 = OpAccessChain %_ptr_Function_Inner %149 %155 + %163 = OpAccessChain %_ptr_Function_Inner_std140 %148 %155 + %164 = OpLoad %Inner_std140 %163 None + %165 = OpFunctionCall %Inner %tint_convert_Inner %164 + OpStore %162 %165 None OpBranch %152 %152 = OpLabel %156 = OpIAdd %uint %155 %uint_1 OpBranch %153 %154 = OpLabel - %164 = OpLoad %_arr_Inner_uint_4 %149 None - %165 = OpCompositeConstruct %Outer %164 - OpReturnValue %165 + %157 = OpLoad %_arr_Inner_uint_4 %149 None + %158 = OpCompositeConstruct %Outer %157 + OpReturnValue %158 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %167 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -284,23 +284,23 @@ OpLoopMerge %177 %175 None OpBranch %174 %174 = OpLabel - %180 = OpUGreaterThanEqual %bool %178 %uint_4 - OpSelectionMerge %181 None - OpBranchConditional %180 %182 %181 - %182 = OpLabel + %181 = OpUGreaterThanEqual %bool %178 %uint_4 + OpSelectionMerge %182 None + OpBranchConditional %181 %183 %182 + %183 = OpLabel OpBranch %177 - %181 = OpLabel - %183 = OpAccessChain %_ptr_Function_Inner_std140 %169 %178 - %184 = OpLoad %Inner_std140 %183 None - %185 = OpAccessChain %_ptr_Function_Inner_std140 %171 %178 - OpStore %185 %184 None + %182 = OpLabel + %184 = OpAccessChain %_ptr_Function_Inner_std140 %169 %178 + %185 = OpLoad %Inner_std140 %184 None + %186 = OpAccessChain %_ptr_Function_Inner_std140 %171 %178 + OpStore %186 %185 None OpBranch %175 %175 = OpLabel %179 = OpIAdd %uint %178 %uint_1 OpBranch %176 %177 = OpLabel - %186 = OpLoad %_arr_Inner_std140_uint_4_0 %171 None - OpReturnValue %186 + %180 = OpLoad %_arr_Inner_std140_uint_4_0 %171 None + OpReturnValue %180 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %188 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -324,22 +324,22 @@ OpLoopMerge %204 %202 None OpBranch %201 %201 = OpLabel - %207 = OpUGreaterThanEqual %bool %205 %uint_4 - OpSelectionMerge %208 None - OpBranchConditional %207 %209 %208 - %209 = OpLabel + %208 = OpUGreaterThanEqual %bool %205 %uint_4 + OpSelectionMerge %209 None + OpBranchConditional %208 %210 %209 + %210 = OpLabel OpBranch %204 - %208 = OpLabel - %210 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %196 %205 - %212 = OpLoad %Outer_std140_tint_explicit_layout %210 None - %213 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %212 - %214 = OpAccessChain %_ptr_Function_Outer_std140 %198 %205 - OpStore %214 %213 None + %209 = OpLabel + %211 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %196 %205 + %213 = OpLoad %Outer_std140_tint_explicit_layout %211 None + %214 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %213 + %215 = OpAccessChain %_ptr_Function_Outer_std140 %198 %205 + OpStore %215 %214 None OpBranch %202 %202 = OpLabel %206 = OpIAdd %uint %205 %uint_1 OpBranch %203 %204 = OpLabel - %215 = OpLoad %_arr_Outer_std140_uint_4 %198 None - OpReturnValue %215 + %207 = OpLoad %_arr_Outer_std140_uint_4 %198 None + OpReturnValue %207 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.spvasm index a008118..ee5e82c 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.spvasm
@@ -88,12 +88,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %54 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %75 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %85 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %108 = OpTypeFunction %Inner %Inner_std140 @@ -110,8 +110,8 @@ %15 = OpLabel %46 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %48 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %54 - %81 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %83 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %85 + %71 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %73 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %75 %16 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %19 = OpAccessChain %_ptr_Uniform_Outer_std140_tint_explicit_layout %16 %uint_3 %22 = OpAccessChain %_ptr_Uniform__arr_Inner_std140_uint_4 %19 %uint_0 @@ -137,56 +137,56 @@ OpLoopMerge %59 %57 None OpBranch %56 %56 = OpLabel - %62 = OpUGreaterThanEqual %bool %60 %uint_4 - OpSelectionMerge %64 None - OpBranchConditional %62 %65 %64 - %65 = OpLabel + %88 = OpUGreaterThanEqual %bool %60 %uint_4 + OpSelectionMerge %90 None + OpBranchConditional %88 %91 %90 + %91 = OpLabel OpBranch %59 - %64 = OpLabel - %66 = OpAccessChain %_ptr_Function_Outer %48 %60 - %68 = OpAccessChain %_ptr_Function_Outer_std140 %46 %60 - %70 = OpLoad %Outer_std140 %68 None - %71 = OpFunctionCall %Outer %tint_convert_Outer %70 - OpStore %66 %71 None + %90 = OpLabel + %92 = OpAccessChain %_ptr_Function_Outer %48 %60 + %94 = OpAccessChain %_ptr_Function_Outer_std140 %46 %60 + %96 = OpLoad %Outer_std140 %94 None + %97 = OpFunctionCall %Outer %tint_convert_Outer %96 + OpStore %92 %97 None OpBranch %57 %57 = OpLabel %61 = OpIAdd %uint %60 %uint_1 OpBranch %58 %59 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %48 None - %74 = OpLoad %Outer_std140_tint_explicit_layout %19 None - %75 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %74 - %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %75 - %78 = OpLoad %_arr_Inner_std140_uint_4 %22 None - %79 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %78 - OpStore %81 %79 - OpBranch %86 - %86 = OpLabel - OpBranch %89 - %89 = OpLabel - %91 = OpPhi %uint %uint_0 %86 %92 %88 - OpLoopMerge %90 %88 None - OpBranch %87 - %87 = OpLabel - %93 = OpUGreaterThanEqual %bool %91 %uint_4 - OpSelectionMerge %94 None - OpBranchConditional %93 %95 %94 - %95 = OpLabel - OpBranch %90 - %94 = OpLabel - %96 = OpAccessChain %_ptr_Function_Inner %83 %91 - %98 = OpAccessChain %_ptr_Function_Inner_std140 %81 %91 - %100 = OpLoad %Inner_std140 %98 None - %101 = OpFunctionCall %Inner %tint_convert_Inner %100 - OpStore %96 %101 None - OpBranch %88 - %88 = OpLabel - %92 = OpIAdd %uint %91 %uint_1 - OpBranch %89 - %90 = OpLabel - %l_a_3_a = OpLoad %_arr_Inner_uint_4 %83 None - %104 = OpLoad %Inner_std140 %24 None - %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %104 + %63 = OpLoad %Outer_std140_tint_explicit_layout %19 None + %64 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %63 + %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %64 + %68 = OpLoad %_arr_Inner_std140_uint_4 %22 None + %69 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %68 + OpStore %71 %69 + OpBranch %76 + %76 = OpLabel + OpBranch %79 + %79 = OpLabel + %81 = OpPhi %uint %uint_0 %76 %82 %78 + OpLoopMerge %80 %78 None + OpBranch %77 + %77 = OpLabel + %98 = OpUGreaterThanEqual %bool %81 %uint_4 + OpSelectionMerge %99 None + OpBranchConditional %98 %100 %99 + %100 = OpLabel + OpBranch %80 + %99 = OpLabel + %101 = OpAccessChain %_ptr_Function_Inner %73 %81 + %103 = OpAccessChain %_ptr_Function_Inner_std140 %71 %81 + %105 = OpLoad %Inner_std140 %103 None + %106 = OpFunctionCall %Inner %tint_convert_Inner %105 + OpStore %101 %106 None + OpBranch %78 + %78 = OpLabel + %82 = OpIAdd %uint %81 %uint_1 + OpBranch %79 + %80 = OpLabel + %l_a_3_a = OpLoad %_arr_Inner_uint_4 %73 None + %84 = OpLoad %Inner_std140 %24 None + %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %84 %l_a_3_a_2_m_1_0 = OpCompositeExtract %half %l_a_3_a_2_m_1 0 OpReturn OpFunctionEnd @@ -205,7 +205,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %118 = OpLabel %120 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %121 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %85 + %121 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %75 %119 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %120 %119 OpBranch %122 @@ -216,25 +216,25 @@ OpLoopMerge %126 %124 None OpBranch %123 %123 = OpLabel - %129 = OpUGreaterThanEqual %bool %127 %uint_4 - OpSelectionMerge %130 None - OpBranchConditional %129 %131 %130 - %131 = OpLabel + %131 = OpUGreaterThanEqual %bool %127 %uint_4 + OpSelectionMerge %132 None + OpBranchConditional %131 %133 %132 + %133 = OpLabel OpBranch %126 - %130 = OpLabel - %132 = OpAccessChain %_ptr_Function_Inner %121 %127 - %133 = OpAccessChain %_ptr_Function_Inner_std140 %120 %127 - %134 = OpLoad %Inner_std140 %133 None - %135 = OpFunctionCall %Inner %tint_convert_Inner %134 - OpStore %132 %135 None + %132 = OpLabel + %134 = OpAccessChain %_ptr_Function_Inner %121 %127 + %135 = OpAccessChain %_ptr_Function_Inner_std140 %120 %127 + %136 = OpLoad %Inner_std140 %135 None + %137 = OpFunctionCall %Inner %tint_convert_Inner %136 + OpStore %134 %137 None OpBranch %124 %124 = OpLabel %128 = OpIAdd %uint %127 %uint_1 OpBranch %125 %126 = OpLabel - %136 = OpLoad %_arr_Inner_uint_4 %121 None - %137 = OpCompositeConstruct %Outer %136 - OpReturnValue %137 + %129 = OpLoad %_arr_Inner_uint_4 %121 None + %130 = OpCompositeConstruct %Outer %129 + OpReturnValue %130 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %139 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -250,23 +250,23 @@ OpLoopMerge %149 %147 None OpBranch %146 %146 = OpLabel - %152 = OpUGreaterThanEqual %bool %150 %uint_4 - OpSelectionMerge %153 None - OpBranchConditional %152 %154 %153 - %154 = OpLabel + %153 = OpUGreaterThanEqual %bool %150 %uint_4 + OpSelectionMerge %154 None + OpBranchConditional %153 %155 %154 + %155 = OpLabel OpBranch %149 - %153 = OpLabel - %155 = OpAccessChain %_ptr_Function_Inner_std140 %141 %150 - %156 = OpLoad %Inner_std140 %155 None - %157 = OpAccessChain %_ptr_Function_Inner_std140 %143 %150 - OpStore %157 %156 None + %154 = OpLabel + %156 = OpAccessChain %_ptr_Function_Inner_std140 %141 %150 + %157 = OpLoad %Inner_std140 %156 None + %158 = OpAccessChain %_ptr_Function_Inner_std140 %143 %150 + OpStore %158 %157 None OpBranch %147 %147 = OpLabel %151 = OpIAdd %uint %150 %uint_1 OpBranch %148 %149 = OpLabel - %158 = OpLoad %_arr_Inner_std140_uint_4_0 %143 None - OpReturnValue %158 + %152 = OpLoad %_arr_Inner_std140_uint_4_0 %143 None + OpReturnValue %152 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %160 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -290,22 +290,22 @@ OpLoopMerge %176 %174 None OpBranch %173 %173 = OpLabel - %179 = OpUGreaterThanEqual %bool %177 %uint_4 - OpSelectionMerge %180 None - OpBranchConditional %179 %181 %180 - %181 = OpLabel + %180 = OpUGreaterThanEqual %bool %177 %uint_4 + OpSelectionMerge %181 None + OpBranchConditional %180 %182 %181 + %182 = OpLabel OpBranch %176 - %180 = OpLabel - %182 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %168 %177 - %184 = OpLoad %Outer_std140_tint_explicit_layout %182 None - %185 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %184 - %186 = OpAccessChain %_ptr_Function_Outer_std140 %170 %177 - OpStore %186 %185 None + %181 = OpLabel + %183 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %168 %177 + %185 = OpLoad %Outer_std140_tint_explicit_layout %183 None + %186 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %185 + %187 = OpAccessChain %_ptr_Function_Outer_std140 %170 %177 + OpStore %187 %186 None OpBranch %174 %174 = OpLabel %178 = OpIAdd %uint %177 %uint_1 OpBranch %175 %176 = OpLabel - %187 = OpLoad %_arr_Outer_std140_uint_4 %170 None - OpReturnValue %187 + %179 = OpLoad %_arr_Outer_std140_uint_4 %170 None + OpReturnValue %179 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.spvasm index b81ff28..e25a6b4 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.spvasm
@@ -76,14 +76,14 @@ %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %49 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Uniform_v2half = OpTypePointer Uniform %v2half + %uint_1 = OpConstant %uint 1 %uint_3 = OpConstant %uint 3 + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %99 = OpTypeFunction %S %S_std140 %110 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -129,47 +129,47 @@ OpLoopMerge %54 %52 None OpBranch %51 %51 = OpLabel - %57 = OpUGreaterThanEqual %bool %55 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel + %88 = OpUGreaterThanEqual %bool %55 %uint_4 + OpSelectionMerge %90 None + OpBranchConditional %88 %91 %90 + %91 = OpLabel OpBranch %54 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_S %47 %55 - %63 = OpAccessChain %_ptr_Function_S_std140 %45 %55 - %65 = OpLoad %S_std140 %63 None - %66 = OpFunctionCall %S %tint_convert_S %65 - OpStore %61 %66 None + %90 = OpLabel + %92 = OpAccessChain %_ptr_Function_S %47 %55 + %94 = OpAccessChain %_ptr_Function_S_std140 %45 %55 + %96 = OpLoad %S_std140 %94 None + %97 = OpFunctionCall %S %tint_convert_S %96 + OpStore %92 %97 None OpBranch %52 %52 = OpLabel %56 = OpIAdd %uint %55 %uint_1 OpBranch %53 %54 = OpLabel - %69 = OpLoad %_arr_S_uint_4 %47 None - %70 = OpFunctionCall %void %a %69 - %71 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %71 None - %75 = OpFunctionCall %S %tint_convert_S %74 - %76 = OpFunctionCall %void %b %75 - %77 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 - %79 = OpLoad %v2half %77 None - %80 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 - %81 = OpLoad %v2half %80 None - %82 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_3 - %84 = OpLoad %v2half %82 None - %85 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_4 - %86 = OpLoad %v2half %85 None - %87 = OpCompositeConstruct %mat4v2half %79 %81 %84 %86 - %88 = OpFunctionCall %void %c %87 - %89 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 - %90 = OpLoad %v2half %89 None - %91 = OpVectorShuffle %v2half %90 %90 1 0 - %92 = OpFunctionCall %void %d %91 - %93 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 - %94 = OpLoad %v2half %93 None - %95 = OpVectorShuffle %v2half %94 %94 1 0 - %96 = OpCompositeExtract %half %95 0 - %97 = OpFunctionCall %void %e %96 + %57 = OpLoad %_arr_S_uint_4 %47 None + %58 = OpFunctionCall %void %a %57 + %59 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %62 = OpLoad %S_std140 %59 None + %63 = OpFunctionCall %S %tint_convert_S %62 + %65 = OpFunctionCall %void %b %63 + %66 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 + %69 = OpLoad %v2half %66 None + %70 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 + %71 = OpLoad %v2half %70 None + %72 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_3 + %74 = OpLoad %v2half %72 None + %75 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_4 + %76 = OpLoad %v2half %75 None + %77 = OpCompositeConstruct %mat4v2half %69 %71 %74 %76 + %78 = OpFunctionCall %void %c %77 + %79 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 + %80 = OpLoad %v2half %79 None + %81 = OpVectorShuffle %v2half %80 %80 1 0 + %82 = OpFunctionCall %void %d %81 + %83 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 + %84 = OpLoad %v2half %83 None + %85 = OpVectorShuffle %v2half %84 %84 1 0 + %86 = OpCompositeExtract %half %85 0 + %87 = OpFunctionCall %void %e %86 OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %99 @@ -199,21 +199,21 @@ OpLoopMerge %120 %118 None OpBranch %117 %117 = OpLabel - %123 = OpUGreaterThanEqual %bool %121 %uint_4 - OpSelectionMerge %124 None - OpBranchConditional %123 %125 %124 - %125 = OpLabel + %124 = OpUGreaterThanEqual %bool %121 %uint_4 + OpSelectionMerge %125 None + OpBranchConditional %124 %126 %125 + %126 = OpLabel OpBranch %120 - %124 = OpLabel - %126 = OpAccessChain %_ptr_Function_S_std140 %112 %121 - %127 = OpLoad %S_std140 %126 None - %128 = OpAccessChain %_ptr_Function_S_std140 %114 %121 - OpStore %128 %127 None + %125 = OpLabel + %127 = OpAccessChain %_ptr_Function_S_std140 %112 %121 + %128 = OpLoad %S_std140 %127 None + %129 = OpAccessChain %_ptr_Function_S_std140 %114 %121 + OpStore %129 %128 None OpBranch %118 %118 = OpLabel %122 = OpIAdd %uint %121 %uint_1 OpBranch %119 %120 = OpLabel - %129 = OpLoad %_arr_S_std140_uint_4_0 %114 None - OpReturnValue %129 + %123 = OpLoad %_arr_S_std140_uint_4_0 %114 None + OpReturnValue %123 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.spvasm index 98ef180..9b39444 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.spvasm
@@ -64,17 +64,17 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Private_S = OpTypePointer Private %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Private_mat4v2half = OpTypePointer Private %mat4v2half %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v2half = OpTypePointer Uniform %v2half %_ptr_Private_v2half = OpTypePointer Private %v2half + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %78 = OpTypeFunction %S %S_std140 %89 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -95,45 +95,45 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_4 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %67 = OpUGreaterThanEqual %bool %37 %uint_4 + OpSelectionMerge %69 None + OpBranchConditional %67 %70 %69 + %70 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Function_S %30 %37 - %45 = OpAccessChain %_ptr_Function_S_std140 %28 %37 - %47 = OpLoad %S_std140 %45 None - %48 = OpFunctionCall %S %tint_convert_S %47 - OpStore %43 %48 None + %69 = OpLabel + %71 = OpAccessChain %_ptr_Function_S %30 %37 + %73 = OpAccessChain %_ptr_Function_S_std140 %28 %37 + %75 = OpLoad %S_std140 %73 None + %76 = OpFunctionCall %S %tint_convert_S %75 + OpStore %71 %76 None OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel - %51 = OpLoad %_arr_S_uint_4 %30 None - OpStore %p %51 None - %52 = OpAccessChain %_ptr_Private_S %p %uint_1 - %54 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %57 = OpLoad %S_std140 %54 None - %58 = OpFunctionCall %S %tint_convert_S %57 - OpStore %52 %58 None - %59 = OpAccessChain %_ptr_Private_mat4v2half %p %uint_3 %uint_1 - %62 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 - %64 = OpLoad %v2half %62 None - %65 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 - %66 = OpLoad %v2half %65 None - %67 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_3 - %68 = OpLoad %v2half %67 None - %69 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_4 - %70 = OpLoad %v2half %69 None - %71 = OpCompositeConstruct %mat4v2half %64 %66 %68 %70 - OpStore %59 %71 None - %72 = OpAccessChain %_ptr_Private_v2half %p %uint_1 %uint_1 %uint_0 - %74 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 - %75 = OpLoad %v2half %74 None - %76 = OpVectorShuffle %v2half %75 %75 1 0 - OpStore %72 %76 None + %39 = OpLoad %_arr_S_uint_4 %30 None + OpStore %p %39 None + %40 = OpAccessChain %_ptr_Private_S %p %uint_1 + %43 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %46 = OpLoad %S_std140 %43 None + %47 = OpFunctionCall %S %tint_convert_S %46 + OpStore %40 %47 None + %49 = OpAccessChain %_ptr_Private_mat4v2half %p %uint_3 %uint_1 + %52 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 + %54 = OpLoad %v2half %52 None + %55 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 + %56 = OpLoad %v2half %55 None + %57 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_3 + %58 = OpLoad %v2half %57 None + %59 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_4 + %60 = OpLoad %v2half %59 None + %61 = OpCompositeConstruct %mat4v2half %54 %56 %58 %60 + OpStore %49 %61 None + %62 = OpAccessChain %_ptr_Private_v2half %p %uint_1 %uint_1 %uint_0 + %64 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 + %65 = OpLoad %v2half %64 None + %66 = OpVectorShuffle %v2half %65 %65 1 0 + OpStore %62 %66 None OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %78 @@ -163,21 +163,21 @@ OpLoopMerge %99 %97 None OpBranch %96 %96 = OpLabel - %102 = OpUGreaterThanEqual %bool %100 %uint_4 - OpSelectionMerge %103 None - OpBranchConditional %102 %104 %103 - %104 = OpLabel + %103 = OpUGreaterThanEqual %bool %100 %uint_4 + OpSelectionMerge %104 None + OpBranchConditional %103 %105 %104 + %105 = OpLabel OpBranch %99 - %103 = OpLabel - %105 = OpAccessChain %_ptr_Function_S_std140 %91 %100 - %106 = OpLoad %S_std140 %105 None - %107 = OpAccessChain %_ptr_Function_S_std140 %93 %100 - OpStore %107 %106 None + %104 = OpLabel + %106 = OpAccessChain %_ptr_Function_S_std140 %91 %100 + %107 = OpLoad %S_std140 %106 None + %108 = OpAccessChain %_ptr_Function_S_std140 %93 %100 + OpStore %108 %107 None OpBranch %97 %97 = OpLabel %101 = OpIAdd %uint %100 %uint_1 OpBranch %98 %99 = OpLabel - %108 = OpLoad %_arr_S_std140_uint_4_0 %93 None - OpReturnValue %108 + %102 = OpLoad %_arr_S_std140_uint_4_0 %93 None + OpReturnValue %102 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_storage.wgsl.expected.spvasm index c9b56d4..57ce09e 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_storage.wgsl.expected.spvasm
@@ -88,17 +88,17 @@ %_arr_S_uint_4 = OpTypeArray %S %uint_4 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %34 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 + %uint_1 = OpConstant %uint 1 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1 %_ptr_StorageBuffer_mat4v2half = OpTypePointer StorageBuffer %mat4v2half %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v2half = OpTypePointer Uniform %v2half %_ptr_StorageBuffer_v2half = OpTypePointer StorageBuffer %v2half + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %85 = OpTypeFunction %void %_arr_S_uint_4 %104 = OpTypeFunction %void %_arr_uint_uint_1 %S %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int @@ -122,45 +122,45 @@ OpLoopMerge %39 %37 None OpBranch %36 %36 = OpLabel - %42 = OpUGreaterThanEqual %bool %40 %uint_4 - OpSelectionMerge %44 None - OpBranchConditional %42 %45 %44 - %45 = OpLabel + %74 = OpUGreaterThanEqual %bool %40 %uint_4 + OpSelectionMerge %76 None + OpBranchConditional %74 %77 %76 + %77 = OpLabel OpBranch %39 - %44 = OpLabel - %46 = OpAccessChain %_ptr_Function_S %30 %40 - %48 = OpAccessChain %_ptr_Function_S_std140 %28 %40 - %50 = OpLoad %S_std140 %48 None - %51 = OpFunctionCall %S %tint_convert_S %50 - OpStore %46 %51 None + %76 = OpLabel + %78 = OpAccessChain %_ptr_Function_S %30 %40 + %80 = OpAccessChain %_ptr_Function_S_std140 %28 %40 + %82 = OpLoad %S_std140 %80 None + %83 = OpFunctionCall %S %tint_convert_S %82 + OpStore %78 %83 None OpBranch %37 %37 = OpLabel %41 = OpIAdd %uint %40 %uint_1 OpBranch %38 %39 = OpLabel - %54 = OpLoad %_arr_S_uint_4 %30 None - %55 = OpFunctionCall %void %tint_store_and_preserve_padding %54 - %57 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %60 = OpLoad %S_std140 %57 None - %61 = OpFunctionCall %S %tint_convert_S %60 - %63 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 - %64 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %63 %61 - %66 = OpAccessChain %_ptr_StorageBuffer_mat4v2half %11 %uint_0 %uint_3 %uint_1 - %69 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 - %71 = OpLoad %v2half %69 None - %72 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 - %73 = OpLoad %v2half %72 None - %74 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_3 - %75 = OpLoad %v2half %74 None - %76 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_4 - %77 = OpLoad %v2half %76 None - %78 = OpCompositeConstruct %mat4v2half %71 %73 %75 %77 - OpStore %66 %78 None - %79 = OpAccessChain %_ptr_StorageBuffer_v2half %11 %uint_0 %uint_1 %uint_1 %uint_0 - %81 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 - %82 = OpLoad %v2half %81 None - %83 = OpVectorShuffle %v2half %82 %82 1 0 - OpStore %79 %83 None + %42 = OpLoad %_arr_S_uint_4 %30 None + %43 = OpFunctionCall %void %tint_store_and_preserve_padding %42 + %45 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %48 = OpLoad %S_std140 %45 None + %49 = OpFunctionCall %S %tint_convert_S %48 + %53 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 + %54 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %53 %49 + %56 = OpAccessChain %_ptr_StorageBuffer_mat4v2half %11 %uint_0 %uint_3 %uint_1 + %59 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 + %61 = OpLoad %v2half %59 None + %62 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 + %63 = OpLoad %v2half %62 None + %64 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_3 + %65 = OpLoad %v2half %64 None + %66 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_4 + %67 = OpLoad %v2half %66 None + %68 = OpCompositeConstruct %mat4v2half %61 %63 %65 %67 + OpStore %56 %68 None + %69 = OpAccessChain %_ptr_StorageBuffer_v2half %11 %uint_0 %uint_1 %uint_1 %uint_0 + %71 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 + %72 = OpLoad %v2half %71 None + %73 = OpVectorShuffle %v2half %72 %72 1 0 + OpStore %69 %73 None OpReturn OpFunctionEnd %tint_store_and_preserve_padding = OpFunction %void None %85 @@ -236,21 +236,21 @@ OpLoopMerge %136 %134 None OpBranch %133 %133 = OpLabel - %139 = OpUGreaterThanEqual %bool %137 %uint_4 - OpSelectionMerge %140 None - OpBranchConditional %139 %141 %140 - %141 = OpLabel + %140 = OpUGreaterThanEqual %bool %137 %uint_4 + OpSelectionMerge %141 None + OpBranchConditional %140 %142 %141 + %142 = OpLabel OpBranch %136 - %140 = OpLabel - %142 = OpAccessChain %_ptr_Function_S_std140 %128 %137 - %143 = OpLoad %S_std140 %142 None - %144 = OpAccessChain %_ptr_Function_S_std140 %130 %137 - OpStore %144 %143 None + %141 = OpLabel + %143 = OpAccessChain %_ptr_Function_S_std140 %128 %137 + %144 = OpLoad %S_std140 %143 None + %145 = OpAccessChain %_ptr_Function_S_std140 %130 %137 + OpStore %145 %144 None OpBranch %134 %134 = OpLabel %138 = OpIAdd %uint %137 %uint_1 OpBranch %135 %136 = OpLabel - %145 = OpLoad %_arr_S_std140_uint_4_0 %130 None - OpReturnValue %145 + %139 = OpLoad %_arr_S_std140_uint_4_0 %130 None + OpReturnValue %139 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.spvasm index eb1e9a3..74fcbb6 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.spvasm
@@ -64,10 +64,6 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %21 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_S = OpTypePointer Workgroup %S - %36 = OpConstantNull %S - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_S_std140_uint_4 = OpTypePointer Uniform %_arr_S_std140_uint_4 @@ -75,14 +71,18 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %52 = OpConstantNull %_arr_S_uint_4 -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 + %44 = OpConstantNull %_arr_S_uint_4 +%_ptr_Workgroup_S = OpTypePointer Workgroup %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %_ptr_Workgroup_mat4v2half = OpTypePointer Workgroup %mat4v2half %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v2half = OpTypePointer Uniform %v2half %_ptr_Workgroup_v2half = OpTypePointer Workgroup %v2half + %bool = OpTypeBool + %84 = OpConstantNull %S +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %95 = OpTypeFunction %void %100 = OpTypeFunction %S %S_std140 %111 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 @@ -91,8 +91,8 @@ %f_inner = OpFunction %void None %21 %tint_local_index = OpFunctionParameter %uint %22 = OpLabel - %48 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function - %50 = OpVariable %_ptr_Function__arr_S_uint_4 Function %52 + %40 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function + %42 = OpVariable %_ptr_Function__arr_S_uint_4 Function %44 OpBranch %23 %23 = OpLabel OpBranch %26 @@ -101,71 +101,71 @@ OpLoopMerge %27 %25 None OpBranch %24 %24 = OpLabel - %30 = OpUGreaterThanEqual %bool %28 %uint_4 - OpSelectionMerge %32 None - OpBranchConditional %30 %33 %32 - %33 = OpLabel + %79 = OpUGreaterThanEqual %bool %28 %uint_4 + OpSelectionMerge %81 None + OpBranchConditional %79 %82 %81 + %82 = OpLabel OpBranch %27 - %32 = OpLabel - %34 = OpAccessChain %_ptr_Workgroup_S %w %28 - OpStore %34 %36 None + %81 = OpLabel + %83 = OpAccessChain %_ptr_Workgroup_S %w %28 + OpStore %83 %84 None OpBranch %25 %25 = OpLabel %29 = OpIAdd %uint %28 %uint_1 OpBranch %26 %27 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %41 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 - %44 = OpLoad %_arr_S_std140_uint_4 %41 None - %45 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %44 - OpStore %48 %45 - OpBranch %53 - %53 = OpLabel - OpBranch %56 - %56 = OpLabel - %58 = OpPhi %uint %uint_0 %53 %59 %55 - OpLoopMerge %57 %55 None - OpBranch %54 - %54 = OpLabel - %60 = OpUGreaterThanEqual %bool %58 %uint_4 - OpSelectionMerge %61 None - OpBranchConditional %60 %62 %61 - %62 = OpLabel - OpBranch %57 - %61 = OpLabel - %63 = OpAccessChain %_ptr_Function_S %50 %58 - %65 = OpAccessChain %_ptr_Function_S_std140 %48 %58 - %67 = OpLoad %S_std140 %65 None - %68 = OpFunctionCall %S %tint_convert_S %67 - OpStore %63 %68 None - OpBranch %55 - %55 = OpLabel - %59 = OpIAdd %uint %58 %uint_1 - OpBranch %56 - %57 = OpLabel - %70 = OpLoad %_arr_S_uint_4 %50 None - OpStore %w %70 None - %71 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 - %72 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %72 None - %75 = OpFunctionCall %S %tint_convert_S %74 - OpStore %71 %75 None - %76 = OpAccessChain %_ptr_Workgroup_mat4v2half %w %uint_3 %uint_1 - %79 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 - %81 = OpLoad %v2half %79 None - %82 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 - %83 = OpLoad %v2half %82 None - %84 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_3 - %85 = OpLoad %v2half %84 None - %86 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_4 - %87 = OpLoad %v2half %86 None - %88 = OpCompositeConstruct %mat4v2half %81 %83 %85 %87 - OpStore %76 %88 None - %89 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_1 %uint_1 %uint_0 - %91 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 - %92 = OpLoad %v2half %91 None - %93 = OpVectorShuffle %v2half %92 %92 1 0 - OpStore %89 %93 None + %33 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 + %36 = OpLoad %_arr_S_std140_uint_4 %33 None + %37 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %36 + OpStore %40 %37 + OpBranch %45 + %45 = OpLabel + OpBranch %48 + %48 = OpLabel + %50 = OpPhi %uint %uint_0 %45 %51 %47 + OpLoopMerge %49 %47 None + OpBranch %46 + %46 = OpLabel + %85 = OpUGreaterThanEqual %bool %50 %uint_4 + OpSelectionMerge %86 None + OpBranchConditional %85 %87 %86 + %87 = OpLabel + OpBranch %49 + %86 = OpLabel + %88 = OpAccessChain %_ptr_Function_S %42 %50 + %90 = OpAccessChain %_ptr_Function_S_std140 %40 %50 + %92 = OpLoad %S_std140 %90 None + %93 = OpFunctionCall %S %tint_convert_S %92 + OpStore %88 %93 None + OpBranch %47 + %47 = OpLabel + %51 = OpIAdd %uint %50 %uint_1 + OpBranch %48 + %49 = OpLabel + %52 = OpLoad %_arr_S_uint_4 %42 None + OpStore %w %52 None + %53 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 + %56 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %58 = OpLoad %S_std140 %56 None + %59 = OpFunctionCall %S %tint_convert_S %58 + OpStore %53 %59 None + %61 = OpAccessChain %_ptr_Workgroup_mat4v2half %w %uint_3 %uint_1 + %64 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_1 + %66 = OpLoad %v2half %64 None + %67 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_2 + %68 = OpLoad %v2half %67 None + %69 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_3 + %70 = OpLoad %v2half %69 None + %71 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_2 %uint_4 + %72 = OpLoad %v2half %71 None + %73 = OpCompositeConstruct %mat4v2half %66 %68 %70 %72 + OpStore %61 %73 None + %74 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_1 %uint_1 %uint_0 + %76 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 %uint_0 %uint_2 + %77 = OpLoad %v2half %76 None + %78 = OpVectorShuffle %v2half %77 %77 1 0 + OpStore %74 %78 None OpReturn OpFunctionEnd %f = OpFunction %void None %95 @@ -201,21 +201,21 @@ OpLoopMerge %121 %119 None OpBranch %118 %118 = OpLabel - %124 = OpUGreaterThanEqual %bool %122 %uint_4 - OpSelectionMerge %125 None - OpBranchConditional %124 %126 %125 - %126 = OpLabel + %125 = OpUGreaterThanEqual %bool %122 %uint_4 + OpSelectionMerge %126 None + OpBranchConditional %125 %127 %126 + %127 = OpLabel OpBranch %121 - %125 = OpLabel - %127 = OpAccessChain %_ptr_Function_S_std140 %113 %122 - %128 = OpLoad %S_std140 %127 None - %129 = OpAccessChain %_ptr_Function_S_std140 %115 %122 - OpStore %129 %128 None + %126 = OpLabel + %128 = OpAccessChain %_ptr_Function_S_std140 %113 %122 + %129 = OpLoad %S_std140 %128 None + %130 = OpAccessChain %_ptr_Function_S_std140 %115 %122 + OpStore %130 %129 None OpBranch %119 %119 = OpLabel %123 = OpIAdd %uint %122 %uint_1 OpBranch %120 %121 = OpLabel - %130 = OpLoad %_arr_S_std140_uint_4_0 %115 None - OpReturnValue %130 + %124 = OpLoad %_arr_S_std140_uint_4_0 %115 None + OpReturnValue %124 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.spvasm index 758cc19..f7b2786 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -96,12 +96,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %79 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %100 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %110 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %136 = OpTypeFunction %Inner %Inner_std140 @@ -127,8 +127,8 @@ %57 = OpVariable %_ptr_Function_mat4v2float Function %71 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %73 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %79 - %106 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %108 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %110 + %96 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %98 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %100 %27 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %30 = OpFunctionCall %int %i %31 = OpBitcast %uint %30 @@ -165,60 +165,60 @@ OpLoopMerge %84 %82 None OpBranch %81 %81 = OpLabel - %87 = OpUGreaterThanEqual %bool %85 %uint_4 - OpSelectionMerge %89 None - OpBranchConditional %87 %90 %89 - %90 = OpLabel + %116 = OpUGreaterThanEqual %bool %85 %uint_4 + OpSelectionMerge %118 None + OpBranchConditional %116 %119 %118 + %119 = OpLabel OpBranch %84 - %89 = OpLabel - %91 = OpAccessChain %_ptr_Function_Outer %73 %85 - %93 = OpAccessChain %_ptr_Function_Outer_std140 %71 %85 - %95 = OpLoad %Outer_std140 %93 None - %96 = OpFunctionCall %Outer %tint_convert_Outer %95 - OpStore %91 %96 None + %118 = OpLabel + %120 = OpAccessChain %_ptr_Function_Outer %73 %85 + %122 = OpAccessChain %_ptr_Function_Outer_std140 %71 %85 + %124 = OpLoad %Outer_std140 %122 None + %125 = OpFunctionCall %Outer %tint_convert_Outer %124 + OpStore %120 %125 None OpBranch %82 %82 = OpLabel %86 = OpIAdd %uint %85 %uint_1 OpBranch %83 %84 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %73 None - %99 = OpLoad %Outer_std140_tint_explicit_layout %35 None - %100 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %99 - %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %100 - %103 = OpLoad %_arr_Inner_std140_uint_4 %37 None - %104 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %103 - OpStore %106 %104 - OpBranch %111 - %111 = OpLabel - OpBranch %114 - %114 = OpLabel - %116 = OpPhi %uint %uint_0 %111 %117 %113 - OpLoopMerge %115 %113 None - OpBranch %112 - %112 = OpLabel - %118 = OpUGreaterThanEqual %bool %116 %uint_4 - OpSelectionMerge %119 None - OpBranchConditional %118 %120 %119 - %120 = OpLabel - OpBranch %115 - %119 = OpLabel - %121 = OpAccessChain %_ptr_Function_Inner %108 %116 - %123 = OpAccessChain %_ptr_Function_Inner_std140 %106 %116 - %125 = OpLoad %Inner_std140 %123 None - %126 = OpFunctionCall %Inner %tint_convert_Inner %125 - OpStore %121 %126 None - OpBranch %113 - %113 = OpLabel - %117 = OpIAdd %uint %116 %uint_1 - OpBranch %114 - %115 = OpLabel - %l_a_i_a = OpLoad %_arr_Inner_uint_4 %108 None - %129 = OpLoad %Inner_std140 %42 None - %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %129 - %131 = OpFunctionCall %int %i - %132 = OpBitcast %uint %131 - %133 = OpExtInst %uint %33 UMin %132 %uint_1 -%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %float %l_a_i_a_i_m_i %133 + %88 = OpLoad %Outer_std140_tint_explicit_layout %35 None + %89 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %88 + %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %89 + %93 = OpLoad %_arr_Inner_std140_uint_4 %37 None + %94 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %93 + OpStore %96 %94 + OpBranch %101 + %101 = OpLabel + OpBranch %104 + %104 = OpLabel + %106 = OpPhi %uint %uint_0 %101 %107 %103 + OpLoopMerge %105 %103 None + OpBranch %102 + %102 = OpLabel + %126 = OpUGreaterThanEqual %bool %106 %uint_4 + OpSelectionMerge %127 None + OpBranchConditional %126 %128 %127 + %128 = OpLabel + OpBranch %105 + %127 = OpLabel + %129 = OpAccessChain %_ptr_Function_Inner %98 %106 + %131 = OpAccessChain %_ptr_Function_Inner_std140 %96 %106 + %133 = OpLoad %Inner_std140 %131 None + %134 = OpFunctionCall %Inner %tint_convert_Inner %133 + OpStore %129 %134 None + OpBranch %103 + %103 = OpLabel + %107 = OpIAdd %uint %106 %uint_1 + OpBranch %104 + %105 = OpLabel + %l_a_i_a = OpLoad %_arr_Inner_uint_4 %98 None + %109 = OpLoad %Inner_std140 %42 None + %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %109 + %112 = OpFunctionCall %int %i + %113 = OpBitcast %uint %112 + %114 = OpExtInst %uint %33 UMin %113 %uint_1 +%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %float %l_a_i_a_i_m_i %114 OpReturn OpFunctionEnd %tint_convert_Inner = OpFunction %Inner None %136 @@ -236,7 +236,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %146 = OpLabel %148 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %149 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %110 + %149 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %100 %147 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %148 %147 OpBranch %150 @@ -247,25 +247,25 @@ OpLoopMerge %154 %152 None OpBranch %151 %151 = OpLabel - %157 = OpUGreaterThanEqual %bool %155 %uint_4 - OpSelectionMerge %158 None - OpBranchConditional %157 %159 %158 - %159 = OpLabel + %159 = OpUGreaterThanEqual %bool %155 %uint_4 + OpSelectionMerge %160 None + OpBranchConditional %159 %161 %160 + %161 = OpLabel OpBranch %154 - %158 = OpLabel - %160 = OpAccessChain %_ptr_Function_Inner %149 %155 - %161 = OpAccessChain %_ptr_Function_Inner_std140 %148 %155 - %162 = OpLoad %Inner_std140 %161 None - %163 = OpFunctionCall %Inner %tint_convert_Inner %162 - OpStore %160 %163 None + %160 = OpLabel + %162 = OpAccessChain %_ptr_Function_Inner %149 %155 + %163 = OpAccessChain %_ptr_Function_Inner_std140 %148 %155 + %164 = OpLoad %Inner_std140 %163 None + %165 = OpFunctionCall %Inner %tint_convert_Inner %164 + OpStore %162 %165 None OpBranch %152 %152 = OpLabel %156 = OpIAdd %uint %155 %uint_1 OpBranch %153 %154 = OpLabel - %164 = OpLoad %_arr_Inner_uint_4 %149 None - %165 = OpCompositeConstruct %Outer %164 - OpReturnValue %165 + %157 = OpLoad %_arr_Inner_uint_4 %149 None + %158 = OpCompositeConstruct %Outer %157 + OpReturnValue %158 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %167 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -281,23 +281,23 @@ OpLoopMerge %177 %175 None OpBranch %174 %174 = OpLabel - %180 = OpUGreaterThanEqual %bool %178 %uint_4 - OpSelectionMerge %181 None - OpBranchConditional %180 %182 %181 - %182 = OpLabel + %181 = OpUGreaterThanEqual %bool %178 %uint_4 + OpSelectionMerge %182 None + OpBranchConditional %181 %183 %182 + %183 = OpLabel OpBranch %177 - %181 = OpLabel - %183 = OpAccessChain %_ptr_Function_Inner_std140 %169 %178 - %184 = OpLoad %Inner_std140 %183 None - %185 = OpAccessChain %_ptr_Function_Inner_std140 %171 %178 - OpStore %185 %184 None + %182 = OpLabel + %184 = OpAccessChain %_ptr_Function_Inner_std140 %169 %178 + %185 = OpLoad %Inner_std140 %184 None + %186 = OpAccessChain %_ptr_Function_Inner_std140 %171 %178 + OpStore %186 %185 None OpBranch %175 %175 = OpLabel %179 = OpIAdd %uint %178 %uint_1 OpBranch %176 %177 = OpLabel - %186 = OpLoad %_arr_Inner_std140_uint_4_0 %171 None - OpReturnValue %186 + %180 = OpLoad %_arr_Inner_std140_uint_4_0 %171 None + OpReturnValue %180 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %188 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -321,22 +321,22 @@ OpLoopMerge %204 %202 None OpBranch %201 %201 = OpLabel - %207 = OpUGreaterThanEqual %bool %205 %uint_4 - OpSelectionMerge %208 None - OpBranchConditional %207 %209 %208 - %209 = OpLabel + %208 = OpUGreaterThanEqual %bool %205 %uint_4 + OpSelectionMerge %209 None + OpBranchConditional %208 %210 %209 + %210 = OpLabel OpBranch %204 - %208 = OpLabel - %210 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %196 %205 - %212 = OpLoad %Outer_std140_tint_explicit_layout %210 None - %213 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %212 - %214 = OpAccessChain %_ptr_Function_Outer_std140 %198 %205 - OpStore %214 %213 None + %209 = OpLabel + %211 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %196 %205 + %213 = OpLoad %Outer_std140_tint_explicit_layout %211 None + %214 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %213 + %215 = OpAccessChain %_ptr_Function_Outer_std140 %198 %205 + OpStore %215 %214 None OpBranch %202 %202 = OpLabel %206 = OpIAdd %uint %205 %uint_1 OpBranch %203 %204 = OpLabel - %215 = OpLoad %_arr_Outer_std140_uint_4 %198 None - OpReturnValue %215 + %207 = OpLoad %_arr_Outer_std140_uint_4 %198 None + OpReturnValue %207 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.spvasm index cbf79c9..7551007 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.spvasm
@@ -85,12 +85,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %54 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %75 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %85 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %108 = OpTypeFunction %Inner %Inner_std140 @@ -107,8 +107,8 @@ %15 = OpLabel %46 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %48 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %54 - %81 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %83 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %85 + %71 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %73 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %75 %16 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %19 = OpAccessChain %_ptr_Uniform_Outer_std140_tint_explicit_layout %16 %uint_3 %22 = OpAccessChain %_ptr_Uniform__arr_Inner_std140_uint_4 %19 %uint_0 @@ -134,56 +134,56 @@ OpLoopMerge %59 %57 None OpBranch %56 %56 = OpLabel - %62 = OpUGreaterThanEqual %bool %60 %uint_4 - OpSelectionMerge %64 None - OpBranchConditional %62 %65 %64 - %65 = OpLabel + %88 = OpUGreaterThanEqual %bool %60 %uint_4 + OpSelectionMerge %90 None + OpBranchConditional %88 %91 %90 + %91 = OpLabel OpBranch %59 - %64 = OpLabel - %66 = OpAccessChain %_ptr_Function_Outer %48 %60 - %68 = OpAccessChain %_ptr_Function_Outer_std140 %46 %60 - %70 = OpLoad %Outer_std140 %68 None - %71 = OpFunctionCall %Outer %tint_convert_Outer %70 - OpStore %66 %71 None + %90 = OpLabel + %92 = OpAccessChain %_ptr_Function_Outer %48 %60 + %94 = OpAccessChain %_ptr_Function_Outer_std140 %46 %60 + %96 = OpLoad %Outer_std140 %94 None + %97 = OpFunctionCall %Outer %tint_convert_Outer %96 + OpStore %92 %97 None OpBranch %57 %57 = OpLabel %61 = OpIAdd %uint %60 %uint_1 OpBranch %58 %59 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %48 None - %74 = OpLoad %Outer_std140_tint_explicit_layout %19 None - %75 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %74 - %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %75 - %78 = OpLoad %_arr_Inner_std140_uint_4 %22 None - %79 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %78 - OpStore %81 %79 - OpBranch %86 - %86 = OpLabel - OpBranch %89 - %89 = OpLabel - %91 = OpPhi %uint %uint_0 %86 %92 %88 - OpLoopMerge %90 %88 None - OpBranch %87 - %87 = OpLabel - %93 = OpUGreaterThanEqual %bool %91 %uint_4 - OpSelectionMerge %94 None - OpBranchConditional %93 %95 %94 - %95 = OpLabel - OpBranch %90 - %94 = OpLabel - %96 = OpAccessChain %_ptr_Function_Inner %83 %91 - %98 = OpAccessChain %_ptr_Function_Inner_std140 %81 %91 - %100 = OpLoad %Inner_std140 %98 None - %101 = OpFunctionCall %Inner %tint_convert_Inner %100 - OpStore %96 %101 None - OpBranch %88 - %88 = OpLabel - %92 = OpIAdd %uint %91 %uint_1 - OpBranch %89 - %90 = OpLabel - %l_a_3_a = OpLoad %_arr_Inner_uint_4 %83 None - %104 = OpLoad %Inner_std140 %24 None - %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %104 + %63 = OpLoad %Outer_std140_tint_explicit_layout %19 None + %64 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %63 + %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %64 + %68 = OpLoad %_arr_Inner_std140_uint_4 %22 None + %69 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %68 + OpStore %71 %69 + OpBranch %76 + %76 = OpLabel + OpBranch %79 + %79 = OpLabel + %81 = OpPhi %uint %uint_0 %76 %82 %78 + OpLoopMerge %80 %78 None + OpBranch %77 + %77 = OpLabel + %98 = OpUGreaterThanEqual %bool %81 %uint_4 + OpSelectionMerge %99 None + OpBranchConditional %98 %100 %99 + %100 = OpLabel + OpBranch %80 + %99 = OpLabel + %101 = OpAccessChain %_ptr_Function_Inner %73 %81 + %103 = OpAccessChain %_ptr_Function_Inner_std140 %71 %81 + %105 = OpLoad %Inner_std140 %103 None + %106 = OpFunctionCall %Inner %tint_convert_Inner %105 + OpStore %101 %106 None + OpBranch %78 + %78 = OpLabel + %82 = OpIAdd %uint %81 %uint_1 + OpBranch %79 + %80 = OpLabel + %l_a_3_a = OpLoad %_arr_Inner_uint_4 %73 None + %84 = OpLoad %Inner_std140 %24 None + %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %84 %l_a_3_a_2_m_1_0 = OpCompositeExtract %float %l_a_3_a_2_m_1 0 OpReturn OpFunctionEnd @@ -202,7 +202,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %118 = OpLabel %120 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %121 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %85 + %121 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %75 %119 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %120 %119 OpBranch %122 @@ -213,25 +213,25 @@ OpLoopMerge %126 %124 None OpBranch %123 %123 = OpLabel - %129 = OpUGreaterThanEqual %bool %127 %uint_4 - OpSelectionMerge %130 None - OpBranchConditional %129 %131 %130 - %131 = OpLabel + %131 = OpUGreaterThanEqual %bool %127 %uint_4 + OpSelectionMerge %132 None + OpBranchConditional %131 %133 %132 + %133 = OpLabel OpBranch %126 - %130 = OpLabel - %132 = OpAccessChain %_ptr_Function_Inner %121 %127 - %133 = OpAccessChain %_ptr_Function_Inner_std140 %120 %127 - %134 = OpLoad %Inner_std140 %133 None - %135 = OpFunctionCall %Inner %tint_convert_Inner %134 - OpStore %132 %135 None + %132 = OpLabel + %134 = OpAccessChain %_ptr_Function_Inner %121 %127 + %135 = OpAccessChain %_ptr_Function_Inner_std140 %120 %127 + %136 = OpLoad %Inner_std140 %135 None + %137 = OpFunctionCall %Inner %tint_convert_Inner %136 + OpStore %134 %137 None OpBranch %124 %124 = OpLabel %128 = OpIAdd %uint %127 %uint_1 OpBranch %125 %126 = OpLabel - %136 = OpLoad %_arr_Inner_uint_4 %121 None - %137 = OpCompositeConstruct %Outer %136 - OpReturnValue %137 + %129 = OpLoad %_arr_Inner_uint_4 %121 None + %130 = OpCompositeConstruct %Outer %129 + OpReturnValue %130 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %139 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -247,23 +247,23 @@ OpLoopMerge %149 %147 None OpBranch %146 %146 = OpLabel - %152 = OpUGreaterThanEqual %bool %150 %uint_4 - OpSelectionMerge %153 None - OpBranchConditional %152 %154 %153 - %154 = OpLabel + %153 = OpUGreaterThanEqual %bool %150 %uint_4 + OpSelectionMerge %154 None + OpBranchConditional %153 %155 %154 + %155 = OpLabel OpBranch %149 - %153 = OpLabel - %155 = OpAccessChain %_ptr_Function_Inner_std140 %141 %150 - %156 = OpLoad %Inner_std140 %155 None - %157 = OpAccessChain %_ptr_Function_Inner_std140 %143 %150 - OpStore %157 %156 None + %154 = OpLabel + %156 = OpAccessChain %_ptr_Function_Inner_std140 %141 %150 + %157 = OpLoad %Inner_std140 %156 None + %158 = OpAccessChain %_ptr_Function_Inner_std140 %143 %150 + OpStore %158 %157 None OpBranch %147 %147 = OpLabel %151 = OpIAdd %uint %150 %uint_1 OpBranch %148 %149 = OpLabel - %158 = OpLoad %_arr_Inner_std140_uint_4_0 %143 None - OpReturnValue %158 + %152 = OpLoad %_arr_Inner_std140_uint_4_0 %143 None + OpReturnValue %152 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %160 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -287,22 +287,22 @@ OpLoopMerge %176 %174 None OpBranch %173 %173 = OpLabel - %179 = OpUGreaterThanEqual %bool %177 %uint_4 - OpSelectionMerge %180 None - OpBranchConditional %179 %181 %180 - %181 = OpLabel + %180 = OpUGreaterThanEqual %bool %177 %uint_4 + OpSelectionMerge %181 None + OpBranchConditional %180 %182 %181 + %182 = OpLabel OpBranch %176 - %180 = OpLabel - %182 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %168 %177 - %184 = OpLoad %Outer_std140_tint_explicit_layout %182 None - %185 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %184 - %186 = OpAccessChain %_ptr_Function_Outer_std140 %170 %177 - OpStore %186 %185 None + %181 = OpLabel + %183 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %168 %177 + %185 = OpLoad %Outer_std140_tint_explicit_layout %183 None + %186 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %185 + %187 = OpAccessChain %_ptr_Function_Outer_std140 %170 %177 + OpStore %187 %186 None OpBranch %174 %174 = OpLabel %178 = OpIAdd %uint %177 %uint_1 OpBranch %175 %176 = OpLabel - %187 = OpLoad %_arr_Outer_std140_uint_4 %170 None - OpReturnValue %187 + %179 = OpLoad %_arr_Outer_std140_uint_4 %170 None + OpReturnValue %179 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.spvasm index 273a5bd..544a490 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.spvasm
@@ -73,14 +73,14 @@ %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %49 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float + %uint_1 = OpConstant %uint 1 %uint_3 = OpConstant %uint 3 + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %99 = OpTypeFunction %S %S_std140 %110 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -126,47 +126,47 @@ OpLoopMerge %54 %52 None OpBranch %51 %51 = OpLabel - %57 = OpUGreaterThanEqual %bool %55 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel + %88 = OpUGreaterThanEqual %bool %55 %uint_4 + OpSelectionMerge %90 None + OpBranchConditional %88 %91 %90 + %91 = OpLabel OpBranch %54 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_S %47 %55 - %63 = OpAccessChain %_ptr_Function_S_std140 %45 %55 - %65 = OpLoad %S_std140 %63 None - %66 = OpFunctionCall %S %tint_convert_S %65 - OpStore %61 %66 None + %90 = OpLabel + %92 = OpAccessChain %_ptr_Function_S %47 %55 + %94 = OpAccessChain %_ptr_Function_S_std140 %45 %55 + %96 = OpLoad %S_std140 %94 None + %97 = OpFunctionCall %S %tint_convert_S %96 + OpStore %92 %97 None OpBranch %52 %52 = OpLabel %56 = OpIAdd %uint %55 %uint_1 OpBranch %53 %54 = OpLabel - %69 = OpLoad %_arr_S_uint_4 %47 None - %70 = OpFunctionCall %void %a %69 - %71 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %71 None - %75 = OpFunctionCall %S %tint_convert_S %74 - %76 = OpFunctionCall %void %b %75 - %77 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 - %79 = OpLoad %v2float %77 None - %80 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 - %81 = OpLoad %v2float %80 None - %82 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_3 - %84 = OpLoad %v2float %82 None - %85 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_4 - %86 = OpLoad %v2float %85 None - %87 = OpCompositeConstruct %mat4v2float %79 %81 %84 %86 - %88 = OpFunctionCall %void %c %87 - %89 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 - %90 = OpLoad %v2float %89 None - %91 = OpVectorShuffle %v2float %90 %90 1 0 - %92 = OpFunctionCall %void %d %91 - %93 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 - %94 = OpLoad %v2float %93 None - %95 = OpVectorShuffle %v2float %94 %94 1 0 - %96 = OpCompositeExtract %float %95 0 - %97 = OpFunctionCall %void %e %96 + %57 = OpLoad %_arr_S_uint_4 %47 None + %58 = OpFunctionCall %void %a %57 + %59 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %62 = OpLoad %S_std140 %59 None + %63 = OpFunctionCall %S %tint_convert_S %62 + %65 = OpFunctionCall %void %b %63 + %66 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 + %69 = OpLoad %v2float %66 None + %70 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 + %71 = OpLoad %v2float %70 None + %72 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_3 + %74 = OpLoad %v2float %72 None + %75 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_4 + %76 = OpLoad %v2float %75 None + %77 = OpCompositeConstruct %mat4v2float %69 %71 %74 %76 + %78 = OpFunctionCall %void %c %77 + %79 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 + %80 = OpLoad %v2float %79 None + %81 = OpVectorShuffle %v2float %80 %80 1 0 + %82 = OpFunctionCall %void %d %81 + %83 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 + %84 = OpLoad %v2float %83 None + %85 = OpVectorShuffle %v2float %84 %84 1 0 + %86 = OpCompositeExtract %float %85 0 + %87 = OpFunctionCall %void %e %86 OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %99 @@ -196,21 +196,21 @@ OpLoopMerge %120 %118 None OpBranch %117 %117 = OpLabel - %123 = OpUGreaterThanEqual %bool %121 %uint_4 - OpSelectionMerge %124 None - OpBranchConditional %123 %125 %124 - %125 = OpLabel + %124 = OpUGreaterThanEqual %bool %121 %uint_4 + OpSelectionMerge %125 None + OpBranchConditional %124 %126 %125 + %126 = OpLabel OpBranch %120 - %124 = OpLabel - %126 = OpAccessChain %_ptr_Function_S_std140 %112 %121 - %127 = OpLoad %S_std140 %126 None - %128 = OpAccessChain %_ptr_Function_S_std140 %114 %121 - OpStore %128 %127 None + %125 = OpLabel + %127 = OpAccessChain %_ptr_Function_S_std140 %112 %121 + %128 = OpLoad %S_std140 %127 None + %129 = OpAccessChain %_ptr_Function_S_std140 %114 %121 + OpStore %129 %128 None OpBranch %118 %118 = OpLabel %122 = OpIAdd %uint %121 %uint_1 OpBranch %119 %120 = OpLabel - %129 = OpLoad %_arr_S_std140_uint_4_0 %114 None - OpReturnValue %129 + %123 = OpLoad %_arr_S_std140_uint_4_0 %114 None + OpReturnValue %123 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.spvasm index dfec7c4..c4c5ee5 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.spvasm
@@ -61,17 +61,17 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Private_S = OpTypePointer Private %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Private_mat4v2float = OpTypePointer Private %mat4v2float %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float %_ptr_Private_v2float = OpTypePointer Private %v2float + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %78 = OpTypeFunction %S %S_std140 %89 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -92,45 +92,45 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_4 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %67 = OpUGreaterThanEqual %bool %37 %uint_4 + OpSelectionMerge %69 None + OpBranchConditional %67 %70 %69 + %70 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Function_S %30 %37 - %45 = OpAccessChain %_ptr_Function_S_std140 %28 %37 - %47 = OpLoad %S_std140 %45 None - %48 = OpFunctionCall %S %tint_convert_S %47 - OpStore %43 %48 None + %69 = OpLabel + %71 = OpAccessChain %_ptr_Function_S %30 %37 + %73 = OpAccessChain %_ptr_Function_S_std140 %28 %37 + %75 = OpLoad %S_std140 %73 None + %76 = OpFunctionCall %S %tint_convert_S %75 + OpStore %71 %76 None OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel - %51 = OpLoad %_arr_S_uint_4 %30 None - OpStore %p %51 None - %52 = OpAccessChain %_ptr_Private_S %p %uint_1 - %54 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %57 = OpLoad %S_std140 %54 None - %58 = OpFunctionCall %S %tint_convert_S %57 - OpStore %52 %58 None - %59 = OpAccessChain %_ptr_Private_mat4v2float %p %uint_3 %uint_1 - %62 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 - %64 = OpLoad %v2float %62 None - %65 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 - %66 = OpLoad %v2float %65 None - %67 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_3 - %68 = OpLoad %v2float %67 None - %69 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_4 - %70 = OpLoad %v2float %69 None - %71 = OpCompositeConstruct %mat4v2float %64 %66 %68 %70 - OpStore %59 %71 None - %72 = OpAccessChain %_ptr_Private_v2float %p %uint_1 %uint_1 %uint_0 - %74 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 - %75 = OpLoad %v2float %74 None - %76 = OpVectorShuffle %v2float %75 %75 1 0 - OpStore %72 %76 None + %39 = OpLoad %_arr_S_uint_4 %30 None + OpStore %p %39 None + %40 = OpAccessChain %_ptr_Private_S %p %uint_1 + %43 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %46 = OpLoad %S_std140 %43 None + %47 = OpFunctionCall %S %tint_convert_S %46 + OpStore %40 %47 None + %49 = OpAccessChain %_ptr_Private_mat4v2float %p %uint_3 %uint_1 + %52 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 + %54 = OpLoad %v2float %52 None + %55 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 + %56 = OpLoad %v2float %55 None + %57 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_3 + %58 = OpLoad %v2float %57 None + %59 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_4 + %60 = OpLoad %v2float %59 None + %61 = OpCompositeConstruct %mat4v2float %54 %56 %58 %60 + OpStore %49 %61 None + %62 = OpAccessChain %_ptr_Private_v2float %p %uint_1 %uint_1 %uint_0 + %64 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 + %65 = OpLoad %v2float %64 None + %66 = OpVectorShuffle %v2float %65 %65 1 0 + OpStore %62 %66 None OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %78 @@ -160,21 +160,21 @@ OpLoopMerge %99 %97 None OpBranch %96 %96 = OpLabel - %102 = OpUGreaterThanEqual %bool %100 %uint_4 - OpSelectionMerge %103 None - OpBranchConditional %102 %104 %103 - %104 = OpLabel + %103 = OpUGreaterThanEqual %bool %100 %uint_4 + OpSelectionMerge %104 None + OpBranchConditional %103 %105 %104 + %105 = OpLabel OpBranch %99 - %103 = OpLabel - %105 = OpAccessChain %_ptr_Function_S_std140 %91 %100 - %106 = OpLoad %S_std140 %105 None - %107 = OpAccessChain %_ptr_Function_S_std140 %93 %100 - OpStore %107 %106 None + %104 = OpLabel + %106 = OpAccessChain %_ptr_Function_S_std140 %91 %100 + %107 = OpLoad %S_std140 %106 None + %108 = OpAccessChain %_ptr_Function_S_std140 %93 %100 + OpStore %108 %107 None OpBranch %97 %97 = OpLabel %101 = OpIAdd %uint %100 %uint_1 OpBranch %98 %99 = OpLabel - %108 = OpLoad %_arr_S_std140_uint_4_0 %93 None - OpReturnValue %108 + %102 = OpLoad %_arr_S_std140_uint_4_0 %93 None + OpReturnValue %102 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_storage.wgsl.expected.spvasm index 2ffe810..18544ed 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_storage.wgsl.expected.spvasm
@@ -85,17 +85,17 @@ %_arr_S_uint_4 = OpTypeArray %S %uint_4 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %34 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 + %uint_1 = OpConstant %uint 1 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1 %_ptr_StorageBuffer_mat4v2float = OpTypePointer StorageBuffer %mat4v2float %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float %_ptr_StorageBuffer_v2float = OpTypePointer StorageBuffer %v2float + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %85 = OpTypeFunction %void %_arr_S_uint_4 %104 = OpTypeFunction %void %_arr_uint_uint_1 %S %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int @@ -119,45 +119,45 @@ OpLoopMerge %39 %37 None OpBranch %36 %36 = OpLabel - %42 = OpUGreaterThanEqual %bool %40 %uint_4 - OpSelectionMerge %44 None - OpBranchConditional %42 %45 %44 - %45 = OpLabel + %74 = OpUGreaterThanEqual %bool %40 %uint_4 + OpSelectionMerge %76 None + OpBranchConditional %74 %77 %76 + %77 = OpLabel OpBranch %39 - %44 = OpLabel - %46 = OpAccessChain %_ptr_Function_S %30 %40 - %48 = OpAccessChain %_ptr_Function_S_std140 %28 %40 - %50 = OpLoad %S_std140 %48 None - %51 = OpFunctionCall %S %tint_convert_S %50 - OpStore %46 %51 None + %76 = OpLabel + %78 = OpAccessChain %_ptr_Function_S %30 %40 + %80 = OpAccessChain %_ptr_Function_S_std140 %28 %40 + %82 = OpLoad %S_std140 %80 None + %83 = OpFunctionCall %S %tint_convert_S %82 + OpStore %78 %83 None OpBranch %37 %37 = OpLabel %41 = OpIAdd %uint %40 %uint_1 OpBranch %38 %39 = OpLabel - %54 = OpLoad %_arr_S_uint_4 %30 None - %55 = OpFunctionCall %void %tint_store_and_preserve_padding %54 - %57 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %60 = OpLoad %S_std140 %57 None - %61 = OpFunctionCall %S %tint_convert_S %60 - %63 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 - %64 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %63 %61 - %66 = OpAccessChain %_ptr_StorageBuffer_mat4v2float %11 %uint_0 %uint_3 %uint_1 - %69 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 - %71 = OpLoad %v2float %69 None - %72 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 - %73 = OpLoad %v2float %72 None - %74 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_3 - %75 = OpLoad %v2float %74 None - %76 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_4 - %77 = OpLoad %v2float %76 None - %78 = OpCompositeConstruct %mat4v2float %71 %73 %75 %77 - OpStore %66 %78 None - %79 = OpAccessChain %_ptr_StorageBuffer_v2float %11 %uint_0 %uint_1 %uint_1 %uint_0 - %81 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 - %82 = OpLoad %v2float %81 None - %83 = OpVectorShuffle %v2float %82 %82 1 0 - OpStore %79 %83 None + %42 = OpLoad %_arr_S_uint_4 %30 None + %43 = OpFunctionCall %void %tint_store_and_preserve_padding %42 + %45 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %48 = OpLoad %S_std140 %45 None + %49 = OpFunctionCall %S %tint_convert_S %48 + %53 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 + %54 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %53 %49 + %56 = OpAccessChain %_ptr_StorageBuffer_mat4v2float %11 %uint_0 %uint_3 %uint_1 + %59 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 + %61 = OpLoad %v2float %59 None + %62 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 + %63 = OpLoad %v2float %62 None + %64 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_3 + %65 = OpLoad %v2float %64 None + %66 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_4 + %67 = OpLoad %v2float %66 None + %68 = OpCompositeConstruct %mat4v2float %61 %63 %65 %67 + OpStore %56 %68 None + %69 = OpAccessChain %_ptr_StorageBuffer_v2float %11 %uint_0 %uint_1 %uint_1 %uint_0 + %71 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 + %72 = OpLoad %v2float %71 None + %73 = OpVectorShuffle %v2float %72 %72 1 0 + OpStore %69 %73 None OpReturn OpFunctionEnd %tint_store_and_preserve_padding = OpFunction %void None %85 @@ -233,21 +233,21 @@ OpLoopMerge %136 %134 None OpBranch %133 %133 = OpLabel - %139 = OpUGreaterThanEqual %bool %137 %uint_4 - OpSelectionMerge %140 None - OpBranchConditional %139 %141 %140 - %141 = OpLabel + %140 = OpUGreaterThanEqual %bool %137 %uint_4 + OpSelectionMerge %141 None + OpBranchConditional %140 %142 %141 + %142 = OpLabel OpBranch %136 - %140 = OpLabel - %142 = OpAccessChain %_ptr_Function_S_std140 %128 %137 - %143 = OpLoad %S_std140 %142 None - %144 = OpAccessChain %_ptr_Function_S_std140 %130 %137 - OpStore %144 %143 None + %141 = OpLabel + %143 = OpAccessChain %_ptr_Function_S_std140 %128 %137 + %144 = OpLoad %S_std140 %143 None + %145 = OpAccessChain %_ptr_Function_S_std140 %130 %137 + OpStore %145 %144 None OpBranch %134 %134 = OpLabel %138 = OpIAdd %uint %137 %uint_1 OpBranch %135 %136 = OpLabel - %145 = OpLoad %_arr_S_std140_uint_4_0 %130 None - OpReturnValue %145 + %139 = OpLoad %_arr_S_std140_uint_4_0 %130 None + OpReturnValue %139 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.spvasm index f419206..598dabc 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.spvasm
@@ -61,10 +61,6 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %21 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_S = OpTypePointer Workgroup %S - %36 = OpConstantNull %S - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_S_std140_uint_4 = OpTypePointer Uniform %_arr_S_std140_uint_4 @@ -72,14 +68,18 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %52 = OpConstantNull %_arr_S_uint_4 -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 + %44 = OpConstantNull %_arr_S_uint_4 +%_ptr_Workgroup_S = OpTypePointer Workgroup %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %_ptr_Workgroup_mat4v2float = OpTypePointer Workgroup %mat4v2float %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float %_ptr_Workgroup_v2float = OpTypePointer Workgroup %v2float + %bool = OpTypeBool + %84 = OpConstantNull %S +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %95 = OpTypeFunction %void %100 = OpTypeFunction %S %S_std140 %111 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 @@ -88,8 +88,8 @@ %f_inner = OpFunction %void None %21 %tint_local_index = OpFunctionParameter %uint %22 = OpLabel - %48 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function - %50 = OpVariable %_ptr_Function__arr_S_uint_4 Function %52 + %40 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function + %42 = OpVariable %_ptr_Function__arr_S_uint_4 Function %44 OpBranch %23 %23 = OpLabel OpBranch %26 @@ -98,71 +98,71 @@ OpLoopMerge %27 %25 None OpBranch %24 %24 = OpLabel - %30 = OpUGreaterThanEqual %bool %28 %uint_4 - OpSelectionMerge %32 None - OpBranchConditional %30 %33 %32 - %33 = OpLabel + %79 = OpUGreaterThanEqual %bool %28 %uint_4 + OpSelectionMerge %81 None + OpBranchConditional %79 %82 %81 + %82 = OpLabel OpBranch %27 - %32 = OpLabel - %34 = OpAccessChain %_ptr_Workgroup_S %w %28 - OpStore %34 %36 None + %81 = OpLabel + %83 = OpAccessChain %_ptr_Workgroup_S %w %28 + OpStore %83 %84 None OpBranch %25 %25 = OpLabel %29 = OpIAdd %uint %28 %uint_1 OpBranch %26 %27 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %41 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 - %44 = OpLoad %_arr_S_std140_uint_4 %41 None - %45 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %44 - OpStore %48 %45 - OpBranch %53 - %53 = OpLabel - OpBranch %56 - %56 = OpLabel - %58 = OpPhi %uint %uint_0 %53 %59 %55 - OpLoopMerge %57 %55 None - OpBranch %54 - %54 = OpLabel - %60 = OpUGreaterThanEqual %bool %58 %uint_4 - OpSelectionMerge %61 None - OpBranchConditional %60 %62 %61 - %62 = OpLabel - OpBranch %57 - %61 = OpLabel - %63 = OpAccessChain %_ptr_Function_S %50 %58 - %65 = OpAccessChain %_ptr_Function_S_std140 %48 %58 - %67 = OpLoad %S_std140 %65 None - %68 = OpFunctionCall %S %tint_convert_S %67 - OpStore %63 %68 None - OpBranch %55 - %55 = OpLabel - %59 = OpIAdd %uint %58 %uint_1 - OpBranch %56 - %57 = OpLabel - %70 = OpLoad %_arr_S_uint_4 %50 None - OpStore %w %70 None - %71 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 - %72 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %72 None - %75 = OpFunctionCall %S %tint_convert_S %74 - OpStore %71 %75 None - %76 = OpAccessChain %_ptr_Workgroup_mat4v2float %w %uint_3 %uint_1 - %79 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 - %81 = OpLoad %v2float %79 None - %82 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 - %83 = OpLoad %v2float %82 None - %84 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_3 - %85 = OpLoad %v2float %84 None - %86 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_4 - %87 = OpLoad %v2float %86 None - %88 = OpCompositeConstruct %mat4v2float %81 %83 %85 %87 - OpStore %76 %88 None - %89 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_1 %uint_1 %uint_0 - %91 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 - %92 = OpLoad %v2float %91 None - %93 = OpVectorShuffle %v2float %92 %92 1 0 - OpStore %89 %93 None + %33 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 + %36 = OpLoad %_arr_S_std140_uint_4 %33 None + %37 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %36 + OpStore %40 %37 + OpBranch %45 + %45 = OpLabel + OpBranch %48 + %48 = OpLabel + %50 = OpPhi %uint %uint_0 %45 %51 %47 + OpLoopMerge %49 %47 None + OpBranch %46 + %46 = OpLabel + %85 = OpUGreaterThanEqual %bool %50 %uint_4 + OpSelectionMerge %86 None + OpBranchConditional %85 %87 %86 + %87 = OpLabel + OpBranch %49 + %86 = OpLabel + %88 = OpAccessChain %_ptr_Function_S %42 %50 + %90 = OpAccessChain %_ptr_Function_S_std140 %40 %50 + %92 = OpLoad %S_std140 %90 None + %93 = OpFunctionCall %S %tint_convert_S %92 + OpStore %88 %93 None + OpBranch %47 + %47 = OpLabel + %51 = OpIAdd %uint %50 %uint_1 + OpBranch %48 + %49 = OpLabel + %52 = OpLoad %_arr_S_uint_4 %42 None + OpStore %w %52 None + %53 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 + %56 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %58 = OpLoad %S_std140 %56 None + %59 = OpFunctionCall %S %tint_convert_S %58 + OpStore %53 %59 None + %61 = OpAccessChain %_ptr_Workgroup_mat4v2float %w %uint_3 %uint_1 + %64 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_1 + %66 = OpLoad %v2float %64 None + %67 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_2 + %68 = OpLoad %v2float %67 None + %69 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_3 + %70 = OpLoad %v2float %69 None + %71 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_2 %uint_4 + %72 = OpLoad %v2float %71 None + %73 = OpCompositeConstruct %mat4v2float %66 %68 %70 %72 + OpStore %61 %73 None + %74 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_1 %uint_1 %uint_0 + %76 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 %uint_2 + %77 = OpLoad %v2float %76 None + %78 = OpVectorShuffle %v2float %77 %77 1 0 + OpStore %74 %78 None OpReturn OpFunctionEnd %f = OpFunction %void None %95 @@ -198,21 +198,21 @@ OpLoopMerge %121 %119 None OpBranch %118 %118 = OpLabel - %124 = OpUGreaterThanEqual %bool %122 %uint_4 - OpSelectionMerge %125 None - OpBranchConditional %124 %126 %125 - %126 = OpLabel + %125 = OpUGreaterThanEqual %bool %122 %uint_4 + OpSelectionMerge %126 None + OpBranchConditional %125 %127 %126 + %127 = OpLabel OpBranch %121 - %125 = OpLabel - %127 = OpAccessChain %_ptr_Function_S_std140 %113 %122 - %128 = OpLoad %S_std140 %127 None - %129 = OpAccessChain %_ptr_Function_S_std140 %115 %122 - OpStore %129 %128 None + %126 = OpLabel + %128 = OpAccessChain %_ptr_Function_S_std140 %113 %122 + %129 = OpLoad %S_std140 %128 None + %130 = OpAccessChain %_ptr_Function_S_std140 %115 %122 + OpStore %130 %129 None OpBranch %119 %119 = OpLabel %123 = OpIAdd %uint %122 %uint_1 OpBranch %120 %121 = OpLabel - %130 = OpLoad %_arr_S_std140_uint_4_0 %115 None - OpReturnValue %130 + %124 = OpLoad %_arr_S_std140_uint_4_0 %115 None + OpReturnValue %124 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.spvasm index 1525920..22d5622 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -99,12 +99,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %79 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %100 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %110 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %136 = OpTypeFunction %Inner %Inner_std140 @@ -130,8 +130,8 @@ %57 = OpVariable %_ptr_Function_mat4v3half Function %71 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %73 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %79 - %106 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %108 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %110 + %96 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %98 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %100 %27 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %30 = OpFunctionCall %int %i %31 = OpBitcast %uint %30 @@ -168,60 +168,60 @@ OpLoopMerge %84 %82 None OpBranch %81 %81 = OpLabel - %87 = OpUGreaterThanEqual %bool %85 %uint_4 - OpSelectionMerge %89 None - OpBranchConditional %87 %90 %89 - %90 = OpLabel + %116 = OpUGreaterThanEqual %bool %85 %uint_4 + OpSelectionMerge %118 None + OpBranchConditional %116 %119 %118 + %119 = OpLabel OpBranch %84 - %89 = OpLabel - %91 = OpAccessChain %_ptr_Function_Outer %73 %85 - %93 = OpAccessChain %_ptr_Function_Outer_std140 %71 %85 - %95 = OpLoad %Outer_std140 %93 None - %96 = OpFunctionCall %Outer %tint_convert_Outer %95 - OpStore %91 %96 None + %118 = OpLabel + %120 = OpAccessChain %_ptr_Function_Outer %73 %85 + %122 = OpAccessChain %_ptr_Function_Outer_std140 %71 %85 + %124 = OpLoad %Outer_std140 %122 None + %125 = OpFunctionCall %Outer %tint_convert_Outer %124 + OpStore %120 %125 None OpBranch %82 %82 = OpLabel %86 = OpIAdd %uint %85 %uint_1 OpBranch %83 %84 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %73 None - %99 = OpLoad %Outer_std140_tint_explicit_layout %35 None - %100 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %99 - %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %100 - %103 = OpLoad %_arr_Inner_std140_uint_4 %37 None - %104 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %103 - OpStore %106 %104 - OpBranch %111 - %111 = OpLabel - OpBranch %114 - %114 = OpLabel - %116 = OpPhi %uint %uint_0 %111 %117 %113 - OpLoopMerge %115 %113 None - OpBranch %112 - %112 = OpLabel - %118 = OpUGreaterThanEqual %bool %116 %uint_4 - OpSelectionMerge %119 None - OpBranchConditional %118 %120 %119 - %120 = OpLabel - OpBranch %115 - %119 = OpLabel - %121 = OpAccessChain %_ptr_Function_Inner %108 %116 - %123 = OpAccessChain %_ptr_Function_Inner_std140 %106 %116 - %125 = OpLoad %Inner_std140 %123 None - %126 = OpFunctionCall %Inner %tint_convert_Inner %125 - OpStore %121 %126 None - OpBranch %113 - %113 = OpLabel - %117 = OpIAdd %uint %116 %uint_1 - OpBranch %114 - %115 = OpLabel - %l_a_i_a = OpLoad %_arr_Inner_uint_4 %108 None - %129 = OpLoad %Inner_std140 %42 None - %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %129 - %131 = OpFunctionCall %int %i - %132 = OpBitcast %uint %131 - %133 = OpExtInst %uint %33 UMin %132 %uint_2 -%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %half %l_a_i_a_i_m_i %133 + %88 = OpLoad %Outer_std140_tint_explicit_layout %35 None + %89 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %88 + %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %89 + %93 = OpLoad %_arr_Inner_std140_uint_4 %37 None + %94 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %93 + OpStore %96 %94 + OpBranch %101 + %101 = OpLabel + OpBranch %104 + %104 = OpLabel + %106 = OpPhi %uint %uint_0 %101 %107 %103 + OpLoopMerge %105 %103 None + OpBranch %102 + %102 = OpLabel + %126 = OpUGreaterThanEqual %bool %106 %uint_4 + OpSelectionMerge %127 None + OpBranchConditional %126 %128 %127 + %128 = OpLabel + OpBranch %105 + %127 = OpLabel + %129 = OpAccessChain %_ptr_Function_Inner %98 %106 + %131 = OpAccessChain %_ptr_Function_Inner_std140 %96 %106 + %133 = OpLoad %Inner_std140 %131 None + %134 = OpFunctionCall %Inner %tint_convert_Inner %133 + OpStore %129 %134 None + OpBranch %103 + %103 = OpLabel + %107 = OpIAdd %uint %106 %uint_1 + OpBranch %104 + %105 = OpLabel + %l_a_i_a = OpLoad %_arr_Inner_uint_4 %98 None + %109 = OpLoad %Inner_std140 %42 None + %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %109 + %112 = OpFunctionCall %int %i + %113 = OpBitcast %uint %112 + %114 = OpExtInst %uint %33 UMin %113 %uint_2 +%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %half %l_a_i_a_i_m_i %114 OpReturn OpFunctionEnd %tint_convert_Inner = OpFunction %Inner None %136 @@ -239,7 +239,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %146 = OpLabel %148 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %149 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %110 + %149 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %100 %147 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %148 %147 OpBranch %150 @@ -250,25 +250,25 @@ OpLoopMerge %154 %152 None OpBranch %151 %151 = OpLabel - %157 = OpUGreaterThanEqual %bool %155 %uint_4 - OpSelectionMerge %158 None - OpBranchConditional %157 %159 %158 - %159 = OpLabel + %159 = OpUGreaterThanEqual %bool %155 %uint_4 + OpSelectionMerge %160 None + OpBranchConditional %159 %161 %160 + %161 = OpLabel OpBranch %154 - %158 = OpLabel - %160 = OpAccessChain %_ptr_Function_Inner %149 %155 - %161 = OpAccessChain %_ptr_Function_Inner_std140 %148 %155 - %162 = OpLoad %Inner_std140 %161 None - %163 = OpFunctionCall %Inner %tint_convert_Inner %162 - OpStore %160 %163 None + %160 = OpLabel + %162 = OpAccessChain %_ptr_Function_Inner %149 %155 + %163 = OpAccessChain %_ptr_Function_Inner_std140 %148 %155 + %164 = OpLoad %Inner_std140 %163 None + %165 = OpFunctionCall %Inner %tint_convert_Inner %164 + OpStore %162 %165 None OpBranch %152 %152 = OpLabel %156 = OpIAdd %uint %155 %uint_1 OpBranch %153 %154 = OpLabel - %164 = OpLoad %_arr_Inner_uint_4 %149 None - %165 = OpCompositeConstruct %Outer %164 - OpReturnValue %165 + %157 = OpLoad %_arr_Inner_uint_4 %149 None + %158 = OpCompositeConstruct %Outer %157 + OpReturnValue %158 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %167 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -284,23 +284,23 @@ OpLoopMerge %177 %175 None OpBranch %174 %174 = OpLabel - %180 = OpUGreaterThanEqual %bool %178 %uint_4 - OpSelectionMerge %181 None - OpBranchConditional %180 %182 %181 - %182 = OpLabel + %181 = OpUGreaterThanEqual %bool %178 %uint_4 + OpSelectionMerge %182 None + OpBranchConditional %181 %183 %182 + %183 = OpLabel OpBranch %177 - %181 = OpLabel - %183 = OpAccessChain %_ptr_Function_Inner_std140 %169 %178 - %184 = OpLoad %Inner_std140 %183 None - %185 = OpAccessChain %_ptr_Function_Inner_std140 %171 %178 - OpStore %185 %184 None + %182 = OpLabel + %184 = OpAccessChain %_ptr_Function_Inner_std140 %169 %178 + %185 = OpLoad %Inner_std140 %184 None + %186 = OpAccessChain %_ptr_Function_Inner_std140 %171 %178 + OpStore %186 %185 None OpBranch %175 %175 = OpLabel %179 = OpIAdd %uint %178 %uint_1 OpBranch %176 %177 = OpLabel - %186 = OpLoad %_arr_Inner_std140_uint_4_0 %171 None - OpReturnValue %186 + %180 = OpLoad %_arr_Inner_std140_uint_4_0 %171 None + OpReturnValue %180 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %188 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -324,22 +324,22 @@ OpLoopMerge %204 %202 None OpBranch %201 %201 = OpLabel - %207 = OpUGreaterThanEqual %bool %205 %uint_4 - OpSelectionMerge %208 None - OpBranchConditional %207 %209 %208 - %209 = OpLabel + %208 = OpUGreaterThanEqual %bool %205 %uint_4 + OpSelectionMerge %209 None + OpBranchConditional %208 %210 %209 + %210 = OpLabel OpBranch %204 - %208 = OpLabel - %210 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %196 %205 - %212 = OpLoad %Outer_std140_tint_explicit_layout %210 None - %213 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %212 - %214 = OpAccessChain %_ptr_Function_Outer_std140 %198 %205 - OpStore %214 %213 None + %209 = OpLabel + %211 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %196 %205 + %213 = OpLoad %Outer_std140_tint_explicit_layout %211 None + %214 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %213 + %215 = OpAccessChain %_ptr_Function_Outer_std140 %198 %205 + OpStore %215 %214 None OpBranch %202 %202 = OpLabel %206 = OpIAdd %uint %205 %uint_1 OpBranch %203 %204 = OpLabel - %215 = OpLoad %_arr_Outer_std140_uint_4 %198 None - OpReturnValue %215 + %207 = OpLoad %_arr_Outer_std140_uint_4 %198 None + OpReturnValue %207 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.spvasm index a2671fb..b46c4f8 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.spvasm
@@ -88,12 +88,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %54 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %75 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %85 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %108 = OpTypeFunction %Inner %Inner_std140 @@ -110,8 +110,8 @@ %15 = OpLabel %46 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %48 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %54 - %81 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %83 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %85 + %71 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %73 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %75 %16 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %19 = OpAccessChain %_ptr_Uniform_Outer_std140_tint_explicit_layout %16 %uint_3 %22 = OpAccessChain %_ptr_Uniform__arr_Inner_std140_uint_4 %19 %uint_0 @@ -137,56 +137,56 @@ OpLoopMerge %59 %57 None OpBranch %56 %56 = OpLabel - %62 = OpUGreaterThanEqual %bool %60 %uint_4 - OpSelectionMerge %64 None - OpBranchConditional %62 %65 %64 - %65 = OpLabel + %88 = OpUGreaterThanEqual %bool %60 %uint_4 + OpSelectionMerge %90 None + OpBranchConditional %88 %91 %90 + %91 = OpLabel OpBranch %59 - %64 = OpLabel - %66 = OpAccessChain %_ptr_Function_Outer %48 %60 - %68 = OpAccessChain %_ptr_Function_Outer_std140 %46 %60 - %70 = OpLoad %Outer_std140 %68 None - %71 = OpFunctionCall %Outer %tint_convert_Outer %70 - OpStore %66 %71 None + %90 = OpLabel + %92 = OpAccessChain %_ptr_Function_Outer %48 %60 + %94 = OpAccessChain %_ptr_Function_Outer_std140 %46 %60 + %96 = OpLoad %Outer_std140 %94 None + %97 = OpFunctionCall %Outer %tint_convert_Outer %96 + OpStore %92 %97 None OpBranch %57 %57 = OpLabel %61 = OpIAdd %uint %60 %uint_1 OpBranch %58 %59 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %48 None - %74 = OpLoad %Outer_std140_tint_explicit_layout %19 None - %75 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %74 - %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %75 - %78 = OpLoad %_arr_Inner_std140_uint_4 %22 None - %79 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %78 - OpStore %81 %79 - OpBranch %86 - %86 = OpLabel - OpBranch %89 - %89 = OpLabel - %91 = OpPhi %uint %uint_0 %86 %92 %88 - OpLoopMerge %90 %88 None - OpBranch %87 - %87 = OpLabel - %93 = OpUGreaterThanEqual %bool %91 %uint_4 - OpSelectionMerge %94 None - OpBranchConditional %93 %95 %94 - %95 = OpLabel - OpBranch %90 - %94 = OpLabel - %96 = OpAccessChain %_ptr_Function_Inner %83 %91 - %98 = OpAccessChain %_ptr_Function_Inner_std140 %81 %91 - %100 = OpLoad %Inner_std140 %98 None - %101 = OpFunctionCall %Inner %tint_convert_Inner %100 - OpStore %96 %101 None - OpBranch %88 - %88 = OpLabel - %92 = OpIAdd %uint %91 %uint_1 - OpBranch %89 - %90 = OpLabel - %l_a_3_a = OpLoad %_arr_Inner_uint_4 %83 None - %104 = OpLoad %Inner_std140 %24 None - %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %104 + %63 = OpLoad %Outer_std140_tint_explicit_layout %19 None + %64 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %63 + %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %64 + %68 = OpLoad %_arr_Inner_std140_uint_4 %22 None + %69 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %68 + OpStore %71 %69 + OpBranch %76 + %76 = OpLabel + OpBranch %79 + %79 = OpLabel + %81 = OpPhi %uint %uint_0 %76 %82 %78 + OpLoopMerge %80 %78 None + OpBranch %77 + %77 = OpLabel + %98 = OpUGreaterThanEqual %bool %81 %uint_4 + OpSelectionMerge %99 None + OpBranchConditional %98 %100 %99 + %100 = OpLabel + OpBranch %80 + %99 = OpLabel + %101 = OpAccessChain %_ptr_Function_Inner %73 %81 + %103 = OpAccessChain %_ptr_Function_Inner_std140 %71 %81 + %105 = OpLoad %Inner_std140 %103 None + %106 = OpFunctionCall %Inner %tint_convert_Inner %105 + OpStore %101 %106 None + OpBranch %78 + %78 = OpLabel + %82 = OpIAdd %uint %81 %uint_1 + OpBranch %79 + %80 = OpLabel + %l_a_3_a = OpLoad %_arr_Inner_uint_4 %73 None + %84 = OpLoad %Inner_std140 %24 None + %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %84 %l_a_3_a_2_m_1_0 = OpCompositeExtract %half %l_a_3_a_2_m_1 0 OpReturn OpFunctionEnd @@ -205,7 +205,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %118 = OpLabel %120 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %121 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %85 + %121 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %75 %119 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %120 %119 OpBranch %122 @@ -216,25 +216,25 @@ OpLoopMerge %126 %124 None OpBranch %123 %123 = OpLabel - %129 = OpUGreaterThanEqual %bool %127 %uint_4 - OpSelectionMerge %130 None - OpBranchConditional %129 %131 %130 - %131 = OpLabel + %131 = OpUGreaterThanEqual %bool %127 %uint_4 + OpSelectionMerge %132 None + OpBranchConditional %131 %133 %132 + %133 = OpLabel OpBranch %126 - %130 = OpLabel - %132 = OpAccessChain %_ptr_Function_Inner %121 %127 - %133 = OpAccessChain %_ptr_Function_Inner_std140 %120 %127 - %134 = OpLoad %Inner_std140 %133 None - %135 = OpFunctionCall %Inner %tint_convert_Inner %134 - OpStore %132 %135 None + %132 = OpLabel + %134 = OpAccessChain %_ptr_Function_Inner %121 %127 + %135 = OpAccessChain %_ptr_Function_Inner_std140 %120 %127 + %136 = OpLoad %Inner_std140 %135 None + %137 = OpFunctionCall %Inner %tint_convert_Inner %136 + OpStore %134 %137 None OpBranch %124 %124 = OpLabel %128 = OpIAdd %uint %127 %uint_1 OpBranch %125 %126 = OpLabel - %136 = OpLoad %_arr_Inner_uint_4 %121 None - %137 = OpCompositeConstruct %Outer %136 - OpReturnValue %137 + %129 = OpLoad %_arr_Inner_uint_4 %121 None + %130 = OpCompositeConstruct %Outer %129 + OpReturnValue %130 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %139 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -250,23 +250,23 @@ OpLoopMerge %149 %147 None OpBranch %146 %146 = OpLabel - %152 = OpUGreaterThanEqual %bool %150 %uint_4 - OpSelectionMerge %153 None - OpBranchConditional %152 %154 %153 - %154 = OpLabel + %153 = OpUGreaterThanEqual %bool %150 %uint_4 + OpSelectionMerge %154 None + OpBranchConditional %153 %155 %154 + %155 = OpLabel OpBranch %149 - %153 = OpLabel - %155 = OpAccessChain %_ptr_Function_Inner_std140 %141 %150 - %156 = OpLoad %Inner_std140 %155 None - %157 = OpAccessChain %_ptr_Function_Inner_std140 %143 %150 - OpStore %157 %156 None + %154 = OpLabel + %156 = OpAccessChain %_ptr_Function_Inner_std140 %141 %150 + %157 = OpLoad %Inner_std140 %156 None + %158 = OpAccessChain %_ptr_Function_Inner_std140 %143 %150 + OpStore %158 %157 None OpBranch %147 %147 = OpLabel %151 = OpIAdd %uint %150 %uint_1 OpBranch %148 %149 = OpLabel - %158 = OpLoad %_arr_Inner_std140_uint_4_0 %143 None - OpReturnValue %158 + %152 = OpLoad %_arr_Inner_std140_uint_4_0 %143 None + OpReturnValue %152 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %160 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -290,22 +290,22 @@ OpLoopMerge %176 %174 None OpBranch %173 %173 = OpLabel - %179 = OpUGreaterThanEqual %bool %177 %uint_4 - OpSelectionMerge %180 None - OpBranchConditional %179 %181 %180 - %181 = OpLabel + %180 = OpUGreaterThanEqual %bool %177 %uint_4 + OpSelectionMerge %181 None + OpBranchConditional %180 %182 %181 + %182 = OpLabel OpBranch %176 - %180 = OpLabel - %182 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %168 %177 - %184 = OpLoad %Outer_std140_tint_explicit_layout %182 None - %185 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %184 - %186 = OpAccessChain %_ptr_Function_Outer_std140 %170 %177 - OpStore %186 %185 None + %181 = OpLabel + %183 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %168 %177 + %185 = OpLoad %Outer_std140_tint_explicit_layout %183 None + %186 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %185 + %187 = OpAccessChain %_ptr_Function_Outer_std140 %170 %177 + OpStore %187 %186 None OpBranch %174 %174 = OpLabel %178 = OpIAdd %uint %177 %uint_1 OpBranch %175 %176 = OpLabel - %187 = OpLoad %_arr_Outer_std140_uint_4 %170 None - OpReturnValue %187 + %179 = OpLoad %_arr_Outer_std140_uint_4 %170 None + OpReturnValue %179 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.spvasm index 165b357..d4447e3 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.spvasm
@@ -76,14 +76,14 @@ %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %49 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Uniform_v3half = OpTypePointer Uniform %v3half + %uint_1 = OpConstant %uint 1 %uint_3 = OpConstant %uint 3 + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %99 = OpTypeFunction %S %S_std140 %110 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -129,47 +129,47 @@ OpLoopMerge %54 %52 None OpBranch %51 %51 = OpLabel - %57 = OpUGreaterThanEqual %bool %55 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel + %88 = OpUGreaterThanEqual %bool %55 %uint_4 + OpSelectionMerge %90 None + OpBranchConditional %88 %91 %90 + %91 = OpLabel OpBranch %54 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_S %47 %55 - %63 = OpAccessChain %_ptr_Function_S_std140 %45 %55 - %65 = OpLoad %S_std140 %63 None - %66 = OpFunctionCall %S %tint_convert_S %65 - OpStore %61 %66 None + %90 = OpLabel + %92 = OpAccessChain %_ptr_Function_S %47 %55 + %94 = OpAccessChain %_ptr_Function_S_std140 %45 %55 + %96 = OpLoad %S_std140 %94 None + %97 = OpFunctionCall %S %tint_convert_S %96 + OpStore %92 %97 None OpBranch %52 %52 = OpLabel %56 = OpIAdd %uint %55 %uint_1 OpBranch %53 %54 = OpLabel - %69 = OpLoad %_arr_S_uint_4 %47 None - %70 = OpFunctionCall %void %a %69 - %71 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %71 None - %75 = OpFunctionCall %S %tint_convert_S %74 - %76 = OpFunctionCall %void %b %75 - %77 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 - %79 = OpLoad %v3half %77 None - %80 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 - %81 = OpLoad %v3half %80 None - %82 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_3 - %84 = OpLoad %v3half %82 None - %85 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_4 - %86 = OpLoad %v3half %85 None - %87 = OpCompositeConstruct %mat4v3half %79 %81 %84 %86 - %88 = OpFunctionCall %void %c %87 - %89 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 - %90 = OpLoad %v3half %89 None - %91 = OpVectorShuffle %v3half %90 %90 2 0 1 - %92 = OpFunctionCall %void %d %91 - %93 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 - %94 = OpLoad %v3half %93 None - %95 = OpVectorShuffle %v3half %94 %94 2 0 1 - %96 = OpCompositeExtract %half %95 0 - %97 = OpFunctionCall %void %e %96 + %57 = OpLoad %_arr_S_uint_4 %47 None + %58 = OpFunctionCall %void %a %57 + %59 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %62 = OpLoad %S_std140 %59 None + %63 = OpFunctionCall %S %tint_convert_S %62 + %65 = OpFunctionCall %void %b %63 + %66 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 + %69 = OpLoad %v3half %66 None + %70 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 + %71 = OpLoad %v3half %70 None + %72 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_3 + %74 = OpLoad %v3half %72 None + %75 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_4 + %76 = OpLoad %v3half %75 None + %77 = OpCompositeConstruct %mat4v3half %69 %71 %74 %76 + %78 = OpFunctionCall %void %c %77 + %79 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 + %80 = OpLoad %v3half %79 None + %81 = OpVectorShuffle %v3half %80 %80 2 0 1 + %82 = OpFunctionCall %void %d %81 + %83 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 + %84 = OpLoad %v3half %83 None + %85 = OpVectorShuffle %v3half %84 %84 2 0 1 + %86 = OpCompositeExtract %half %85 0 + %87 = OpFunctionCall %void %e %86 OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %99 @@ -199,21 +199,21 @@ OpLoopMerge %120 %118 None OpBranch %117 %117 = OpLabel - %123 = OpUGreaterThanEqual %bool %121 %uint_4 - OpSelectionMerge %124 None - OpBranchConditional %123 %125 %124 - %125 = OpLabel + %124 = OpUGreaterThanEqual %bool %121 %uint_4 + OpSelectionMerge %125 None + OpBranchConditional %124 %126 %125 + %126 = OpLabel OpBranch %120 - %124 = OpLabel - %126 = OpAccessChain %_ptr_Function_S_std140 %112 %121 - %127 = OpLoad %S_std140 %126 None - %128 = OpAccessChain %_ptr_Function_S_std140 %114 %121 - OpStore %128 %127 None + %125 = OpLabel + %127 = OpAccessChain %_ptr_Function_S_std140 %112 %121 + %128 = OpLoad %S_std140 %127 None + %129 = OpAccessChain %_ptr_Function_S_std140 %114 %121 + OpStore %129 %128 None OpBranch %118 %118 = OpLabel %122 = OpIAdd %uint %121 %uint_1 OpBranch %119 %120 = OpLabel - %129 = OpLoad %_arr_S_std140_uint_4_0 %114 None - OpReturnValue %129 + %123 = OpLoad %_arr_S_std140_uint_4_0 %114 None + OpReturnValue %123 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.spvasm index 61e0cac..462e372 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.spvasm
@@ -64,17 +64,17 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Private_S = OpTypePointer Private %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Private_mat4v3half = OpTypePointer Private %mat4v3half %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v3half = OpTypePointer Uniform %v3half %_ptr_Private_v3half = OpTypePointer Private %v3half + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %78 = OpTypeFunction %S %S_std140 %89 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -95,45 +95,45 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_4 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %67 = OpUGreaterThanEqual %bool %37 %uint_4 + OpSelectionMerge %69 None + OpBranchConditional %67 %70 %69 + %70 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Function_S %30 %37 - %45 = OpAccessChain %_ptr_Function_S_std140 %28 %37 - %47 = OpLoad %S_std140 %45 None - %48 = OpFunctionCall %S %tint_convert_S %47 - OpStore %43 %48 None + %69 = OpLabel + %71 = OpAccessChain %_ptr_Function_S %30 %37 + %73 = OpAccessChain %_ptr_Function_S_std140 %28 %37 + %75 = OpLoad %S_std140 %73 None + %76 = OpFunctionCall %S %tint_convert_S %75 + OpStore %71 %76 None OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel - %51 = OpLoad %_arr_S_uint_4 %30 None - OpStore %p %51 None - %52 = OpAccessChain %_ptr_Private_S %p %uint_1 - %54 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %57 = OpLoad %S_std140 %54 None - %58 = OpFunctionCall %S %tint_convert_S %57 - OpStore %52 %58 None - %59 = OpAccessChain %_ptr_Private_mat4v3half %p %uint_3 %uint_1 - %62 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 - %64 = OpLoad %v3half %62 None - %65 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 - %66 = OpLoad %v3half %65 None - %67 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_3 - %68 = OpLoad %v3half %67 None - %69 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_4 - %70 = OpLoad %v3half %69 None - %71 = OpCompositeConstruct %mat4v3half %64 %66 %68 %70 - OpStore %59 %71 None - %72 = OpAccessChain %_ptr_Private_v3half %p %uint_1 %uint_1 %uint_0 - %74 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 - %75 = OpLoad %v3half %74 None - %76 = OpVectorShuffle %v3half %75 %75 2 0 1 - OpStore %72 %76 None + %39 = OpLoad %_arr_S_uint_4 %30 None + OpStore %p %39 None + %40 = OpAccessChain %_ptr_Private_S %p %uint_1 + %43 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %46 = OpLoad %S_std140 %43 None + %47 = OpFunctionCall %S %tint_convert_S %46 + OpStore %40 %47 None + %49 = OpAccessChain %_ptr_Private_mat4v3half %p %uint_3 %uint_1 + %52 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 + %54 = OpLoad %v3half %52 None + %55 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 + %56 = OpLoad %v3half %55 None + %57 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_3 + %58 = OpLoad %v3half %57 None + %59 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_4 + %60 = OpLoad %v3half %59 None + %61 = OpCompositeConstruct %mat4v3half %54 %56 %58 %60 + OpStore %49 %61 None + %62 = OpAccessChain %_ptr_Private_v3half %p %uint_1 %uint_1 %uint_0 + %64 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 + %65 = OpLoad %v3half %64 None + %66 = OpVectorShuffle %v3half %65 %65 2 0 1 + OpStore %62 %66 None OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %78 @@ -163,21 +163,21 @@ OpLoopMerge %99 %97 None OpBranch %96 %96 = OpLabel - %102 = OpUGreaterThanEqual %bool %100 %uint_4 - OpSelectionMerge %103 None - OpBranchConditional %102 %104 %103 - %104 = OpLabel + %103 = OpUGreaterThanEqual %bool %100 %uint_4 + OpSelectionMerge %104 None + OpBranchConditional %103 %105 %104 + %105 = OpLabel OpBranch %99 - %103 = OpLabel - %105 = OpAccessChain %_ptr_Function_S_std140 %91 %100 - %106 = OpLoad %S_std140 %105 None - %107 = OpAccessChain %_ptr_Function_S_std140 %93 %100 - OpStore %107 %106 None + %104 = OpLabel + %106 = OpAccessChain %_ptr_Function_S_std140 %91 %100 + %107 = OpLoad %S_std140 %106 None + %108 = OpAccessChain %_ptr_Function_S_std140 %93 %100 + OpStore %108 %107 None OpBranch %97 %97 = OpLabel %101 = OpIAdd %uint %100 %uint_1 OpBranch %98 %99 = OpLabel - %108 = OpLoad %_arr_S_std140_uint_4_0 %93 None - OpReturnValue %108 + %102 = OpLoad %_arr_S_std140_uint_4_0 %93 None + OpReturnValue %102 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_storage.wgsl.expected.spvasm index 7279a2e..f12bdd1 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_storage.wgsl.expected.spvasm
@@ -91,16 +91,16 @@ %_arr_S_uint_4 = OpTypeArray %S %uint_4 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %34 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 + %uint_1 = OpConstant %uint 1 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1 %_ptr_Uniform_v3half = OpTypePointer Uniform %v3half %uint_3 = OpConstant %uint 3 %_ptr_StorageBuffer_v3half = OpTypePointer StorageBuffer %v3half + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %86 = OpTypeFunction %void %_arr_S_uint_4 %105 = OpTypeFunction %void %_arr_uint_uint_1 %S %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int @@ -125,45 +125,45 @@ OpLoopMerge %39 %37 None OpBranch %36 %36 = OpLabel - %42 = OpUGreaterThanEqual %bool %40 %uint_4 - OpSelectionMerge %44 None - OpBranchConditional %42 %45 %44 - %45 = OpLabel + %75 = OpUGreaterThanEqual %bool %40 %uint_4 + OpSelectionMerge %77 None + OpBranchConditional %75 %78 %77 + %78 = OpLabel OpBranch %39 - %44 = OpLabel - %46 = OpAccessChain %_ptr_Function_S %30 %40 - %48 = OpAccessChain %_ptr_Function_S_std140 %28 %40 - %50 = OpLoad %S_std140 %48 None - %51 = OpFunctionCall %S %tint_convert_S %50 - OpStore %46 %51 None + %77 = OpLabel + %79 = OpAccessChain %_ptr_Function_S %30 %40 + %81 = OpAccessChain %_ptr_Function_S_std140 %28 %40 + %83 = OpLoad %S_std140 %81 None + %84 = OpFunctionCall %S %tint_convert_S %83 + OpStore %79 %84 None OpBranch %37 %37 = OpLabel %41 = OpIAdd %uint %40 %uint_1 OpBranch %38 %39 = OpLabel - %54 = OpLoad %_arr_S_uint_4 %30 None - %55 = OpFunctionCall %void %tint_store_and_preserve_padding %54 - %57 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %60 = OpLoad %S_std140 %57 None - %61 = OpFunctionCall %S %tint_convert_S %60 - %63 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 - %64 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %63 %61 - %66 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 - %68 = OpLoad %v3half %66 None - %69 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 - %70 = OpLoad %v3half %69 None - %71 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_3 - %73 = OpLoad %v3half %71 None - %74 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_4 - %75 = OpLoad %v3half %74 None - %76 = OpCompositeConstruct %mat4v3half %68 %70 %73 %75 - %77 = OpCompositeConstruct %_arr_uint_uint_1 %uint_3 - %78 = OpFunctionCall %void %tint_store_and_preserve_padding_1 %77 %76 - %80 = OpAccessChain %_ptr_StorageBuffer_v3half %11 %uint_0 %uint_1 %uint_1 %uint_0 - %82 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 - %83 = OpLoad %v3half %82 None - %84 = OpVectorShuffle %v3half %83 %83 2 0 1 - OpStore %80 %84 None + %42 = OpLoad %_arr_S_uint_4 %30 None + %43 = OpFunctionCall %void %tint_store_and_preserve_padding %42 + %45 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %48 = OpLoad %S_std140 %45 None + %49 = OpFunctionCall %S %tint_convert_S %48 + %53 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 + %54 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %53 %49 + %56 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 + %58 = OpLoad %v3half %56 None + %59 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 + %60 = OpLoad %v3half %59 None + %61 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_3 + %63 = OpLoad %v3half %61 None + %64 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_4 + %65 = OpLoad %v3half %64 None + %66 = OpCompositeConstruct %mat4v3half %58 %60 %63 %65 + %67 = OpCompositeConstruct %_arr_uint_uint_1 %uint_3 + %68 = OpFunctionCall %void %tint_store_and_preserve_padding_1 %67 %66 + %70 = OpAccessChain %_ptr_StorageBuffer_v3half %11 %uint_0 %uint_1 %uint_1 %uint_0 + %72 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 + %73 = OpLoad %v3half %72 None + %74 = OpVectorShuffle %v3half %73 %73 2 0 1 + OpStore %70 %74 None OpReturn OpFunctionEnd %tint_store_and_preserve_padding = OpFunction %void None %86 @@ -258,21 +258,21 @@ OpLoopMerge %151 %149 None OpBranch %148 %148 = OpLabel - %154 = OpUGreaterThanEqual %bool %152 %uint_4 - OpSelectionMerge %155 None - OpBranchConditional %154 %156 %155 - %156 = OpLabel + %155 = OpUGreaterThanEqual %bool %152 %uint_4 + OpSelectionMerge %156 None + OpBranchConditional %155 %157 %156 + %157 = OpLabel OpBranch %151 - %155 = OpLabel - %157 = OpAccessChain %_ptr_Function_S_std140 %143 %152 - %158 = OpLoad %S_std140 %157 None - %159 = OpAccessChain %_ptr_Function_S_std140 %145 %152 - OpStore %159 %158 None + %156 = OpLabel + %158 = OpAccessChain %_ptr_Function_S_std140 %143 %152 + %159 = OpLoad %S_std140 %158 None + %160 = OpAccessChain %_ptr_Function_S_std140 %145 %152 + OpStore %160 %159 None OpBranch %149 %149 = OpLabel %153 = OpIAdd %uint %152 %uint_1 OpBranch %150 %151 = OpLabel - %160 = OpLoad %_arr_S_std140_uint_4_0 %145 None - OpReturnValue %160 + %154 = OpLoad %_arr_S_std140_uint_4_0 %145 None + OpReturnValue %154 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.spvasm index 4f62eae..6372e6f 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.spvasm
@@ -64,10 +64,6 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %21 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_S = OpTypePointer Workgroup %S - %36 = OpConstantNull %S - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_S_std140_uint_4 = OpTypePointer Uniform %_arr_S_std140_uint_4 @@ -75,14 +71,18 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %52 = OpConstantNull %_arr_S_uint_4 -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 + %44 = OpConstantNull %_arr_S_uint_4 +%_ptr_Workgroup_S = OpTypePointer Workgroup %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %_ptr_Workgroup_mat4v3half = OpTypePointer Workgroup %mat4v3half %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v3half = OpTypePointer Uniform %v3half %_ptr_Workgroup_v3half = OpTypePointer Workgroup %v3half + %bool = OpTypeBool + %84 = OpConstantNull %S +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %95 = OpTypeFunction %void %100 = OpTypeFunction %S %S_std140 %111 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 @@ -91,8 +91,8 @@ %f_inner = OpFunction %void None %21 %tint_local_index = OpFunctionParameter %uint %22 = OpLabel - %48 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function - %50 = OpVariable %_ptr_Function__arr_S_uint_4 Function %52 + %40 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function + %42 = OpVariable %_ptr_Function__arr_S_uint_4 Function %44 OpBranch %23 %23 = OpLabel OpBranch %26 @@ -101,71 +101,71 @@ OpLoopMerge %27 %25 None OpBranch %24 %24 = OpLabel - %30 = OpUGreaterThanEqual %bool %28 %uint_4 - OpSelectionMerge %32 None - OpBranchConditional %30 %33 %32 - %33 = OpLabel + %79 = OpUGreaterThanEqual %bool %28 %uint_4 + OpSelectionMerge %81 None + OpBranchConditional %79 %82 %81 + %82 = OpLabel OpBranch %27 - %32 = OpLabel - %34 = OpAccessChain %_ptr_Workgroup_S %w %28 - OpStore %34 %36 None + %81 = OpLabel + %83 = OpAccessChain %_ptr_Workgroup_S %w %28 + OpStore %83 %84 None OpBranch %25 %25 = OpLabel %29 = OpIAdd %uint %28 %uint_1 OpBranch %26 %27 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %41 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 - %44 = OpLoad %_arr_S_std140_uint_4 %41 None - %45 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %44 - OpStore %48 %45 - OpBranch %53 - %53 = OpLabel - OpBranch %56 - %56 = OpLabel - %58 = OpPhi %uint %uint_0 %53 %59 %55 - OpLoopMerge %57 %55 None - OpBranch %54 - %54 = OpLabel - %60 = OpUGreaterThanEqual %bool %58 %uint_4 - OpSelectionMerge %61 None - OpBranchConditional %60 %62 %61 - %62 = OpLabel - OpBranch %57 - %61 = OpLabel - %63 = OpAccessChain %_ptr_Function_S %50 %58 - %65 = OpAccessChain %_ptr_Function_S_std140 %48 %58 - %67 = OpLoad %S_std140 %65 None - %68 = OpFunctionCall %S %tint_convert_S %67 - OpStore %63 %68 None - OpBranch %55 - %55 = OpLabel - %59 = OpIAdd %uint %58 %uint_1 - OpBranch %56 - %57 = OpLabel - %70 = OpLoad %_arr_S_uint_4 %50 None - OpStore %w %70 None - %71 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 - %72 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %72 None - %75 = OpFunctionCall %S %tint_convert_S %74 - OpStore %71 %75 None - %76 = OpAccessChain %_ptr_Workgroup_mat4v3half %w %uint_3 %uint_1 - %79 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 - %81 = OpLoad %v3half %79 None - %82 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 - %83 = OpLoad %v3half %82 None - %84 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_3 - %85 = OpLoad %v3half %84 None - %86 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_4 - %87 = OpLoad %v3half %86 None - %88 = OpCompositeConstruct %mat4v3half %81 %83 %85 %87 - OpStore %76 %88 None - %89 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 %uint_1 %uint_0 - %91 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 - %92 = OpLoad %v3half %91 None - %93 = OpVectorShuffle %v3half %92 %92 2 0 1 - OpStore %89 %93 None + %33 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 + %36 = OpLoad %_arr_S_std140_uint_4 %33 None + %37 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %36 + OpStore %40 %37 + OpBranch %45 + %45 = OpLabel + OpBranch %48 + %48 = OpLabel + %50 = OpPhi %uint %uint_0 %45 %51 %47 + OpLoopMerge %49 %47 None + OpBranch %46 + %46 = OpLabel + %85 = OpUGreaterThanEqual %bool %50 %uint_4 + OpSelectionMerge %86 None + OpBranchConditional %85 %87 %86 + %87 = OpLabel + OpBranch %49 + %86 = OpLabel + %88 = OpAccessChain %_ptr_Function_S %42 %50 + %90 = OpAccessChain %_ptr_Function_S_std140 %40 %50 + %92 = OpLoad %S_std140 %90 None + %93 = OpFunctionCall %S %tint_convert_S %92 + OpStore %88 %93 None + OpBranch %47 + %47 = OpLabel + %51 = OpIAdd %uint %50 %uint_1 + OpBranch %48 + %49 = OpLabel + %52 = OpLoad %_arr_S_uint_4 %42 None + OpStore %w %52 None + %53 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 + %56 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %58 = OpLoad %S_std140 %56 None + %59 = OpFunctionCall %S %tint_convert_S %58 + OpStore %53 %59 None + %61 = OpAccessChain %_ptr_Workgroup_mat4v3half %w %uint_3 %uint_1 + %64 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_1 + %66 = OpLoad %v3half %64 None + %67 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_2 + %68 = OpLoad %v3half %67 None + %69 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_3 + %70 = OpLoad %v3half %69 None + %71 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_2 %uint_4 + %72 = OpLoad %v3half %71 None + %73 = OpCompositeConstruct %mat4v3half %66 %68 %70 %72 + OpStore %61 %73 None + %74 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 %uint_1 %uint_0 + %76 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 %uint_0 %uint_2 + %77 = OpLoad %v3half %76 None + %78 = OpVectorShuffle %v3half %77 %77 2 0 1 + OpStore %74 %78 None OpReturn OpFunctionEnd %f = OpFunction %void None %95 @@ -201,21 +201,21 @@ OpLoopMerge %121 %119 None OpBranch %118 %118 = OpLabel - %124 = OpUGreaterThanEqual %bool %122 %uint_4 - OpSelectionMerge %125 None - OpBranchConditional %124 %126 %125 - %126 = OpLabel + %125 = OpUGreaterThanEqual %bool %122 %uint_4 + OpSelectionMerge %126 None + OpBranchConditional %125 %127 %126 + %127 = OpLabel OpBranch %121 - %125 = OpLabel - %127 = OpAccessChain %_ptr_Function_S_std140 %113 %122 - %128 = OpLoad %S_std140 %127 None - %129 = OpAccessChain %_ptr_Function_S_std140 %115 %122 - OpStore %129 %128 None + %126 = OpLabel + %128 = OpAccessChain %_ptr_Function_S_std140 %113 %122 + %129 = OpLoad %S_std140 %128 None + %130 = OpAccessChain %_ptr_Function_S_std140 %115 %122 + OpStore %130 %129 None OpBranch %119 %119 = OpLabel %123 = OpIAdd %uint %122 %uint_1 OpBranch %120 %121 = OpLabel - %130 = OpLoad %_arr_S_std140_uint_4_0 %115 None - OpReturnValue %130 + %124 = OpLoad %_arr_S_std140_uint_4_0 %115 None + OpReturnValue %124 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.spvasm index 2c62835..b9f8b6a 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -96,12 +96,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %79 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %100 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %110 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %136 = OpTypeFunction %Inner %Inner_std140 @@ -127,8 +127,8 @@ %57 = OpVariable %_ptr_Function_mat4v3float Function %71 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %73 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %79 - %106 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %108 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %110 + %96 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %98 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %100 %27 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %30 = OpFunctionCall %int %i %31 = OpBitcast %uint %30 @@ -165,60 +165,60 @@ OpLoopMerge %84 %82 None OpBranch %81 %81 = OpLabel - %87 = OpUGreaterThanEqual %bool %85 %uint_4 - OpSelectionMerge %89 None - OpBranchConditional %87 %90 %89 - %90 = OpLabel + %116 = OpUGreaterThanEqual %bool %85 %uint_4 + OpSelectionMerge %118 None + OpBranchConditional %116 %119 %118 + %119 = OpLabel OpBranch %84 - %89 = OpLabel - %91 = OpAccessChain %_ptr_Function_Outer %73 %85 - %93 = OpAccessChain %_ptr_Function_Outer_std140 %71 %85 - %95 = OpLoad %Outer_std140 %93 None - %96 = OpFunctionCall %Outer %tint_convert_Outer %95 - OpStore %91 %96 None + %118 = OpLabel + %120 = OpAccessChain %_ptr_Function_Outer %73 %85 + %122 = OpAccessChain %_ptr_Function_Outer_std140 %71 %85 + %124 = OpLoad %Outer_std140 %122 None + %125 = OpFunctionCall %Outer %tint_convert_Outer %124 + OpStore %120 %125 None OpBranch %82 %82 = OpLabel %86 = OpIAdd %uint %85 %uint_1 OpBranch %83 %84 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %73 None - %99 = OpLoad %Outer_std140_tint_explicit_layout %35 None - %100 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %99 - %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %100 - %103 = OpLoad %_arr_Inner_std140_uint_4 %37 None - %104 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %103 - OpStore %106 %104 - OpBranch %111 - %111 = OpLabel - OpBranch %114 - %114 = OpLabel - %116 = OpPhi %uint %uint_0 %111 %117 %113 - OpLoopMerge %115 %113 None - OpBranch %112 - %112 = OpLabel - %118 = OpUGreaterThanEqual %bool %116 %uint_4 - OpSelectionMerge %119 None - OpBranchConditional %118 %120 %119 - %120 = OpLabel - OpBranch %115 - %119 = OpLabel - %121 = OpAccessChain %_ptr_Function_Inner %108 %116 - %123 = OpAccessChain %_ptr_Function_Inner_std140 %106 %116 - %125 = OpLoad %Inner_std140 %123 None - %126 = OpFunctionCall %Inner %tint_convert_Inner %125 - OpStore %121 %126 None - OpBranch %113 - %113 = OpLabel - %117 = OpIAdd %uint %116 %uint_1 - OpBranch %114 - %115 = OpLabel - %l_a_i_a = OpLoad %_arr_Inner_uint_4 %108 None - %129 = OpLoad %Inner_std140 %42 None - %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %129 - %131 = OpFunctionCall %int %i - %132 = OpBitcast %uint %131 - %133 = OpExtInst %uint %33 UMin %132 %uint_2 -%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %float %l_a_i_a_i_m_i %133 + %88 = OpLoad %Outer_std140_tint_explicit_layout %35 None + %89 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %88 + %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %89 + %93 = OpLoad %_arr_Inner_std140_uint_4 %37 None + %94 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %93 + OpStore %96 %94 + OpBranch %101 + %101 = OpLabel + OpBranch %104 + %104 = OpLabel + %106 = OpPhi %uint %uint_0 %101 %107 %103 + OpLoopMerge %105 %103 None + OpBranch %102 + %102 = OpLabel + %126 = OpUGreaterThanEqual %bool %106 %uint_4 + OpSelectionMerge %127 None + OpBranchConditional %126 %128 %127 + %128 = OpLabel + OpBranch %105 + %127 = OpLabel + %129 = OpAccessChain %_ptr_Function_Inner %98 %106 + %131 = OpAccessChain %_ptr_Function_Inner_std140 %96 %106 + %133 = OpLoad %Inner_std140 %131 None + %134 = OpFunctionCall %Inner %tint_convert_Inner %133 + OpStore %129 %134 None + OpBranch %103 + %103 = OpLabel + %107 = OpIAdd %uint %106 %uint_1 + OpBranch %104 + %105 = OpLabel + %l_a_i_a = OpLoad %_arr_Inner_uint_4 %98 None + %109 = OpLoad %Inner_std140 %42 None + %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %109 + %112 = OpFunctionCall %int %i + %113 = OpBitcast %uint %112 + %114 = OpExtInst %uint %33 UMin %113 %uint_2 +%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %float %l_a_i_a_i_m_i %114 OpReturn OpFunctionEnd %tint_convert_Inner = OpFunction %Inner None %136 @@ -236,7 +236,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %146 = OpLabel %148 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %149 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %110 + %149 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %100 %147 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %148 %147 OpBranch %150 @@ -247,25 +247,25 @@ OpLoopMerge %154 %152 None OpBranch %151 %151 = OpLabel - %157 = OpUGreaterThanEqual %bool %155 %uint_4 - OpSelectionMerge %158 None - OpBranchConditional %157 %159 %158 - %159 = OpLabel + %159 = OpUGreaterThanEqual %bool %155 %uint_4 + OpSelectionMerge %160 None + OpBranchConditional %159 %161 %160 + %161 = OpLabel OpBranch %154 - %158 = OpLabel - %160 = OpAccessChain %_ptr_Function_Inner %149 %155 - %161 = OpAccessChain %_ptr_Function_Inner_std140 %148 %155 - %162 = OpLoad %Inner_std140 %161 None - %163 = OpFunctionCall %Inner %tint_convert_Inner %162 - OpStore %160 %163 None + %160 = OpLabel + %162 = OpAccessChain %_ptr_Function_Inner %149 %155 + %163 = OpAccessChain %_ptr_Function_Inner_std140 %148 %155 + %164 = OpLoad %Inner_std140 %163 None + %165 = OpFunctionCall %Inner %tint_convert_Inner %164 + OpStore %162 %165 None OpBranch %152 %152 = OpLabel %156 = OpIAdd %uint %155 %uint_1 OpBranch %153 %154 = OpLabel - %164 = OpLoad %_arr_Inner_uint_4 %149 None - %165 = OpCompositeConstruct %Outer %164 - OpReturnValue %165 + %157 = OpLoad %_arr_Inner_uint_4 %149 None + %158 = OpCompositeConstruct %Outer %157 + OpReturnValue %158 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %167 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -281,23 +281,23 @@ OpLoopMerge %177 %175 None OpBranch %174 %174 = OpLabel - %180 = OpUGreaterThanEqual %bool %178 %uint_4 - OpSelectionMerge %181 None - OpBranchConditional %180 %182 %181 - %182 = OpLabel + %181 = OpUGreaterThanEqual %bool %178 %uint_4 + OpSelectionMerge %182 None + OpBranchConditional %181 %183 %182 + %183 = OpLabel OpBranch %177 - %181 = OpLabel - %183 = OpAccessChain %_ptr_Function_Inner_std140 %169 %178 - %184 = OpLoad %Inner_std140 %183 None - %185 = OpAccessChain %_ptr_Function_Inner_std140 %171 %178 - OpStore %185 %184 None + %182 = OpLabel + %184 = OpAccessChain %_ptr_Function_Inner_std140 %169 %178 + %185 = OpLoad %Inner_std140 %184 None + %186 = OpAccessChain %_ptr_Function_Inner_std140 %171 %178 + OpStore %186 %185 None OpBranch %175 %175 = OpLabel %179 = OpIAdd %uint %178 %uint_1 OpBranch %176 %177 = OpLabel - %186 = OpLoad %_arr_Inner_std140_uint_4_0 %171 None - OpReturnValue %186 + %180 = OpLoad %_arr_Inner_std140_uint_4_0 %171 None + OpReturnValue %180 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %188 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -321,22 +321,22 @@ OpLoopMerge %204 %202 None OpBranch %201 %201 = OpLabel - %207 = OpUGreaterThanEqual %bool %205 %uint_4 - OpSelectionMerge %208 None - OpBranchConditional %207 %209 %208 - %209 = OpLabel + %208 = OpUGreaterThanEqual %bool %205 %uint_4 + OpSelectionMerge %209 None + OpBranchConditional %208 %210 %209 + %210 = OpLabel OpBranch %204 - %208 = OpLabel - %210 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %196 %205 - %212 = OpLoad %Outer_std140_tint_explicit_layout %210 None - %213 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %212 - %214 = OpAccessChain %_ptr_Function_Outer_std140 %198 %205 - OpStore %214 %213 None + %209 = OpLabel + %211 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %196 %205 + %213 = OpLoad %Outer_std140_tint_explicit_layout %211 None + %214 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %213 + %215 = OpAccessChain %_ptr_Function_Outer_std140 %198 %205 + OpStore %215 %214 None OpBranch %202 %202 = OpLabel %206 = OpIAdd %uint %205 %uint_1 OpBranch %203 %204 = OpLabel - %215 = OpLoad %_arr_Outer_std140_uint_4 %198 None - OpReturnValue %215 + %207 = OpLoad %_arr_Outer_std140_uint_4 %198 None + OpReturnValue %207 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.spvasm index bd750ed..3bcdb58 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.spvasm
@@ -85,12 +85,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %54 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %75 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %85 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %108 = OpTypeFunction %Inner %Inner_std140 @@ -107,8 +107,8 @@ %15 = OpLabel %46 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %48 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %54 - %81 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %83 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %85 + %71 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %73 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %75 %16 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %19 = OpAccessChain %_ptr_Uniform_Outer_std140_tint_explicit_layout %16 %uint_3 %22 = OpAccessChain %_ptr_Uniform__arr_Inner_std140_uint_4 %19 %uint_0 @@ -134,56 +134,56 @@ OpLoopMerge %59 %57 None OpBranch %56 %56 = OpLabel - %62 = OpUGreaterThanEqual %bool %60 %uint_4 - OpSelectionMerge %64 None - OpBranchConditional %62 %65 %64 - %65 = OpLabel + %88 = OpUGreaterThanEqual %bool %60 %uint_4 + OpSelectionMerge %90 None + OpBranchConditional %88 %91 %90 + %91 = OpLabel OpBranch %59 - %64 = OpLabel - %66 = OpAccessChain %_ptr_Function_Outer %48 %60 - %68 = OpAccessChain %_ptr_Function_Outer_std140 %46 %60 - %70 = OpLoad %Outer_std140 %68 None - %71 = OpFunctionCall %Outer %tint_convert_Outer %70 - OpStore %66 %71 None + %90 = OpLabel + %92 = OpAccessChain %_ptr_Function_Outer %48 %60 + %94 = OpAccessChain %_ptr_Function_Outer_std140 %46 %60 + %96 = OpLoad %Outer_std140 %94 None + %97 = OpFunctionCall %Outer %tint_convert_Outer %96 + OpStore %92 %97 None OpBranch %57 %57 = OpLabel %61 = OpIAdd %uint %60 %uint_1 OpBranch %58 %59 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %48 None - %74 = OpLoad %Outer_std140_tint_explicit_layout %19 None - %75 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %74 - %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %75 - %78 = OpLoad %_arr_Inner_std140_uint_4 %22 None - %79 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %78 - OpStore %81 %79 - OpBranch %86 - %86 = OpLabel - OpBranch %89 - %89 = OpLabel - %91 = OpPhi %uint %uint_0 %86 %92 %88 - OpLoopMerge %90 %88 None - OpBranch %87 - %87 = OpLabel - %93 = OpUGreaterThanEqual %bool %91 %uint_4 - OpSelectionMerge %94 None - OpBranchConditional %93 %95 %94 - %95 = OpLabel - OpBranch %90 - %94 = OpLabel - %96 = OpAccessChain %_ptr_Function_Inner %83 %91 - %98 = OpAccessChain %_ptr_Function_Inner_std140 %81 %91 - %100 = OpLoad %Inner_std140 %98 None - %101 = OpFunctionCall %Inner %tint_convert_Inner %100 - OpStore %96 %101 None - OpBranch %88 - %88 = OpLabel - %92 = OpIAdd %uint %91 %uint_1 - OpBranch %89 - %90 = OpLabel - %l_a_3_a = OpLoad %_arr_Inner_uint_4 %83 None - %104 = OpLoad %Inner_std140 %24 None - %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %104 + %63 = OpLoad %Outer_std140_tint_explicit_layout %19 None + %64 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %63 + %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %64 + %68 = OpLoad %_arr_Inner_std140_uint_4 %22 None + %69 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %68 + OpStore %71 %69 + OpBranch %76 + %76 = OpLabel + OpBranch %79 + %79 = OpLabel + %81 = OpPhi %uint %uint_0 %76 %82 %78 + OpLoopMerge %80 %78 None + OpBranch %77 + %77 = OpLabel + %98 = OpUGreaterThanEqual %bool %81 %uint_4 + OpSelectionMerge %99 None + OpBranchConditional %98 %100 %99 + %100 = OpLabel + OpBranch %80 + %99 = OpLabel + %101 = OpAccessChain %_ptr_Function_Inner %73 %81 + %103 = OpAccessChain %_ptr_Function_Inner_std140 %71 %81 + %105 = OpLoad %Inner_std140 %103 None + %106 = OpFunctionCall %Inner %tint_convert_Inner %105 + OpStore %101 %106 None + OpBranch %78 + %78 = OpLabel + %82 = OpIAdd %uint %81 %uint_1 + OpBranch %79 + %80 = OpLabel + %l_a_3_a = OpLoad %_arr_Inner_uint_4 %73 None + %84 = OpLoad %Inner_std140 %24 None + %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %84 %l_a_3_a_2_m_1_0 = OpCompositeExtract %float %l_a_3_a_2_m_1 0 OpReturn OpFunctionEnd @@ -202,7 +202,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %118 = OpLabel %120 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %121 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %85 + %121 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %75 %119 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %120 %119 OpBranch %122 @@ -213,25 +213,25 @@ OpLoopMerge %126 %124 None OpBranch %123 %123 = OpLabel - %129 = OpUGreaterThanEqual %bool %127 %uint_4 - OpSelectionMerge %130 None - OpBranchConditional %129 %131 %130 - %131 = OpLabel + %131 = OpUGreaterThanEqual %bool %127 %uint_4 + OpSelectionMerge %132 None + OpBranchConditional %131 %133 %132 + %133 = OpLabel OpBranch %126 - %130 = OpLabel - %132 = OpAccessChain %_ptr_Function_Inner %121 %127 - %133 = OpAccessChain %_ptr_Function_Inner_std140 %120 %127 - %134 = OpLoad %Inner_std140 %133 None - %135 = OpFunctionCall %Inner %tint_convert_Inner %134 - OpStore %132 %135 None + %132 = OpLabel + %134 = OpAccessChain %_ptr_Function_Inner %121 %127 + %135 = OpAccessChain %_ptr_Function_Inner_std140 %120 %127 + %136 = OpLoad %Inner_std140 %135 None + %137 = OpFunctionCall %Inner %tint_convert_Inner %136 + OpStore %134 %137 None OpBranch %124 %124 = OpLabel %128 = OpIAdd %uint %127 %uint_1 OpBranch %125 %126 = OpLabel - %136 = OpLoad %_arr_Inner_uint_4 %121 None - %137 = OpCompositeConstruct %Outer %136 - OpReturnValue %137 + %129 = OpLoad %_arr_Inner_uint_4 %121 None + %130 = OpCompositeConstruct %Outer %129 + OpReturnValue %130 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %139 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -247,23 +247,23 @@ OpLoopMerge %149 %147 None OpBranch %146 %146 = OpLabel - %152 = OpUGreaterThanEqual %bool %150 %uint_4 - OpSelectionMerge %153 None - OpBranchConditional %152 %154 %153 - %154 = OpLabel + %153 = OpUGreaterThanEqual %bool %150 %uint_4 + OpSelectionMerge %154 None + OpBranchConditional %153 %155 %154 + %155 = OpLabel OpBranch %149 - %153 = OpLabel - %155 = OpAccessChain %_ptr_Function_Inner_std140 %141 %150 - %156 = OpLoad %Inner_std140 %155 None - %157 = OpAccessChain %_ptr_Function_Inner_std140 %143 %150 - OpStore %157 %156 None + %154 = OpLabel + %156 = OpAccessChain %_ptr_Function_Inner_std140 %141 %150 + %157 = OpLoad %Inner_std140 %156 None + %158 = OpAccessChain %_ptr_Function_Inner_std140 %143 %150 + OpStore %158 %157 None OpBranch %147 %147 = OpLabel %151 = OpIAdd %uint %150 %uint_1 OpBranch %148 %149 = OpLabel - %158 = OpLoad %_arr_Inner_std140_uint_4_0 %143 None - OpReturnValue %158 + %152 = OpLoad %_arr_Inner_std140_uint_4_0 %143 None + OpReturnValue %152 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %160 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -287,22 +287,22 @@ OpLoopMerge %176 %174 None OpBranch %173 %173 = OpLabel - %179 = OpUGreaterThanEqual %bool %177 %uint_4 - OpSelectionMerge %180 None - OpBranchConditional %179 %181 %180 - %181 = OpLabel + %180 = OpUGreaterThanEqual %bool %177 %uint_4 + OpSelectionMerge %181 None + OpBranchConditional %180 %182 %181 + %182 = OpLabel OpBranch %176 - %180 = OpLabel - %182 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %168 %177 - %184 = OpLoad %Outer_std140_tint_explicit_layout %182 None - %185 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %184 - %186 = OpAccessChain %_ptr_Function_Outer_std140 %170 %177 - OpStore %186 %185 None + %181 = OpLabel + %183 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %168 %177 + %185 = OpLoad %Outer_std140_tint_explicit_layout %183 None + %186 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %185 + %187 = OpAccessChain %_ptr_Function_Outer_std140 %170 %177 + OpStore %187 %186 None OpBranch %174 %174 = OpLabel %178 = OpIAdd %uint %177 %uint_1 OpBranch %175 %176 = OpLabel - %187 = OpLoad %_arr_Outer_std140_uint_4 %170 None - OpReturnValue %187 + %179 = OpLoad %_arr_Outer_std140_uint_4 %170 None + OpReturnValue %179 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.spvasm index c2ab90d..6dbda93 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.spvasm
@@ -73,14 +73,14 @@ %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %49 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float + %uint_1 = OpConstant %uint 1 %uint_3 = OpConstant %uint 3 + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %99 = OpTypeFunction %S %S_std140 %110 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -126,47 +126,47 @@ OpLoopMerge %54 %52 None OpBranch %51 %51 = OpLabel - %57 = OpUGreaterThanEqual %bool %55 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel + %88 = OpUGreaterThanEqual %bool %55 %uint_4 + OpSelectionMerge %90 None + OpBranchConditional %88 %91 %90 + %91 = OpLabel OpBranch %54 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_S %47 %55 - %63 = OpAccessChain %_ptr_Function_S_std140 %45 %55 - %65 = OpLoad %S_std140 %63 None - %66 = OpFunctionCall %S %tint_convert_S %65 - OpStore %61 %66 None + %90 = OpLabel + %92 = OpAccessChain %_ptr_Function_S %47 %55 + %94 = OpAccessChain %_ptr_Function_S_std140 %45 %55 + %96 = OpLoad %S_std140 %94 None + %97 = OpFunctionCall %S %tint_convert_S %96 + OpStore %92 %97 None OpBranch %52 %52 = OpLabel %56 = OpIAdd %uint %55 %uint_1 OpBranch %53 %54 = OpLabel - %69 = OpLoad %_arr_S_uint_4 %47 None - %70 = OpFunctionCall %void %a %69 - %71 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %71 None - %75 = OpFunctionCall %S %tint_convert_S %74 - %76 = OpFunctionCall %void %b %75 - %77 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 - %79 = OpLoad %v3float %77 None - %80 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 - %81 = OpLoad %v3float %80 None - %82 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_3 - %84 = OpLoad %v3float %82 None - %85 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_4 - %86 = OpLoad %v3float %85 None - %87 = OpCompositeConstruct %mat4v3float %79 %81 %84 %86 - %88 = OpFunctionCall %void %c %87 - %89 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 - %90 = OpLoad %v3float %89 None - %91 = OpVectorShuffle %v3float %90 %90 2 0 1 - %92 = OpFunctionCall %void %d %91 - %93 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 - %94 = OpLoad %v3float %93 None - %95 = OpVectorShuffle %v3float %94 %94 2 0 1 - %96 = OpCompositeExtract %float %95 0 - %97 = OpFunctionCall %void %e %96 + %57 = OpLoad %_arr_S_uint_4 %47 None + %58 = OpFunctionCall %void %a %57 + %59 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %62 = OpLoad %S_std140 %59 None + %63 = OpFunctionCall %S %tint_convert_S %62 + %65 = OpFunctionCall %void %b %63 + %66 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 + %69 = OpLoad %v3float %66 None + %70 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 + %71 = OpLoad %v3float %70 None + %72 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_3 + %74 = OpLoad %v3float %72 None + %75 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_4 + %76 = OpLoad %v3float %75 None + %77 = OpCompositeConstruct %mat4v3float %69 %71 %74 %76 + %78 = OpFunctionCall %void %c %77 + %79 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 + %80 = OpLoad %v3float %79 None + %81 = OpVectorShuffle %v3float %80 %80 2 0 1 + %82 = OpFunctionCall %void %d %81 + %83 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 + %84 = OpLoad %v3float %83 None + %85 = OpVectorShuffle %v3float %84 %84 2 0 1 + %86 = OpCompositeExtract %float %85 0 + %87 = OpFunctionCall %void %e %86 OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %99 @@ -196,21 +196,21 @@ OpLoopMerge %120 %118 None OpBranch %117 %117 = OpLabel - %123 = OpUGreaterThanEqual %bool %121 %uint_4 - OpSelectionMerge %124 None - OpBranchConditional %123 %125 %124 - %125 = OpLabel + %124 = OpUGreaterThanEqual %bool %121 %uint_4 + OpSelectionMerge %125 None + OpBranchConditional %124 %126 %125 + %126 = OpLabel OpBranch %120 - %124 = OpLabel - %126 = OpAccessChain %_ptr_Function_S_std140 %112 %121 - %127 = OpLoad %S_std140 %126 None - %128 = OpAccessChain %_ptr_Function_S_std140 %114 %121 - OpStore %128 %127 None + %125 = OpLabel + %127 = OpAccessChain %_ptr_Function_S_std140 %112 %121 + %128 = OpLoad %S_std140 %127 None + %129 = OpAccessChain %_ptr_Function_S_std140 %114 %121 + OpStore %129 %128 None OpBranch %118 %118 = OpLabel %122 = OpIAdd %uint %121 %uint_1 OpBranch %119 %120 = OpLabel - %129 = OpLoad %_arr_S_std140_uint_4_0 %114 None - OpReturnValue %129 + %123 = OpLoad %_arr_S_std140_uint_4_0 %114 None + OpReturnValue %123 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.spvasm index e0123eb..f4b6e21 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.spvasm
@@ -61,17 +61,17 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Private_S = OpTypePointer Private %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Private_mat4v3float = OpTypePointer Private %mat4v3float %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float %_ptr_Private_v3float = OpTypePointer Private %v3float + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %78 = OpTypeFunction %S %S_std140 %89 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -92,45 +92,45 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_4 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %67 = OpUGreaterThanEqual %bool %37 %uint_4 + OpSelectionMerge %69 None + OpBranchConditional %67 %70 %69 + %70 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Function_S %30 %37 - %45 = OpAccessChain %_ptr_Function_S_std140 %28 %37 - %47 = OpLoad %S_std140 %45 None - %48 = OpFunctionCall %S %tint_convert_S %47 - OpStore %43 %48 None + %69 = OpLabel + %71 = OpAccessChain %_ptr_Function_S %30 %37 + %73 = OpAccessChain %_ptr_Function_S_std140 %28 %37 + %75 = OpLoad %S_std140 %73 None + %76 = OpFunctionCall %S %tint_convert_S %75 + OpStore %71 %76 None OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel - %51 = OpLoad %_arr_S_uint_4 %30 None - OpStore %p %51 None - %52 = OpAccessChain %_ptr_Private_S %p %uint_1 - %54 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %57 = OpLoad %S_std140 %54 None - %58 = OpFunctionCall %S %tint_convert_S %57 - OpStore %52 %58 None - %59 = OpAccessChain %_ptr_Private_mat4v3float %p %uint_3 %uint_1 - %62 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 - %64 = OpLoad %v3float %62 None - %65 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 - %66 = OpLoad %v3float %65 None - %67 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_3 - %68 = OpLoad %v3float %67 None - %69 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_4 - %70 = OpLoad %v3float %69 None - %71 = OpCompositeConstruct %mat4v3float %64 %66 %68 %70 - OpStore %59 %71 None - %72 = OpAccessChain %_ptr_Private_v3float %p %uint_1 %uint_1 %uint_0 - %74 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 - %75 = OpLoad %v3float %74 None - %76 = OpVectorShuffle %v3float %75 %75 2 0 1 - OpStore %72 %76 None + %39 = OpLoad %_arr_S_uint_4 %30 None + OpStore %p %39 None + %40 = OpAccessChain %_ptr_Private_S %p %uint_1 + %43 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %46 = OpLoad %S_std140 %43 None + %47 = OpFunctionCall %S %tint_convert_S %46 + OpStore %40 %47 None + %49 = OpAccessChain %_ptr_Private_mat4v3float %p %uint_3 %uint_1 + %52 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 + %54 = OpLoad %v3float %52 None + %55 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 + %56 = OpLoad %v3float %55 None + %57 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_3 + %58 = OpLoad %v3float %57 None + %59 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_4 + %60 = OpLoad %v3float %59 None + %61 = OpCompositeConstruct %mat4v3float %54 %56 %58 %60 + OpStore %49 %61 None + %62 = OpAccessChain %_ptr_Private_v3float %p %uint_1 %uint_1 %uint_0 + %64 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 + %65 = OpLoad %v3float %64 None + %66 = OpVectorShuffle %v3float %65 %65 2 0 1 + OpStore %62 %66 None OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %78 @@ -160,21 +160,21 @@ OpLoopMerge %99 %97 None OpBranch %96 %96 = OpLabel - %102 = OpUGreaterThanEqual %bool %100 %uint_4 - OpSelectionMerge %103 None - OpBranchConditional %102 %104 %103 - %104 = OpLabel + %103 = OpUGreaterThanEqual %bool %100 %uint_4 + OpSelectionMerge %104 None + OpBranchConditional %103 %105 %104 + %105 = OpLabel OpBranch %99 - %103 = OpLabel - %105 = OpAccessChain %_ptr_Function_S_std140 %91 %100 - %106 = OpLoad %S_std140 %105 None - %107 = OpAccessChain %_ptr_Function_S_std140 %93 %100 - OpStore %107 %106 None + %104 = OpLabel + %106 = OpAccessChain %_ptr_Function_S_std140 %91 %100 + %107 = OpLoad %S_std140 %106 None + %108 = OpAccessChain %_ptr_Function_S_std140 %93 %100 + OpStore %108 %107 None OpBranch %97 %97 = OpLabel %101 = OpIAdd %uint %100 %uint_1 OpBranch %98 %99 = OpLabel - %108 = OpLoad %_arr_S_std140_uint_4_0 %93 None - OpReturnValue %108 + %102 = OpLoad %_arr_S_std140_uint_4_0 %93 None + OpReturnValue %102 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_storage.wgsl.expected.spvasm index eef98be..08d536b 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_storage.wgsl.expected.spvasm
@@ -88,16 +88,16 @@ %_arr_S_uint_4 = OpTypeArray %S %uint_4 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %34 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 + %uint_1 = OpConstant %uint 1 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float %uint_3 = OpConstant %uint 3 %_ptr_StorageBuffer_v3float = OpTypePointer StorageBuffer %v3float + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %86 = OpTypeFunction %void %_arr_S_uint_4 %105 = OpTypeFunction %void %_arr_uint_uint_1 %S %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int @@ -122,45 +122,45 @@ OpLoopMerge %39 %37 None OpBranch %36 %36 = OpLabel - %42 = OpUGreaterThanEqual %bool %40 %uint_4 - OpSelectionMerge %44 None - OpBranchConditional %42 %45 %44 - %45 = OpLabel + %75 = OpUGreaterThanEqual %bool %40 %uint_4 + OpSelectionMerge %77 None + OpBranchConditional %75 %78 %77 + %78 = OpLabel OpBranch %39 - %44 = OpLabel - %46 = OpAccessChain %_ptr_Function_S %30 %40 - %48 = OpAccessChain %_ptr_Function_S_std140 %28 %40 - %50 = OpLoad %S_std140 %48 None - %51 = OpFunctionCall %S %tint_convert_S %50 - OpStore %46 %51 None + %77 = OpLabel + %79 = OpAccessChain %_ptr_Function_S %30 %40 + %81 = OpAccessChain %_ptr_Function_S_std140 %28 %40 + %83 = OpLoad %S_std140 %81 None + %84 = OpFunctionCall %S %tint_convert_S %83 + OpStore %79 %84 None OpBranch %37 %37 = OpLabel %41 = OpIAdd %uint %40 %uint_1 OpBranch %38 %39 = OpLabel - %54 = OpLoad %_arr_S_uint_4 %30 None - %55 = OpFunctionCall %void %tint_store_and_preserve_padding %54 - %57 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %60 = OpLoad %S_std140 %57 None - %61 = OpFunctionCall %S %tint_convert_S %60 - %63 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 - %64 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %63 %61 - %66 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 - %68 = OpLoad %v3float %66 None - %69 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 - %70 = OpLoad %v3float %69 None - %71 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_3 - %73 = OpLoad %v3float %71 None - %74 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_4 - %75 = OpLoad %v3float %74 None - %76 = OpCompositeConstruct %mat4v3float %68 %70 %73 %75 - %77 = OpCompositeConstruct %_arr_uint_uint_1 %uint_3 - %78 = OpFunctionCall %void %tint_store_and_preserve_padding_1 %77 %76 - %80 = OpAccessChain %_ptr_StorageBuffer_v3float %11 %uint_0 %uint_1 %uint_1 %uint_0 - %82 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 - %83 = OpLoad %v3float %82 None - %84 = OpVectorShuffle %v3float %83 %83 2 0 1 - OpStore %80 %84 None + %42 = OpLoad %_arr_S_uint_4 %30 None + %43 = OpFunctionCall %void %tint_store_and_preserve_padding %42 + %45 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %48 = OpLoad %S_std140 %45 None + %49 = OpFunctionCall %S %tint_convert_S %48 + %53 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 + %54 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %53 %49 + %56 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 + %58 = OpLoad %v3float %56 None + %59 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 + %60 = OpLoad %v3float %59 None + %61 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_3 + %63 = OpLoad %v3float %61 None + %64 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_4 + %65 = OpLoad %v3float %64 None + %66 = OpCompositeConstruct %mat4v3float %58 %60 %63 %65 + %67 = OpCompositeConstruct %_arr_uint_uint_1 %uint_3 + %68 = OpFunctionCall %void %tint_store_and_preserve_padding_1 %67 %66 + %70 = OpAccessChain %_ptr_StorageBuffer_v3float %11 %uint_0 %uint_1 %uint_1 %uint_0 + %72 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 + %73 = OpLoad %v3float %72 None + %74 = OpVectorShuffle %v3float %73 %73 2 0 1 + OpStore %70 %74 None OpReturn OpFunctionEnd %tint_store_and_preserve_padding = OpFunction %void None %86 @@ -255,21 +255,21 @@ OpLoopMerge %151 %149 None OpBranch %148 %148 = OpLabel - %154 = OpUGreaterThanEqual %bool %152 %uint_4 - OpSelectionMerge %155 None - OpBranchConditional %154 %156 %155 - %156 = OpLabel + %155 = OpUGreaterThanEqual %bool %152 %uint_4 + OpSelectionMerge %156 None + OpBranchConditional %155 %157 %156 + %157 = OpLabel OpBranch %151 - %155 = OpLabel - %157 = OpAccessChain %_ptr_Function_S_std140 %143 %152 - %158 = OpLoad %S_std140 %157 None - %159 = OpAccessChain %_ptr_Function_S_std140 %145 %152 - OpStore %159 %158 None + %156 = OpLabel + %158 = OpAccessChain %_ptr_Function_S_std140 %143 %152 + %159 = OpLoad %S_std140 %158 None + %160 = OpAccessChain %_ptr_Function_S_std140 %145 %152 + OpStore %160 %159 None OpBranch %149 %149 = OpLabel %153 = OpIAdd %uint %152 %uint_1 OpBranch %150 %151 = OpLabel - %160 = OpLoad %_arr_S_std140_uint_4_0 %145 None - OpReturnValue %160 + %154 = OpLoad %_arr_S_std140_uint_4_0 %145 None + OpReturnValue %154 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.spvasm index 62ed7fa..ac0837a 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.spvasm
@@ -61,10 +61,6 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %21 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_S = OpTypePointer Workgroup %S - %36 = OpConstantNull %S - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_S_std140_uint_4 = OpTypePointer Uniform %_arr_S_std140_uint_4 @@ -72,14 +68,18 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %52 = OpConstantNull %_arr_S_uint_4 -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 + %44 = OpConstantNull %_arr_S_uint_4 +%_ptr_Workgroup_S = OpTypePointer Workgroup %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %_ptr_Workgroup_mat4v3float = OpTypePointer Workgroup %mat4v3float %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float %_ptr_Workgroup_v3float = OpTypePointer Workgroup %v3float + %bool = OpTypeBool + %84 = OpConstantNull %S +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %95 = OpTypeFunction %void %100 = OpTypeFunction %S %S_std140 %111 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 @@ -88,8 +88,8 @@ %f_inner = OpFunction %void None %21 %tint_local_index = OpFunctionParameter %uint %22 = OpLabel - %48 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function - %50 = OpVariable %_ptr_Function__arr_S_uint_4 Function %52 + %40 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function + %42 = OpVariable %_ptr_Function__arr_S_uint_4 Function %44 OpBranch %23 %23 = OpLabel OpBranch %26 @@ -98,71 +98,71 @@ OpLoopMerge %27 %25 None OpBranch %24 %24 = OpLabel - %30 = OpUGreaterThanEqual %bool %28 %uint_4 - OpSelectionMerge %32 None - OpBranchConditional %30 %33 %32 - %33 = OpLabel + %79 = OpUGreaterThanEqual %bool %28 %uint_4 + OpSelectionMerge %81 None + OpBranchConditional %79 %82 %81 + %82 = OpLabel OpBranch %27 - %32 = OpLabel - %34 = OpAccessChain %_ptr_Workgroup_S %w %28 - OpStore %34 %36 None + %81 = OpLabel + %83 = OpAccessChain %_ptr_Workgroup_S %w %28 + OpStore %83 %84 None OpBranch %25 %25 = OpLabel %29 = OpIAdd %uint %28 %uint_1 OpBranch %26 %27 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %41 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 - %44 = OpLoad %_arr_S_std140_uint_4 %41 None - %45 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %44 - OpStore %48 %45 - OpBranch %53 - %53 = OpLabel - OpBranch %56 - %56 = OpLabel - %58 = OpPhi %uint %uint_0 %53 %59 %55 - OpLoopMerge %57 %55 None - OpBranch %54 - %54 = OpLabel - %60 = OpUGreaterThanEqual %bool %58 %uint_4 - OpSelectionMerge %61 None - OpBranchConditional %60 %62 %61 - %62 = OpLabel - OpBranch %57 - %61 = OpLabel - %63 = OpAccessChain %_ptr_Function_S %50 %58 - %65 = OpAccessChain %_ptr_Function_S_std140 %48 %58 - %67 = OpLoad %S_std140 %65 None - %68 = OpFunctionCall %S %tint_convert_S %67 - OpStore %63 %68 None - OpBranch %55 - %55 = OpLabel - %59 = OpIAdd %uint %58 %uint_1 - OpBranch %56 - %57 = OpLabel - %70 = OpLoad %_arr_S_uint_4 %50 None - OpStore %w %70 None - %71 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 - %72 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %72 None - %75 = OpFunctionCall %S %tint_convert_S %74 - OpStore %71 %75 None - %76 = OpAccessChain %_ptr_Workgroup_mat4v3float %w %uint_3 %uint_1 - %79 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 - %81 = OpLoad %v3float %79 None - %82 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 - %83 = OpLoad %v3float %82 None - %84 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_3 - %85 = OpLoad %v3float %84 None - %86 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_4 - %87 = OpLoad %v3float %86 None - %88 = OpCompositeConstruct %mat4v3float %81 %83 %85 %87 - OpStore %76 %88 None - %89 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 %uint_1 %uint_0 - %91 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 - %92 = OpLoad %v3float %91 None - %93 = OpVectorShuffle %v3float %92 %92 2 0 1 - OpStore %89 %93 None + %33 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 + %36 = OpLoad %_arr_S_std140_uint_4 %33 None + %37 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %36 + OpStore %40 %37 + OpBranch %45 + %45 = OpLabel + OpBranch %48 + %48 = OpLabel + %50 = OpPhi %uint %uint_0 %45 %51 %47 + OpLoopMerge %49 %47 None + OpBranch %46 + %46 = OpLabel + %85 = OpUGreaterThanEqual %bool %50 %uint_4 + OpSelectionMerge %86 None + OpBranchConditional %85 %87 %86 + %87 = OpLabel + OpBranch %49 + %86 = OpLabel + %88 = OpAccessChain %_ptr_Function_S %42 %50 + %90 = OpAccessChain %_ptr_Function_S_std140 %40 %50 + %92 = OpLoad %S_std140 %90 None + %93 = OpFunctionCall %S %tint_convert_S %92 + OpStore %88 %93 None + OpBranch %47 + %47 = OpLabel + %51 = OpIAdd %uint %50 %uint_1 + OpBranch %48 + %49 = OpLabel + %52 = OpLoad %_arr_S_uint_4 %42 None + OpStore %w %52 None + %53 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 + %56 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %58 = OpLoad %S_std140 %56 None + %59 = OpFunctionCall %S %tint_convert_S %58 + OpStore %53 %59 None + %61 = OpAccessChain %_ptr_Workgroup_mat4v3float %w %uint_3 %uint_1 + %64 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_1 + %66 = OpLoad %v3float %64 None + %67 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_2 + %68 = OpLoad %v3float %67 None + %69 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_3 + %70 = OpLoad %v3float %69 None + %71 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_2 %uint_4 + %72 = OpLoad %v3float %71 None + %73 = OpCompositeConstruct %mat4v3float %66 %68 %70 %72 + OpStore %61 %73 None + %74 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 %uint_1 %uint_0 + %76 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_0 %uint_2 + %77 = OpLoad %v3float %76 None + %78 = OpVectorShuffle %v3float %77 %77 2 0 1 + OpStore %74 %78 None OpReturn OpFunctionEnd %f = OpFunction %void None %95 @@ -198,21 +198,21 @@ OpLoopMerge %121 %119 None OpBranch %118 %118 = OpLabel - %124 = OpUGreaterThanEqual %bool %122 %uint_4 - OpSelectionMerge %125 None - OpBranchConditional %124 %126 %125 - %126 = OpLabel + %125 = OpUGreaterThanEqual %bool %122 %uint_4 + OpSelectionMerge %126 None + OpBranchConditional %125 %127 %126 + %127 = OpLabel OpBranch %121 - %125 = OpLabel - %127 = OpAccessChain %_ptr_Function_S_std140 %113 %122 - %128 = OpLoad %S_std140 %127 None - %129 = OpAccessChain %_ptr_Function_S_std140 %115 %122 - OpStore %129 %128 None + %126 = OpLabel + %128 = OpAccessChain %_ptr_Function_S_std140 %113 %122 + %129 = OpLoad %S_std140 %128 None + %130 = OpAccessChain %_ptr_Function_S_std140 %115 %122 + OpStore %130 %129 None OpBranch %119 %119 = OpLabel %123 = OpIAdd %uint %122 %uint_1 OpBranch %120 %121 = OpLabel - %130 = OpLoad %_arr_S_std140_uint_4_0 %115 None - OpReturnValue %130 + %124 = OpLoad %_arr_S_std140_uint_4_0 %115 None + OpReturnValue %124 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.spvasm index 440d649..1d2b4ec 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -99,12 +99,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %79 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %100 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %110 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %136 = OpTypeFunction %Inner %Inner_std140 @@ -130,8 +130,8 @@ %57 = OpVariable %_ptr_Function_mat4v4half Function %71 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %73 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %79 - %106 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %108 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %110 + %96 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %98 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %100 %27 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %30 = OpFunctionCall %int %i %31 = OpBitcast %uint %30 @@ -168,60 +168,60 @@ OpLoopMerge %84 %82 None OpBranch %81 %81 = OpLabel - %87 = OpUGreaterThanEqual %bool %85 %uint_4 - OpSelectionMerge %89 None - OpBranchConditional %87 %90 %89 - %90 = OpLabel + %116 = OpUGreaterThanEqual %bool %85 %uint_4 + OpSelectionMerge %118 None + OpBranchConditional %116 %119 %118 + %119 = OpLabel OpBranch %84 - %89 = OpLabel - %91 = OpAccessChain %_ptr_Function_Outer %73 %85 - %93 = OpAccessChain %_ptr_Function_Outer_std140 %71 %85 - %95 = OpLoad %Outer_std140 %93 None - %96 = OpFunctionCall %Outer %tint_convert_Outer %95 - OpStore %91 %96 None + %118 = OpLabel + %120 = OpAccessChain %_ptr_Function_Outer %73 %85 + %122 = OpAccessChain %_ptr_Function_Outer_std140 %71 %85 + %124 = OpLoad %Outer_std140 %122 None + %125 = OpFunctionCall %Outer %tint_convert_Outer %124 + OpStore %120 %125 None OpBranch %82 %82 = OpLabel %86 = OpIAdd %uint %85 %uint_1 OpBranch %83 %84 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %73 None - %99 = OpLoad %Outer_std140_tint_explicit_layout %35 None - %100 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %99 - %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %100 - %103 = OpLoad %_arr_Inner_std140_uint_4 %37 None - %104 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %103 - OpStore %106 %104 - OpBranch %111 - %111 = OpLabel - OpBranch %114 - %114 = OpLabel - %116 = OpPhi %uint %uint_0 %111 %117 %113 - OpLoopMerge %115 %113 None - OpBranch %112 - %112 = OpLabel - %118 = OpUGreaterThanEqual %bool %116 %uint_4 - OpSelectionMerge %119 None - OpBranchConditional %118 %120 %119 - %120 = OpLabel - OpBranch %115 - %119 = OpLabel - %121 = OpAccessChain %_ptr_Function_Inner %108 %116 - %123 = OpAccessChain %_ptr_Function_Inner_std140 %106 %116 - %125 = OpLoad %Inner_std140 %123 None - %126 = OpFunctionCall %Inner %tint_convert_Inner %125 - OpStore %121 %126 None - OpBranch %113 - %113 = OpLabel - %117 = OpIAdd %uint %116 %uint_1 - OpBranch %114 - %115 = OpLabel - %l_a_i_a = OpLoad %_arr_Inner_uint_4 %108 None - %129 = OpLoad %Inner_std140 %42 None - %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %129 - %131 = OpFunctionCall %int %i - %132 = OpBitcast %uint %131 - %133 = OpExtInst %uint %33 UMin %132 %uint_3 -%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %half %l_a_i_a_i_m_i %133 + %88 = OpLoad %Outer_std140_tint_explicit_layout %35 None + %89 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %88 + %l_a_i = OpFunctionCall %Outer %tint_convert_Outer %89 + %93 = OpLoad %_arr_Inner_std140_uint_4 %37 None + %94 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %93 + OpStore %96 %94 + OpBranch %101 + %101 = OpLabel + OpBranch %104 + %104 = OpLabel + %106 = OpPhi %uint %uint_0 %101 %107 %103 + OpLoopMerge %105 %103 None + OpBranch %102 + %102 = OpLabel + %126 = OpUGreaterThanEqual %bool %106 %uint_4 + OpSelectionMerge %127 None + OpBranchConditional %126 %128 %127 + %128 = OpLabel + OpBranch %105 + %127 = OpLabel + %129 = OpAccessChain %_ptr_Function_Inner %98 %106 + %131 = OpAccessChain %_ptr_Function_Inner_std140 %96 %106 + %133 = OpLoad %Inner_std140 %131 None + %134 = OpFunctionCall %Inner %tint_convert_Inner %133 + OpStore %129 %134 None + OpBranch %103 + %103 = OpLabel + %107 = OpIAdd %uint %106 %uint_1 + OpBranch %104 + %105 = OpLabel + %l_a_i_a = OpLoad %_arr_Inner_uint_4 %98 None + %109 = OpLoad %Inner_std140 %42 None + %l_a_i_a_i = OpFunctionCall %Inner %tint_convert_Inner %109 + %112 = OpFunctionCall %int %i + %113 = OpBitcast %uint %112 + %114 = OpExtInst %uint %33 UMin %113 %uint_3 +%l_a_i_a_i_m_i_i = OpVectorExtractDynamic %half %l_a_i_a_i_m_i %114 OpReturn OpFunctionEnd %tint_convert_Inner = OpFunction %Inner None %136 @@ -239,7 +239,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %146 = OpLabel %148 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %149 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %110 + %149 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %100 %147 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %148 %147 OpBranch %150 @@ -250,25 +250,25 @@ OpLoopMerge %154 %152 None OpBranch %151 %151 = OpLabel - %157 = OpUGreaterThanEqual %bool %155 %uint_4 - OpSelectionMerge %158 None - OpBranchConditional %157 %159 %158 - %159 = OpLabel + %159 = OpUGreaterThanEqual %bool %155 %uint_4 + OpSelectionMerge %160 None + OpBranchConditional %159 %161 %160 + %161 = OpLabel OpBranch %154 - %158 = OpLabel - %160 = OpAccessChain %_ptr_Function_Inner %149 %155 - %161 = OpAccessChain %_ptr_Function_Inner_std140 %148 %155 - %162 = OpLoad %Inner_std140 %161 None - %163 = OpFunctionCall %Inner %tint_convert_Inner %162 - OpStore %160 %163 None + %160 = OpLabel + %162 = OpAccessChain %_ptr_Function_Inner %149 %155 + %163 = OpAccessChain %_ptr_Function_Inner_std140 %148 %155 + %164 = OpLoad %Inner_std140 %163 None + %165 = OpFunctionCall %Inner %tint_convert_Inner %164 + OpStore %162 %165 None OpBranch %152 %152 = OpLabel %156 = OpIAdd %uint %155 %uint_1 OpBranch %153 %154 = OpLabel - %164 = OpLoad %_arr_Inner_uint_4 %149 None - %165 = OpCompositeConstruct %Outer %164 - OpReturnValue %165 + %157 = OpLoad %_arr_Inner_uint_4 %149 None + %158 = OpCompositeConstruct %Outer %157 + OpReturnValue %158 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %167 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -284,23 +284,23 @@ OpLoopMerge %177 %175 None OpBranch %174 %174 = OpLabel - %180 = OpUGreaterThanEqual %bool %178 %uint_4 - OpSelectionMerge %181 None - OpBranchConditional %180 %182 %181 - %182 = OpLabel + %181 = OpUGreaterThanEqual %bool %178 %uint_4 + OpSelectionMerge %182 None + OpBranchConditional %181 %183 %182 + %183 = OpLabel OpBranch %177 - %181 = OpLabel - %183 = OpAccessChain %_ptr_Function_Inner_std140 %169 %178 - %184 = OpLoad %Inner_std140 %183 None - %185 = OpAccessChain %_ptr_Function_Inner_std140 %171 %178 - OpStore %185 %184 None + %182 = OpLabel + %184 = OpAccessChain %_ptr_Function_Inner_std140 %169 %178 + %185 = OpLoad %Inner_std140 %184 None + %186 = OpAccessChain %_ptr_Function_Inner_std140 %171 %178 + OpStore %186 %185 None OpBranch %175 %175 = OpLabel %179 = OpIAdd %uint %178 %uint_1 OpBranch %176 %177 = OpLabel - %186 = OpLoad %_arr_Inner_std140_uint_4_0 %171 None - OpReturnValue %186 + %180 = OpLoad %_arr_Inner_std140_uint_4_0 %171 None + OpReturnValue %180 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %188 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -324,22 +324,22 @@ OpLoopMerge %204 %202 None OpBranch %201 %201 = OpLabel - %207 = OpUGreaterThanEqual %bool %205 %uint_4 - OpSelectionMerge %208 None - OpBranchConditional %207 %209 %208 - %209 = OpLabel + %208 = OpUGreaterThanEqual %bool %205 %uint_4 + OpSelectionMerge %209 None + OpBranchConditional %208 %210 %209 + %210 = OpLabel OpBranch %204 - %208 = OpLabel - %210 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %196 %205 - %212 = OpLoad %Outer_std140_tint_explicit_layout %210 None - %213 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %212 - %214 = OpAccessChain %_ptr_Function_Outer_std140 %198 %205 - OpStore %214 %213 None + %209 = OpLabel + %211 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %196 %205 + %213 = OpLoad %Outer_std140_tint_explicit_layout %211 None + %214 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %213 + %215 = OpAccessChain %_ptr_Function_Outer_std140 %198 %205 + OpStore %215 %214 None OpBranch %202 %202 = OpLabel %206 = OpIAdd %uint %205 %uint_1 OpBranch %203 %204 = OpLabel - %215 = OpLoad %_arr_Outer_std140_uint_4 %198 None - OpReturnValue %215 + %207 = OpLoad %_arr_Outer_std140_uint_4 %198 None + OpReturnValue %207 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.spvasm index e61ec43..db9c2f0 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.spvasm
@@ -88,12 +88,12 @@ %_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4 %_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4 %54 = OpConstantNull %_arr_Outer_uint_4 +%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 +%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 + %75 = OpConstantNull %_arr_Inner_uint_4 %bool = OpTypeBool %_ptr_Function_Outer = OpTypePointer Function %Outer %_ptr_Function_Outer_std140 = OpTypePointer Function %Outer_std140 -%_ptr_Function__arr_Inner_std140_uint_4_0 = OpTypePointer Function %_arr_Inner_std140_uint_4_0 -%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4 - %85 = OpConstantNull %_arr_Inner_uint_4 %_ptr_Function_Inner = OpTypePointer Function %Inner %_ptr_Function_Inner_std140 = OpTypePointer Function %Inner_std140 %108 = OpTypeFunction %Inner %Inner_std140 @@ -110,8 +110,8 @@ %15 = OpLabel %46 = OpVariable %_ptr_Function__arr_Outer_std140_uint_4 Function %48 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %54 - %81 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %83 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %85 + %71 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function + %73 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %75 %16 = OpAccessChain %_ptr_Uniform__arr_Outer_std140_tint_explicit_layout_uint_4 %1 %uint_0 %19 = OpAccessChain %_ptr_Uniform_Outer_std140_tint_explicit_layout %16 %uint_3 %22 = OpAccessChain %_ptr_Uniform__arr_Inner_std140_uint_4 %19 %uint_0 @@ -137,56 +137,56 @@ OpLoopMerge %59 %57 None OpBranch %56 %56 = OpLabel - %62 = OpUGreaterThanEqual %bool %60 %uint_4 - OpSelectionMerge %64 None - OpBranchConditional %62 %65 %64 - %65 = OpLabel + %88 = OpUGreaterThanEqual %bool %60 %uint_4 + OpSelectionMerge %90 None + OpBranchConditional %88 %91 %90 + %91 = OpLabel OpBranch %59 - %64 = OpLabel - %66 = OpAccessChain %_ptr_Function_Outer %48 %60 - %68 = OpAccessChain %_ptr_Function_Outer_std140 %46 %60 - %70 = OpLoad %Outer_std140 %68 None - %71 = OpFunctionCall %Outer %tint_convert_Outer %70 - OpStore %66 %71 None + %90 = OpLabel + %92 = OpAccessChain %_ptr_Function_Outer %48 %60 + %94 = OpAccessChain %_ptr_Function_Outer_std140 %46 %60 + %96 = OpLoad %Outer_std140 %94 None + %97 = OpFunctionCall %Outer %tint_convert_Outer %96 + OpStore %92 %97 None OpBranch %57 %57 = OpLabel %61 = OpIAdd %uint %60 %uint_1 OpBranch %58 %59 = OpLabel %l_a = OpLoad %_arr_Outer_uint_4 %48 None - %74 = OpLoad %Outer_std140_tint_explicit_layout %19 None - %75 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %74 - %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %75 - %78 = OpLoad %_arr_Inner_std140_uint_4 %22 None - %79 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %78 - OpStore %81 %79 - OpBranch %86 - %86 = OpLabel - OpBranch %89 - %89 = OpLabel - %91 = OpPhi %uint %uint_0 %86 %92 %88 - OpLoopMerge %90 %88 None - OpBranch %87 - %87 = OpLabel - %93 = OpUGreaterThanEqual %bool %91 %uint_4 - OpSelectionMerge %94 None - OpBranchConditional %93 %95 %94 - %95 = OpLabel - OpBranch %90 - %94 = OpLabel - %96 = OpAccessChain %_ptr_Function_Inner %83 %91 - %98 = OpAccessChain %_ptr_Function_Inner_std140 %81 %91 - %100 = OpLoad %Inner_std140 %98 None - %101 = OpFunctionCall %Inner %tint_convert_Inner %100 - OpStore %96 %101 None - OpBranch %88 - %88 = OpLabel - %92 = OpIAdd %uint %91 %uint_1 - OpBranch %89 - %90 = OpLabel - %l_a_3_a = OpLoad %_arr_Inner_uint_4 %83 None - %104 = OpLoad %Inner_std140 %24 None - %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %104 + %63 = OpLoad %Outer_std140_tint_explicit_layout %19 None + %64 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %63 + %l_a_3 = OpFunctionCall %Outer %tint_convert_Outer %64 + %68 = OpLoad %_arr_Inner_std140_uint_4 %22 None + %69 = OpFunctionCall %_arr_Inner_std140_uint_4_0 %tint_convert_explicit_layout %68 + OpStore %71 %69 + OpBranch %76 + %76 = OpLabel + OpBranch %79 + %79 = OpLabel + %81 = OpPhi %uint %uint_0 %76 %82 %78 + OpLoopMerge %80 %78 None + OpBranch %77 + %77 = OpLabel + %98 = OpUGreaterThanEqual %bool %81 %uint_4 + OpSelectionMerge %99 None + OpBranchConditional %98 %100 %99 + %100 = OpLabel + OpBranch %80 + %99 = OpLabel + %101 = OpAccessChain %_ptr_Function_Inner %73 %81 + %103 = OpAccessChain %_ptr_Function_Inner_std140 %71 %81 + %105 = OpLoad %Inner_std140 %103 None + %106 = OpFunctionCall %Inner %tint_convert_Inner %105 + OpStore %101 %106 None + OpBranch %78 + %78 = OpLabel + %82 = OpIAdd %uint %81 %uint_1 + OpBranch %79 + %80 = OpLabel + %l_a_3_a = OpLoad %_arr_Inner_uint_4 %73 None + %84 = OpLoad %Inner_std140 %24 None + %l_a_3_a_2 = OpFunctionCall %Inner %tint_convert_Inner %84 %l_a_3_a_2_m_1_0 = OpCompositeExtract %half %l_a_3_a_2_m_1 0 OpReturn OpFunctionEnd @@ -205,7 +205,7 @@ %tint_input_0 = OpFunctionParameter %Outer_std140 %118 = OpLabel %120 = OpVariable %_ptr_Function__arr_Inner_std140_uint_4_0 Function - %121 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %85 + %121 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function %75 %119 = OpCompositeExtract %_arr_Inner_std140_uint_4_0 %tint_input_0 0 OpStore %120 %119 OpBranch %122 @@ -216,25 +216,25 @@ OpLoopMerge %126 %124 None OpBranch %123 %123 = OpLabel - %129 = OpUGreaterThanEqual %bool %127 %uint_4 - OpSelectionMerge %130 None - OpBranchConditional %129 %131 %130 - %131 = OpLabel + %131 = OpUGreaterThanEqual %bool %127 %uint_4 + OpSelectionMerge %132 None + OpBranchConditional %131 %133 %132 + %133 = OpLabel OpBranch %126 - %130 = OpLabel - %132 = OpAccessChain %_ptr_Function_Inner %121 %127 - %133 = OpAccessChain %_ptr_Function_Inner_std140 %120 %127 - %134 = OpLoad %Inner_std140 %133 None - %135 = OpFunctionCall %Inner %tint_convert_Inner %134 - OpStore %132 %135 None + %132 = OpLabel + %134 = OpAccessChain %_ptr_Function_Inner %121 %127 + %135 = OpAccessChain %_ptr_Function_Inner_std140 %120 %127 + %136 = OpLoad %Inner_std140 %135 None + %137 = OpFunctionCall %Inner %tint_convert_Inner %136 + OpStore %134 %137 None OpBranch %124 %124 = OpLabel %128 = OpIAdd %uint %127 %uint_1 OpBranch %125 %126 = OpLabel - %136 = OpLoad %_arr_Inner_uint_4 %121 None - %137 = OpCompositeConstruct %Outer %136 - OpReturnValue %137 + %129 = OpLoad %_arr_Inner_uint_4 %121 None + %130 = OpCompositeConstruct %Outer %129 + OpReturnValue %130 OpFunctionEnd %tint_convert_explicit_layout = OpFunction %_arr_Inner_std140_uint_4_0 None %139 %tint_source = OpFunctionParameter %_arr_Inner_std140_uint_4 @@ -250,23 +250,23 @@ OpLoopMerge %149 %147 None OpBranch %146 %146 = OpLabel - %152 = OpUGreaterThanEqual %bool %150 %uint_4 - OpSelectionMerge %153 None - OpBranchConditional %152 %154 %153 - %154 = OpLabel + %153 = OpUGreaterThanEqual %bool %150 %uint_4 + OpSelectionMerge %154 None + OpBranchConditional %153 %155 %154 + %155 = OpLabel OpBranch %149 - %153 = OpLabel - %155 = OpAccessChain %_ptr_Function_Inner_std140 %141 %150 - %156 = OpLoad %Inner_std140 %155 None - %157 = OpAccessChain %_ptr_Function_Inner_std140 %143 %150 - OpStore %157 %156 None + %154 = OpLabel + %156 = OpAccessChain %_ptr_Function_Inner_std140 %141 %150 + %157 = OpLoad %Inner_std140 %156 None + %158 = OpAccessChain %_ptr_Function_Inner_std140 %143 %150 + OpStore %158 %157 None OpBranch %147 %147 = OpLabel %151 = OpIAdd %uint %150 %uint_1 OpBranch %148 %149 = OpLabel - %158 = OpLoad %_arr_Inner_std140_uint_4_0 %143 None - OpReturnValue %158 + %152 = OpLoad %_arr_Inner_std140_uint_4_0 %143 None + OpReturnValue %152 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer_std140 None %160 %tint_source_0 = OpFunctionParameter %Outer_std140_tint_explicit_layout @@ -290,22 +290,22 @@ OpLoopMerge %176 %174 None OpBranch %173 %173 = OpLabel - %179 = OpUGreaterThanEqual %bool %177 %uint_4 - OpSelectionMerge %180 None - OpBranchConditional %179 %181 %180 - %181 = OpLabel + %180 = OpUGreaterThanEqual %bool %177 %uint_4 + OpSelectionMerge %181 None + OpBranchConditional %180 %182 %181 + %182 = OpLabel OpBranch %176 - %180 = OpLabel - %182 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %168 %177 - %184 = OpLoad %Outer_std140_tint_explicit_layout %182 None - %185 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %184 - %186 = OpAccessChain %_ptr_Function_Outer_std140 %170 %177 - OpStore %186 %185 None + %181 = OpLabel + %183 = OpAccessChain %_ptr_Function_Outer_std140_tint_explicit_layout %168 %177 + %185 = OpLoad %Outer_std140_tint_explicit_layout %183 None + %186 = OpFunctionCall %Outer_std140 %tint_convert_explicit_layout_0 %185 + %187 = OpAccessChain %_ptr_Function_Outer_std140 %170 %177 + OpStore %187 %186 None OpBranch %174 %174 = OpLabel %178 = OpIAdd %uint %177 %uint_1 OpBranch %175 %176 = OpLabel - %187 = OpLoad %_arr_Outer_std140_uint_4 %170 None - OpReturnValue %187 + %179 = OpLoad %_arr_Outer_std140_uint_4 %170 None + OpReturnValue %179 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.spvasm index aaccf9b..74ee438 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.spvasm
@@ -76,14 +76,14 @@ %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %49 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Uniform_v4half = OpTypePointer Uniform %v4half + %uint_1 = OpConstant %uint 1 %uint_3 = OpConstant %uint 3 + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %99 = OpTypeFunction %S %S_std140 %110 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -129,47 +129,47 @@ OpLoopMerge %54 %52 None OpBranch %51 %51 = OpLabel - %57 = OpUGreaterThanEqual %bool %55 %uint_4 - OpSelectionMerge %59 None - OpBranchConditional %57 %60 %59 - %60 = OpLabel + %88 = OpUGreaterThanEqual %bool %55 %uint_4 + OpSelectionMerge %90 None + OpBranchConditional %88 %91 %90 + %91 = OpLabel OpBranch %54 - %59 = OpLabel - %61 = OpAccessChain %_ptr_Function_S %47 %55 - %63 = OpAccessChain %_ptr_Function_S_std140 %45 %55 - %65 = OpLoad %S_std140 %63 None - %66 = OpFunctionCall %S %tint_convert_S %65 - OpStore %61 %66 None + %90 = OpLabel + %92 = OpAccessChain %_ptr_Function_S %47 %55 + %94 = OpAccessChain %_ptr_Function_S_std140 %45 %55 + %96 = OpLoad %S_std140 %94 None + %97 = OpFunctionCall %S %tint_convert_S %96 + OpStore %92 %97 None OpBranch %52 %52 = OpLabel %56 = OpIAdd %uint %55 %uint_1 OpBranch %53 %54 = OpLabel - %69 = OpLoad %_arr_S_uint_4 %47 None - %70 = OpFunctionCall %void %a %69 - %71 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %71 None - %75 = OpFunctionCall %S %tint_convert_S %74 - %76 = OpFunctionCall %void %b %75 - %77 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 - %79 = OpLoad %v4half %77 None - %80 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 - %81 = OpLoad %v4half %80 None - %82 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_3 - %84 = OpLoad %v4half %82 None - %85 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_4 - %86 = OpLoad %v4half %85 None - %87 = OpCompositeConstruct %mat4v4half %79 %81 %84 %86 - %88 = OpFunctionCall %void %c %87 - %89 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 - %90 = OpLoad %v4half %89 None - %91 = OpVectorShuffle %v4half %90 %90 1 3 0 2 - %92 = OpFunctionCall %void %d %91 - %93 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 - %94 = OpLoad %v4half %93 None - %95 = OpVectorShuffle %v4half %94 %94 1 3 0 2 - %96 = OpCompositeExtract %half %95 0 - %97 = OpFunctionCall %void %e %96 + %57 = OpLoad %_arr_S_uint_4 %47 None + %58 = OpFunctionCall %void %a %57 + %59 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %62 = OpLoad %S_std140 %59 None + %63 = OpFunctionCall %S %tint_convert_S %62 + %65 = OpFunctionCall %void %b %63 + %66 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 + %69 = OpLoad %v4half %66 None + %70 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 + %71 = OpLoad %v4half %70 None + %72 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_3 + %74 = OpLoad %v4half %72 None + %75 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_4 + %76 = OpLoad %v4half %75 None + %77 = OpCompositeConstruct %mat4v4half %69 %71 %74 %76 + %78 = OpFunctionCall %void %c %77 + %79 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 + %80 = OpLoad %v4half %79 None + %81 = OpVectorShuffle %v4half %80 %80 1 3 0 2 + %82 = OpFunctionCall %void %d %81 + %83 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 + %84 = OpLoad %v4half %83 None + %85 = OpVectorShuffle %v4half %84 %84 1 3 0 2 + %86 = OpCompositeExtract %half %85 0 + %87 = OpFunctionCall %void %e %86 OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %99 @@ -199,21 +199,21 @@ OpLoopMerge %120 %118 None OpBranch %117 %117 = OpLabel - %123 = OpUGreaterThanEqual %bool %121 %uint_4 - OpSelectionMerge %124 None - OpBranchConditional %123 %125 %124 - %125 = OpLabel + %124 = OpUGreaterThanEqual %bool %121 %uint_4 + OpSelectionMerge %125 None + OpBranchConditional %124 %126 %125 + %126 = OpLabel OpBranch %120 - %124 = OpLabel - %126 = OpAccessChain %_ptr_Function_S_std140 %112 %121 - %127 = OpLoad %S_std140 %126 None - %128 = OpAccessChain %_ptr_Function_S_std140 %114 %121 - OpStore %128 %127 None + %125 = OpLabel + %127 = OpAccessChain %_ptr_Function_S_std140 %112 %121 + %128 = OpLoad %S_std140 %127 None + %129 = OpAccessChain %_ptr_Function_S_std140 %114 %121 + OpStore %129 %128 None OpBranch %118 %118 = OpLabel %122 = OpIAdd %uint %121 %uint_1 OpBranch %119 %120 = OpLabel - %129 = OpLoad %_arr_S_std140_uint_4_0 %114 None - OpReturnValue %129 + %123 = OpLoad %_arr_S_std140_uint_4_0 %114 None + OpReturnValue %123 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.spvasm index 509bbd2..dd32522 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.spvasm
@@ -64,17 +64,17 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Private_S = OpTypePointer Private %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 %_ptr_Private_mat4v4half = OpTypePointer Private %mat4v4half %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v4half = OpTypePointer Uniform %v4half %_ptr_Private_v4half = OpTypePointer Private %v4half + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %78 = OpTypeFunction %S %S_std140 %89 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 %_ptr_Function__arr_S_std140_uint_4 = OpTypePointer Function %_arr_S_std140_uint_4 @@ -95,45 +95,45 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_4 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %67 = OpUGreaterThanEqual %bool %37 %uint_4 + OpSelectionMerge %69 None + OpBranchConditional %67 %70 %69 + %70 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Function_S %30 %37 - %45 = OpAccessChain %_ptr_Function_S_std140 %28 %37 - %47 = OpLoad %S_std140 %45 None - %48 = OpFunctionCall %S %tint_convert_S %47 - OpStore %43 %48 None + %69 = OpLabel + %71 = OpAccessChain %_ptr_Function_S %30 %37 + %73 = OpAccessChain %_ptr_Function_S_std140 %28 %37 + %75 = OpLoad %S_std140 %73 None + %76 = OpFunctionCall %S %tint_convert_S %75 + OpStore %71 %76 None OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel - %51 = OpLoad %_arr_S_uint_4 %30 None - OpStore %p %51 None - %52 = OpAccessChain %_ptr_Private_S %p %uint_1 - %54 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %57 = OpLoad %S_std140 %54 None - %58 = OpFunctionCall %S %tint_convert_S %57 - OpStore %52 %58 None - %59 = OpAccessChain %_ptr_Private_mat4v4half %p %uint_3 %uint_1 - %62 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 - %64 = OpLoad %v4half %62 None - %65 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 - %66 = OpLoad %v4half %65 None - %67 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_3 - %68 = OpLoad %v4half %67 None - %69 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_4 - %70 = OpLoad %v4half %69 None - %71 = OpCompositeConstruct %mat4v4half %64 %66 %68 %70 - OpStore %59 %71 None - %72 = OpAccessChain %_ptr_Private_v4half %p %uint_1 %uint_1 %uint_0 - %74 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 - %75 = OpLoad %v4half %74 None - %76 = OpVectorShuffle %v4half %75 %75 1 3 0 2 - OpStore %72 %76 None + %39 = OpLoad %_arr_S_uint_4 %30 None + OpStore %p %39 None + %40 = OpAccessChain %_ptr_Private_S %p %uint_1 + %43 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %46 = OpLoad %S_std140 %43 None + %47 = OpFunctionCall %S %tint_convert_S %46 + OpStore %40 %47 None + %49 = OpAccessChain %_ptr_Private_mat4v4half %p %uint_3 %uint_1 + %52 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 + %54 = OpLoad %v4half %52 None + %55 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 + %56 = OpLoad %v4half %55 None + %57 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_3 + %58 = OpLoad %v4half %57 None + %59 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_4 + %60 = OpLoad %v4half %59 None + %61 = OpCompositeConstruct %mat4v4half %54 %56 %58 %60 + OpStore %49 %61 None + %62 = OpAccessChain %_ptr_Private_v4half %p %uint_1 %uint_1 %uint_0 + %64 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 + %65 = OpLoad %v4half %64 None + %66 = OpVectorShuffle %v4half %65 %65 1 3 0 2 + OpStore %62 %66 None OpReturn OpFunctionEnd %tint_convert_S = OpFunction %S None %78 @@ -163,21 +163,21 @@ OpLoopMerge %99 %97 None OpBranch %96 %96 = OpLabel - %102 = OpUGreaterThanEqual %bool %100 %uint_4 - OpSelectionMerge %103 None - OpBranchConditional %102 %104 %103 - %104 = OpLabel + %103 = OpUGreaterThanEqual %bool %100 %uint_4 + OpSelectionMerge %104 None + OpBranchConditional %103 %105 %104 + %105 = OpLabel OpBranch %99 - %103 = OpLabel - %105 = OpAccessChain %_ptr_Function_S_std140 %91 %100 - %106 = OpLoad %S_std140 %105 None - %107 = OpAccessChain %_ptr_Function_S_std140 %93 %100 - OpStore %107 %106 None + %104 = OpLabel + %106 = OpAccessChain %_ptr_Function_S_std140 %91 %100 + %107 = OpLoad %S_std140 %106 None + %108 = OpAccessChain %_ptr_Function_S_std140 %93 %100 + OpStore %108 %107 None OpBranch %97 %97 = OpLabel %101 = OpIAdd %uint %100 %uint_1 OpBranch %98 %99 = OpLabel - %108 = OpLoad %_arr_S_std140_uint_4_0 %93 None - OpReturnValue %108 + %102 = OpLoad %_arr_S_std140_uint_4_0 %93 None + OpReturnValue %102 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_storage.wgsl.expected.spvasm index 2878686..523348c 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_storage.wgsl.expected.spvasm
@@ -88,17 +88,17 @@ %_arr_S_uint_4 = OpTypeArray %S %uint_4 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 %34 = OpConstantNull %_arr_S_uint_4 - %bool = OpTypeBool -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 - %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %uint_2 = OpConstant %uint 2 + %uint_1 = OpConstant %uint 1 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1 %_ptr_StorageBuffer_mat4v4half = OpTypePointer StorageBuffer %mat4v4half %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v4half = OpTypePointer Uniform %v4half %_ptr_StorageBuffer_v4half = OpTypePointer StorageBuffer %v4half + %bool = OpTypeBool +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %85 = OpTypeFunction %void %_arr_S_uint_4 %104 = OpTypeFunction %void %_arr_uint_uint_1 %S %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int @@ -122,45 +122,45 @@ OpLoopMerge %39 %37 None OpBranch %36 %36 = OpLabel - %42 = OpUGreaterThanEqual %bool %40 %uint_4 - OpSelectionMerge %44 None - OpBranchConditional %42 %45 %44 - %45 = OpLabel + %74 = OpUGreaterThanEqual %bool %40 %uint_4 + OpSelectionMerge %76 None + OpBranchConditional %74 %77 %76 + %77 = OpLabel OpBranch %39 - %44 = OpLabel - %46 = OpAccessChain %_ptr_Function_S %30 %40 - %48 = OpAccessChain %_ptr_Function_S_std140 %28 %40 - %50 = OpLoad %S_std140 %48 None - %51 = OpFunctionCall %S %tint_convert_S %50 - OpStore %46 %51 None + %76 = OpLabel + %78 = OpAccessChain %_ptr_Function_S %30 %40 + %80 = OpAccessChain %_ptr_Function_S_std140 %28 %40 + %82 = OpLoad %S_std140 %80 None + %83 = OpFunctionCall %S %tint_convert_S %82 + OpStore %78 %83 None OpBranch %37 %37 = OpLabel %41 = OpIAdd %uint %40 %uint_1 OpBranch %38 %39 = OpLabel - %54 = OpLoad %_arr_S_uint_4 %30 None - %55 = OpFunctionCall %void %tint_store_and_preserve_padding %54 - %57 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %60 = OpLoad %S_std140 %57 None - %61 = OpFunctionCall %S %tint_convert_S %60 - %63 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 - %64 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %63 %61 - %66 = OpAccessChain %_ptr_StorageBuffer_mat4v4half %11 %uint_0 %uint_3 %uint_1 - %69 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 - %71 = OpLoad %v4half %69 None - %72 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 - %73 = OpLoad %v4half %72 None - %74 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_3 - %75 = OpLoad %v4half %74 None - %76 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_4 - %77 = OpLoad %v4half %76 None - %78 = OpCompositeConstruct %mat4v4half %71 %73 %75 %77 - OpStore %66 %78 None - %79 = OpAccessChain %_ptr_StorageBuffer_v4half %11 %uint_0 %uint_1 %uint_1 %uint_0 - %81 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 - %82 = OpLoad %v4half %81 None - %83 = OpVectorShuffle %v4half %82 %82 1 3 0 2 - OpStore %79 %83 None + %42 = OpLoad %_arr_S_uint_4 %30 None + %43 = OpFunctionCall %void %tint_store_and_preserve_padding %42 + %45 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %48 = OpLoad %S_std140 %45 None + %49 = OpFunctionCall %S %tint_convert_S %48 + %53 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 + %54 = OpFunctionCall %void %tint_store_and_preserve_padding_0 %53 %49 + %56 = OpAccessChain %_ptr_StorageBuffer_mat4v4half %11 %uint_0 %uint_3 %uint_1 + %59 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 + %61 = OpLoad %v4half %59 None + %62 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 + %63 = OpLoad %v4half %62 None + %64 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_3 + %65 = OpLoad %v4half %64 None + %66 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_4 + %67 = OpLoad %v4half %66 None + %68 = OpCompositeConstruct %mat4v4half %61 %63 %65 %67 + OpStore %56 %68 None + %69 = OpAccessChain %_ptr_StorageBuffer_v4half %11 %uint_0 %uint_1 %uint_1 %uint_0 + %71 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 + %72 = OpLoad %v4half %71 None + %73 = OpVectorShuffle %v4half %72 %72 1 3 0 2 + OpStore %69 %73 None OpReturn OpFunctionEnd %tint_store_and_preserve_padding = OpFunction %void None %85 @@ -236,21 +236,21 @@ OpLoopMerge %136 %134 None OpBranch %133 %133 = OpLabel - %139 = OpUGreaterThanEqual %bool %137 %uint_4 - OpSelectionMerge %140 None - OpBranchConditional %139 %141 %140 - %141 = OpLabel + %140 = OpUGreaterThanEqual %bool %137 %uint_4 + OpSelectionMerge %141 None + OpBranchConditional %140 %142 %141 + %142 = OpLabel OpBranch %136 - %140 = OpLabel - %142 = OpAccessChain %_ptr_Function_S_std140 %128 %137 - %143 = OpLoad %S_std140 %142 None - %144 = OpAccessChain %_ptr_Function_S_std140 %130 %137 - OpStore %144 %143 None + %141 = OpLabel + %143 = OpAccessChain %_ptr_Function_S_std140 %128 %137 + %144 = OpLoad %S_std140 %143 None + %145 = OpAccessChain %_ptr_Function_S_std140 %130 %137 + OpStore %145 %144 None OpBranch %134 %134 = OpLabel %138 = OpIAdd %uint %137 %uint_1 OpBranch %135 %136 = OpLabel - %145 = OpLoad %_arr_S_std140_uint_4_0 %130 None - OpReturnValue %145 + %139 = OpLoad %_arr_S_std140_uint_4_0 %130 None + OpReturnValue %139 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.spvasm index dcf0458..8f4367b 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.spvasm
@@ -64,10 +64,6 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %21 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_S = OpTypePointer Workgroup %S - %36 = OpConstantNull %S - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_S_std140_uint_4 = OpTypePointer Uniform %_arr_S_std140_uint_4 @@ -75,14 +71,18 @@ %_arr_S_std140_uint_4_0 = OpTypeArray %S_std140 %uint_4 %_ptr_Function__arr_S_std140_uint_4_0 = OpTypePointer Function %_arr_S_std140_uint_4_0 %_ptr_Function__arr_S_uint_4 = OpTypePointer Function %_arr_S_uint_4 - %52 = OpConstantNull %_arr_S_uint_4 -%_ptr_Function_S = OpTypePointer Function %S -%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 + %44 = OpConstantNull %_arr_S_uint_4 +%_ptr_Workgroup_S = OpTypePointer Workgroup %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140 %_ptr_Workgroup_mat4v4half = OpTypePointer Workgroup %mat4v4half %uint_3 = OpConstant %uint 3 %_ptr_Uniform_v4half = OpTypePointer Uniform %v4half %_ptr_Workgroup_v4half = OpTypePointer Workgroup %v4half + %bool = OpTypeBool + %84 = OpConstantNull %S +%_ptr_Function_S = OpTypePointer Function %S +%_ptr_Function_S_std140 = OpTypePointer Function %S_std140 %95 = OpTypeFunction %void %100 = OpTypeFunction %S %S_std140 %111 = OpTypeFunction %_arr_S_std140_uint_4_0 %_arr_S_std140_uint_4 @@ -91,8 +91,8 @@ %f_inner = OpFunction %void None %21 %tint_local_index = OpFunctionParameter %uint %22 = OpLabel - %48 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function - %50 = OpVariable %_ptr_Function__arr_S_uint_4 Function %52 + %40 = OpVariable %_ptr_Function__arr_S_std140_uint_4_0 Function + %42 = OpVariable %_ptr_Function__arr_S_uint_4 Function %44 OpBranch %23 %23 = OpLabel OpBranch %26 @@ -101,71 +101,71 @@ OpLoopMerge %27 %25 None OpBranch %24 %24 = OpLabel - %30 = OpUGreaterThanEqual %bool %28 %uint_4 - OpSelectionMerge %32 None - OpBranchConditional %30 %33 %32 - %33 = OpLabel + %79 = OpUGreaterThanEqual %bool %28 %uint_4 + OpSelectionMerge %81 None + OpBranchConditional %79 %82 %81 + %82 = OpLabel OpBranch %27 - %32 = OpLabel - %34 = OpAccessChain %_ptr_Workgroup_S %w %28 - OpStore %34 %36 None + %81 = OpLabel + %83 = OpAccessChain %_ptr_Workgroup_S %w %28 + OpStore %83 %84 None OpBranch %25 %25 = OpLabel %29 = OpIAdd %uint %28 %uint_1 OpBranch %26 %27 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %41 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 - %44 = OpLoad %_arr_S_std140_uint_4 %41 None - %45 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %44 - OpStore %48 %45 - OpBranch %53 - %53 = OpLabel - OpBranch %56 - %56 = OpLabel - %58 = OpPhi %uint %uint_0 %53 %59 %55 - OpLoopMerge %57 %55 None - OpBranch %54 - %54 = OpLabel - %60 = OpUGreaterThanEqual %bool %58 %uint_4 - OpSelectionMerge %61 None - OpBranchConditional %60 %62 %61 - %62 = OpLabel - OpBranch %57 - %61 = OpLabel - %63 = OpAccessChain %_ptr_Function_S %50 %58 - %65 = OpAccessChain %_ptr_Function_S_std140 %48 %58 - %67 = OpLoad %S_std140 %65 None - %68 = OpFunctionCall %S %tint_convert_S %67 - OpStore %63 %68 None - OpBranch %55 - %55 = OpLabel - %59 = OpIAdd %uint %58 %uint_1 - OpBranch %56 - %57 = OpLabel - %70 = OpLoad %_arr_S_uint_4 %50 None - OpStore %w %70 None - %71 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 - %72 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 - %74 = OpLoad %S_std140 %72 None - %75 = OpFunctionCall %S %tint_convert_S %74 - OpStore %71 %75 None - %76 = OpAccessChain %_ptr_Workgroup_mat4v4half %w %uint_3 %uint_1 - %79 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 - %81 = OpLoad %v4half %79 None - %82 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 - %83 = OpLoad %v4half %82 None - %84 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_3 - %85 = OpLoad %v4half %84 None - %86 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_4 - %87 = OpLoad %v4half %86 None - %88 = OpCompositeConstruct %mat4v4half %81 %83 %85 %87 - OpStore %76 %88 None - %89 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_1 %uint_1 %uint_0 - %91 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 - %92 = OpLoad %v4half %91 None - %93 = OpVectorShuffle %v4half %92 %92 1 3 0 2 - OpStore %89 %93 None + %33 = OpAccessChain %_ptr_Uniform__arr_S_std140_uint_4 %1 %uint_0 + %36 = OpLoad %_arr_S_std140_uint_4 %33 None + %37 = OpFunctionCall %_arr_S_std140_uint_4_0 %tint_convert_explicit_layout %36 + OpStore %40 %37 + OpBranch %45 + %45 = OpLabel + OpBranch %48 + %48 = OpLabel + %50 = OpPhi %uint %uint_0 %45 %51 %47 + OpLoopMerge %49 %47 None + OpBranch %46 + %46 = OpLabel + %85 = OpUGreaterThanEqual %bool %50 %uint_4 + OpSelectionMerge %86 None + OpBranchConditional %85 %87 %86 + %87 = OpLabel + OpBranch %49 + %86 = OpLabel + %88 = OpAccessChain %_ptr_Function_S %42 %50 + %90 = OpAccessChain %_ptr_Function_S_std140 %40 %50 + %92 = OpLoad %S_std140 %90 None + %93 = OpFunctionCall %S %tint_convert_S %92 + OpStore %88 %93 None + OpBranch %47 + %47 = OpLabel + %51 = OpIAdd %uint %50 %uint_1 + OpBranch %48 + %49 = OpLabel + %52 = OpLoad %_arr_S_uint_4 %42 None + OpStore %w %52 None + %53 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 + %56 = OpAccessChain %_ptr_Uniform_S_std140 %1 %uint_0 %uint_2 + %58 = OpLoad %S_std140 %56 None + %59 = OpFunctionCall %S %tint_convert_S %58 + OpStore %53 %59 None + %61 = OpAccessChain %_ptr_Workgroup_mat4v4half %w %uint_3 %uint_1 + %64 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_1 + %66 = OpLoad %v4half %64 None + %67 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_2 + %68 = OpLoad %v4half %67 None + %69 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_3 + %70 = OpLoad %v4half %69 None + %71 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_2 %uint_4 + %72 = OpLoad %v4half %71 None + %73 = OpCompositeConstruct %mat4v4half %66 %68 %70 %72 + OpStore %61 %73 None + %74 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_1 %uint_1 %uint_0 + %76 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 %uint_0 %uint_2 + %77 = OpLoad %v4half %76 None + %78 = OpVectorShuffle %v4half %77 %77 1 3 0 2 + OpStore %74 %78 None OpReturn OpFunctionEnd %f = OpFunction %void None %95 @@ -201,21 +201,21 @@ OpLoopMerge %121 %119 None OpBranch %118 %118 = OpLabel - %124 = OpUGreaterThanEqual %bool %122 %uint_4 - OpSelectionMerge %125 None - OpBranchConditional %124 %126 %125 - %126 = OpLabel + %125 = OpUGreaterThanEqual %bool %122 %uint_4 + OpSelectionMerge %126 None + OpBranchConditional %125 %127 %126 + %127 = OpLabel OpBranch %121 - %125 = OpLabel - %127 = OpAccessChain %_ptr_Function_S_std140 %113 %122 - %128 = OpLoad %S_std140 %127 None - %129 = OpAccessChain %_ptr_Function_S_std140 %115 %122 - OpStore %129 %128 None + %126 = OpLabel + %128 = OpAccessChain %_ptr_Function_S_std140 %113 %122 + %129 = OpLoad %S_std140 %128 None + %130 = OpAccessChain %_ptr_Function_S_std140 %115 %122 + OpStore %130 %129 None OpBranch %119 %119 = OpLabel %123 = OpIAdd %uint %122 %uint_1 OpBranch %120 %121 = OpLabel - %130 = OpLoad %_arr_S_std140_uint_4_0 %115 None - OpReturnValue %130 + %124 = OpLoad %_arr_S_std140_uint_4_0 %115 None + OpReturnValue %124 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.spvasm index cbb3848..a2759c5 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.spvasm
@@ -150,23 +150,23 @@ OpLoopMerge %85 %83 None OpBranch %82 %82 = OpLabel - %88 = OpUGreaterThanEqual %bool %86 %uint_4 - OpSelectionMerge %90 None - OpBranchConditional %88 %91 %90 - %91 = OpLabel + %89 = OpUGreaterThanEqual %bool %86 %uint_4 + OpSelectionMerge %91 None + OpBranchConditional %89 %92 %91 + %92 = OpLabel OpBranch %85 - %90 = OpLabel - %92 = OpAccessChain %_ptr_Function_Inner %76 %86 - %94 = OpLoad %Inner %92 None - %95 = OpAccessChain %_ptr_Function_Inner %78 %86 - OpStore %95 %94 None + %91 = OpLabel + %93 = OpAccessChain %_ptr_Function_Inner %76 %86 + %95 = OpLoad %Inner %93 None + %96 = OpAccessChain %_ptr_Function_Inner %78 %86 + OpStore %96 %95 None OpBranch %83 %83 = OpLabel %87 = OpIAdd %uint %86 %uint_1 OpBranch %84 %85 = OpLabel - %97 = OpLoad %_arr_Inner_uint_4_0 %78 None - OpReturnValue %97 + %88 = OpLoad %_arr_Inner_uint_4_0 %78 None + OpReturnValue %88 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer None %99 %tint_source_0 = OpFunctionParameter %Outer_tint_explicit_layout @@ -190,22 +190,22 @@ OpLoopMerge %116 %114 None OpBranch %113 %113 = OpLabel - %119 = OpUGreaterThanEqual %bool %117 %uint_4 - OpSelectionMerge %120 None - OpBranchConditional %119 %121 %120 - %121 = OpLabel + %120 = OpUGreaterThanEqual %bool %117 %uint_4 + OpSelectionMerge %121 None + OpBranchConditional %120 %122 %121 + %122 = OpLabel OpBranch %116 - %120 = OpLabel - %122 = OpAccessChain %_ptr_Function_Outer_tint_explicit_layout %107 %117 - %124 = OpLoad %Outer_tint_explicit_layout %122 None - %125 = OpFunctionCall %Outer %tint_convert_explicit_layout_0 %124 - %126 = OpAccessChain %_ptr_Function_Outer %109 %117 - OpStore %126 %125 None + %121 = OpLabel + %123 = OpAccessChain %_ptr_Function_Outer_tint_explicit_layout %107 %117 + %125 = OpLoad %Outer_tint_explicit_layout %123 None + %126 = OpFunctionCall %Outer %tint_convert_explicit_layout_0 %125 + %127 = OpAccessChain %_ptr_Function_Outer %109 %117 + OpStore %127 %126 None OpBranch %114 %114 = OpLabel %118 = OpIAdd %uint %117 %uint_1 OpBranch %115 %116 = OpLabel - %128 = OpLoad %_arr_Outer_uint_4 %109 None - OpReturnValue %128 + %119 = OpLoad %_arr_Outer_uint_4 %109 None + OpReturnValue %119 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.spvasm index 4e37035..6f4c424 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.spvasm
@@ -122,23 +122,23 @@ OpLoopMerge %63 %61 None OpBranch %60 %60 = OpLabel - %66 = OpUGreaterThanEqual %bool %64 %uint_4 - OpSelectionMerge %68 None - OpBranchConditional %66 %69 %68 - %69 = OpLabel + %67 = OpUGreaterThanEqual %bool %64 %uint_4 + OpSelectionMerge %69 None + OpBranchConditional %67 %70 %69 + %70 = OpLabel OpBranch %63 - %68 = OpLabel - %70 = OpAccessChain %_ptr_Function_Inner %54 %64 - %72 = OpLoad %Inner %70 None - %73 = OpAccessChain %_ptr_Function_Inner %56 %64 - OpStore %73 %72 None + %69 = OpLabel + %71 = OpAccessChain %_ptr_Function_Inner %54 %64 + %73 = OpLoad %Inner %71 None + %74 = OpAccessChain %_ptr_Function_Inner %56 %64 + OpStore %74 %73 None OpBranch %61 %61 = OpLabel %65 = OpIAdd %uint %64 %uint_1 OpBranch %62 %63 = OpLabel - %74 = OpLoad %_arr_Inner_uint_4_0 %56 None - OpReturnValue %74 + %66 = OpLoad %_arr_Inner_uint_4_0 %56 None + OpReturnValue %66 OpFunctionEnd %tint_convert_explicit_layout_0 = OpFunction %Outer None %76 %tint_source_0 = OpFunctionParameter %Outer_tint_explicit_layout @@ -162,22 +162,22 @@ OpLoopMerge %93 %91 None OpBranch %90 %90 = OpLabel - %96 = OpUGreaterThanEqual %bool %94 %uint_4 - OpSelectionMerge %97 None - OpBranchConditional %96 %98 %97 - %98 = OpLabel + %97 = OpUGreaterThanEqual %bool %94 %uint_4 + OpSelectionMerge %98 None + OpBranchConditional %97 %99 %98 + %99 = OpLabel OpBranch %93 - %97 = OpLabel - %99 = OpAccessChain %_ptr_Function_Outer_tint_explicit_layout %84 %94 - %101 = OpLoad %Outer_tint_explicit_layout %99 None - %102 = OpFunctionCall %Outer %tint_convert_explicit_layout_0 %101 - %103 = OpAccessChain %_ptr_Function_Outer %86 %94 - OpStore %103 %102 None + %98 = OpLabel + %100 = OpAccessChain %_ptr_Function_Outer_tint_explicit_layout %84 %94 + %102 = OpLoad %Outer_tint_explicit_layout %100 None + %103 = OpFunctionCall %Outer %tint_convert_explicit_layout_0 %102 + %104 = OpAccessChain %_ptr_Function_Outer %86 %94 + OpStore %104 %103 None OpBranch %91 %91 = OpLabel %95 = OpIAdd %uint %94 %uint_1 OpBranch %92 %93 = OpLabel - %105 = OpLoad %_arr_Outer_uint_4 %86 None - OpReturnValue %105 + %96 = OpLoad %_arr_Outer_uint_4 %86 None + OpReturnValue %96 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.spvasm index 5250528..23373a1 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.spvasm
@@ -131,21 +131,21 @@ OpLoopMerge %76 %74 None OpBranch %73 %73 = OpLabel - %79 = OpUGreaterThanEqual %bool %77 %uint_4 - OpSelectionMerge %81 None - OpBranchConditional %79 %82 %81 - %82 = OpLabel + %80 = OpUGreaterThanEqual %bool %77 %uint_4 + OpSelectionMerge %82 None + OpBranchConditional %80 %83 %82 + %83 = OpLabel OpBranch %76 - %81 = OpLabel - %83 = OpAccessChain %_ptr_Function_S %67 %77 - %85 = OpLoad %S %83 None - %86 = OpAccessChain %_ptr_Function_S %69 %77 - OpStore %86 %85 None + %82 = OpLabel + %84 = OpAccessChain %_ptr_Function_S %67 %77 + %86 = OpLoad %S %84 None + %87 = OpAccessChain %_ptr_Function_S %69 %77 + OpStore %87 %86 None OpBranch %74 %74 = OpLabel %78 = OpIAdd %uint %77 %uint_1 OpBranch %75 %76 = OpLabel - %87 = OpLoad %_arr_S_uint_4_0 %69 None - OpReturnValue %87 + %79 = OpLoad %_arr_S_uint_4_0 %69 None + OpReturnValue %79 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.spvasm index 20a3946..dd14d1c 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.spvasm
@@ -115,22 +115,22 @@ OpLoopMerge %66 %64 None OpBranch %63 %63 = OpLabel - %69 = OpUGreaterThanEqual %bool %67 %uint_4 - OpSelectionMerge %71 None - OpBranchConditional %69 %72 %71 - %72 = OpLabel + %70 = OpUGreaterThanEqual %bool %67 %uint_4 + OpSelectionMerge %72 None + OpBranchConditional %70 %73 %72 + %73 = OpLabel OpBranch %66 - %71 = OpLabel - %73 = OpAccessChain %_ptr_Function_S_tint_explicit_layout %58 %67 - %75 = OpLoad %S_tint_explicit_layout %73 None - %76 = OpFunctionCall %S %tint_convert_explicit_layout %75 - %77 = OpAccessChain %_ptr_Function_S %60 %67 - OpStore %77 %76 None + %72 = OpLabel + %74 = OpAccessChain %_ptr_Function_S_tint_explicit_layout %58 %67 + %76 = OpLoad %S_tint_explicit_layout %74 None + %77 = OpFunctionCall %S %tint_convert_explicit_layout %76 + %78 = OpAccessChain %_ptr_Function_S %60 %67 + OpStore %78 %77 None OpBranch %64 %64 = OpLabel %68 = OpIAdd %uint %67 %uint_1 OpBranch %65 %66 = OpLabel - %79 = OpLoad %_arr_S_uint_4 %60 None - OpReturnValue %79 + %69 = OpLoad %_arr_S_uint_4 %60 None + OpReturnValue %69 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_storage.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_storage.wgsl.expected.spvasm index c3fc9ce..dbb7e49 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_storage.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_storage.wgsl.expected.spvasm
@@ -157,21 +157,21 @@ OpLoopMerge %93 %91 None OpBranch %90 %90 = OpLabel - %96 = OpUGreaterThanEqual %bool %94 %uint_4 - OpSelectionMerge %97 None - OpBranchConditional %96 %98 %97 - %98 = OpLabel + %97 = OpUGreaterThanEqual %bool %94 %uint_4 + OpSelectionMerge %98 None + OpBranchConditional %97 %99 %98 + %99 = OpLabel OpBranch %93 - %97 = OpLabel - %99 = OpAccessChain %_ptr_Function_S %85 %94 - %100 = OpLoad %S %99 None - %101 = OpAccessChain %_ptr_Function_S %87 %94 - OpStore %101 %100 None + %98 = OpLabel + %100 = OpAccessChain %_ptr_Function_S %85 %94 + %101 = OpLoad %S %100 None + %102 = OpAccessChain %_ptr_Function_S %87 %94 + OpStore %102 %101 None OpBranch %91 %91 = OpLabel %95 = OpIAdd %uint %94 %uint_1 OpBranch %92 %93 = OpLabel - %102 = OpLoad %_arr_S_uint_4_0 %87 None - OpReturnValue %102 + %96 = OpLoad %_arr_S_uint_4_0 %87 None + OpReturnValue %96 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.spvasm index 0e5f18e..dfa9f96 100644 --- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.spvasm
@@ -57,20 +57,20 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %21 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_S = OpTypePointer Workgroup %S - %36 = OpConstantNull %S - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform__arr_S_tint_explicit_layout_uint_4 = OpTypePointer Uniform %_arr_S_tint_explicit_layout_uint_4 %uint_0 = OpConstant %uint 0 +%_ptr_Workgroup_S = OpTypePointer Workgroup %S + %uint_1 = OpConstant %uint 1 %_ptr_Uniform_S_tint_explicit_layout = OpTypePointer Uniform %S_tint_explicit_layout %_ptr_Workgroup_mat4v4float = OpTypePointer Workgroup %mat4v4float %uint_3 = OpConstant %uint 3 %_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float %_ptr_Workgroup_v4float = OpTypePointer Workgroup %v4float %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float + %bool = OpTypeBool + %64 = OpConstantNull %S %66 = OpTypeFunction %void %71 = OpTypeFunction %S %S_tint_explicit_layout %78 = OpTypeFunction %_arr_S_uint_4 %_arr_S_tint_explicit_layout_uint_4 @@ -90,38 +90,38 @@ OpLoopMerge %27 %25 None OpBranch %24 %24 = OpLabel - %30 = OpUGreaterThanEqual %bool %28 %uint_4 - OpSelectionMerge %32 None - OpBranchConditional %30 %33 %32 - %33 = OpLabel + %59 = OpUGreaterThanEqual %bool %28 %uint_4 + OpSelectionMerge %61 None + OpBranchConditional %59 %62 %61 + %62 = OpLabel OpBranch %27 - %32 = OpLabel - %34 = OpAccessChain %_ptr_Workgroup_S %w %28 - OpStore %34 %36 None + %61 = OpLabel + %63 = OpAccessChain %_ptr_Workgroup_S %w %28 + OpStore %63 %64 None OpBranch %25 %25 = OpLabel %29 = OpIAdd %uint %28 %uint_1 OpBranch %26 %27 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %41 = OpAccessChain %_ptr_Uniform__arr_S_tint_explicit_layout_uint_4 %1 %uint_0 - %44 = OpLoad %_arr_S_tint_explicit_layout_uint_4 %41 None - %45 = OpFunctionCall %_arr_S_uint_4 %tint_convert_explicit_layout_0 %44 - OpStore %w %45 None - %47 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 - %48 = OpAccessChain %_ptr_Uniform_S_tint_explicit_layout %1 %uint_0 %uint_2 - %50 = OpLoad %S_tint_explicit_layout %48 None - %51 = OpFunctionCall %S %tint_convert_explicit_layout %50 - OpStore %47 %51 None - %53 = OpAccessChain %_ptr_Workgroup_mat4v4float %w %uint_3 %uint_1 - %56 = OpAccessChain %_ptr_Uniform_mat4v4float %1 %uint_0 %uint_2 %uint_1 - %58 = OpLoad %mat4v4float %56 None + %33 = OpAccessChain %_ptr_Uniform__arr_S_tint_explicit_layout_uint_4 %1 %uint_0 + %36 = OpLoad %_arr_S_tint_explicit_layout_uint_4 %33 None + %37 = OpFunctionCall %_arr_S_uint_4 %tint_convert_explicit_layout_0 %36 + OpStore %w %37 None + %39 = OpAccessChain %_ptr_Workgroup_S %w %uint_1 + %42 = OpAccessChain %_ptr_Uniform_S_tint_explicit_layout %1 %uint_0 %uint_2 + %44 = OpLoad %S_tint_explicit_layout %42 None + %45 = OpFunctionCall %S %tint_convert_explicit_layout %44 + OpStore %39 %45 None + %47 = OpAccessChain %_ptr_Workgroup_mat4v4float %w %uint_3 %uint_1 + %50 = OpAccessChain %_ptr_Uniform_mat4v4float %1 %uint_0 %uint_2 %uint_1 + %52 = OpLoad %mat4v4float %50 None + OpStore %47 %52 None + %53 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 %uint_1 %uint_0 + %55 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 %uint_1 %uint_1 + %57 = OpLoad %v4float %55 None + %58 = OpVectorShuffle %v4float %57 %57 1 3 0 2 OpStore %53 %58 None - %59 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 %uint_1 %uint_0 - %61 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 %uint_1 %uint_1 - %63 = OpLoad %v4float %61 None - %64 = OpVectorShuffle %v4float %63 %63 1 3 0 2 - OpStore %59 %64 None OpReturn OpFunctionEnd %f = OpFunction %void None %66 @@ -153,22 +153,22 @@ OpLoopMerge %89 %87 None OpBranch %86 %86 = OpLabel - %92 = OpUGreaterThanEqual %bool %90 %uint_4 - OpSelectionMerge %93 None - OpBranchConditional %92 %94 %93 - %94 = OpLabel + %93 = OpUGreaterThanEqual %bool %90 %uint_4 + OpSelectionMerge %94 None + OpBranchConditional %93 %95 %94 + %95 = OpLabel OpBranch %89 - %93 = OpLabel - %95 = OpAccessChain %_ptr_Function_S_tint_explicit_layout %80 %90 - %97 = OpLoad %S_tint_explicit_layout %95 None - %98 = OpFunctionCall %S %tint_convert_explicit_layout %97 - %99 = OpAccessChain %_ptr_Function_S %82 %90 - OpStore %99 %98 None + %94 = OpLabel + %96 = OpAccessChain %_ptr_Function_S_tint_explicit_layout %80 %90 + %98 = OpLoad %S_tint_explicit_layout %96 None + %99 = OpFunctionCall %S %tint_convert_explicit_layout %98 + %100 = OpAccessChain %_ptr_Function_S %82 %90 + OpStore %100 %99 None OpBranch %87 %87 = OpLabel %91 = OpIAdd %uint %90 %uint_1 OpBranch %88 %89 = OpLabel - %101 = OpLoad %_arr_S_uint_4 %82 None - OpReturnValue %101 + %92 = OpLoad %_arr_S_uint_4 %82 None + OpReturnValue %92 OpFunctionEnd
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_workgroup.wgsl.expected.spvasm index ccd227c..a68aa7f 100644 --- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_workgroup.wgsl.expected.spvasm
@@ -40,7 +40,6 @@ %15 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %22 = OpConstantNull %mat2v2half %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform_v2half = OpTypePointer Uniform %v2half @@ -48,6 +47,7 @@ %_ptr_Workgroup_v2half = OpTypePointer Workgroup %v2half %_ptr_Uniform_half = OpTypePointer Uniform %half %_ptr_Workgroup_half = OpTypePointer Workgroup %half + %47 = OpConstantNull %mat2v2half %49 = OpTypeFunction %void %f_inner = OpFunction %void None %15 %tint_local_index = OpFunctionParameter %uint @@ -56,31 +56,31 @@ OpSelectionMerge %20 None OpBranchConditional %17 %21 %20 %21 = OpLabel - OpStore %w %22 None + OpStore %w %47 None OpBranch %20 %20 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %26 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 - %29 = OpLoad %v2half %26 None - %30 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_1 - %31 = OpLoad %v2half %30 None - %32 = OpCompositeConstruct %mat2v2half %29 %31 - OpStore %w %32 None - %33 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_1 - %35 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 - %36 = OpLoad %v2half %35 None - OpStore %33 %36 None - %37 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_1 - %38 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 - %39 = OpLoad %v2half %38 None - %40 = OpVectorShuffle %v2half %39 %39 1 0 - OpStore %37 %40 None - %41 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_0 - %42 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_1 - %43 = OpAccessChain %_ptr_Uniform_half %42 %uint_0 - %45 = OpLoad %half %43 None - %46 = OpAccessChain %_ptr_Workgroup_half %41 %uint_1 - OpStore %46 %45 None + %25 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 + %28 = OpLoad %v2half %25 None + %29 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_1 + %30 = OpLoad %v2half %29 None + %31 = OpCompositeConstruct %mat2v2half %28 %30 + OpStore %w %31 None + %32 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_1 + %34 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 + %35 = OpLoad %v2half %34 None + OpStore %32 %35 None + %36 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_1 + %37 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 + %38 = OpLoad %v2half %37 None + %39 = OpVectorShuffle %v2half %38 %38 1 0 + OpStore %36 %39 None + %40 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_0 + %41 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_1 + %42 = OpAccessChain %_ptr_Uniform_half %41 %uint_0 + %44 = OpLoad %half %42 None + %45 = OpAccessChain %_ptr_Workgroup_half %40 %uint_1 + OpStore %45 %44 None OpReturn OpFunctionEnd %f = OpFunction %void None %49
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_workgroup.wgsl.expected.spvasm index b9e8dee..22947f7 100644 --- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_workgroup.wgsl.expected.spvasm
@@ -37,7 +37,6 @@ %15 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %22 = OpConstantNull %mat2v2float %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float @@ -45,6 +44,7 @@ %_ptr_Workgroup_v2float = OpTypePointer Workgroup %v2float %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Workgroup_float = OpTypePointer Workgroup %float + %47 = OpConstantNull %mat2v2float %49 = OpTypeFunction %void %f_inner = OpFunction %void None %15 %tint_local_index = OpFunctionParameter %uint @@ -53,31 +53,31 @@ OpSelectionMerge %20 None OpBranchConditional %17 %21 %20 %21 = OpLabel - OpStore %w %22 None + OpStore %w %47 None OpBranch %20 %20 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %26 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 - %29 = OpLoad %v2float %26 None - %30 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_1 - %31 = OpLoad %v2float %30 None - %32 = OpCompositeConstruct %mat2v2float %29 %31 - OpStore %w %32 None - %33 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_1 - %35 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 - %36 = OpLoad %v2float %35 None - OpStore %33 %36 None - %37 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_1 - %38 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 - %39 = OpLoad %v2float %38 None - %40 = OpVectorShuffle %v2float %39 %39 1 0 - OpStore %37 %40 None - %41 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_0 - %42 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_1 - %43 = OpAccessChain %_ptr_Uniform_float %42 %uint_0 - %45 = OpLoad %float %43 None - %46 = OpAccessChain %_ptr_Workgroup_float %41 %uint_1 - OpStore %46 %45 None + %25 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 + %28 = OpLoad %v2float %25 None + %29 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_1 + %30 = OpLoad %v2float %29 None + %31 = OpCompositeConstruct %mat2v2float %28 %30 + OpStore %w %31 None + %32 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_1 + %34 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 + %35 = OpLoad %v2float %34 None + OpStore %32 %35 None + %36 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_1 + %37 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 + %38 = OpLoad %v2float %37 None + %39 = OpVectorShuffle %v2float %38 %38 1 0 + OpStore %36 %39 None + %40 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_0 + %41 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_1 + %42 = OpAccessChain %_ptr_Uniform_float %41 %uint_0 + %44 = OpLoad %float %42 None + %45 = OpAccessChain %_ptr_Workgroup_float %40 %uint_1 + OpStore %45 %44 None OpReturn OpFunctionEnd %f = OpFunction %void None %49
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_workgroup.wgsl.expected.spvasm index b10f166..00fb879 100644 --- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_workgroup.wgsl.expected.spvasm
@@ -40,7 +40,6 @@ %15 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %22 = OpConstantNull %mat2v3half %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform_v3half = OpTypePointer Uniform %v3half @@ -48,6 +47,7 @@ %_ptr_Workgroup_v3half = OpTypePointer Workgroup %v3half %_ptr_Uniform_half = OpTypePointer Uniform %half %_ptr_Workgroup_half = OpTypePointer Workgroup %half + %47 = OpConstantNull %mat2v3half %49 = OpTypeFunction %void %f_inner = OpFunction %void None %15 %tint_local_index = OpFunctionParameter %uint @@ -56,31 +56,31 @@ OpSelectionMerge %20 None OpBranchConditional %17 %21 %20 %21 = OpLabel - OpStore %w %22 None + OpStore %w %47 None OpBranch %20 %20 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %26 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 - %29 = OpLoad %v3half %26 None - %30 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_1 - %31 = OpLoad %v3half %30 None - %32 = OpCompositeConstruct %mat2v3half %29 %31 - OpStore %w %32 None - %33 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 - %35 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 - %36 = OpLoad %v3half %35 None - OpStore %33 %36 None - %37 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 - %38 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 - %39 = OpLoad %v3half %38 None - %40 = OpVectorShuffle %v3half %39 %39 2 0 1 - OpStore %37 %40 None - %41 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_0 - %42 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_1 - %43 = OpAccessChain %_ptr_Uniform_half %42 %uint_0 - %45 = OpLoad %half %43 None - %46 = OpAccessChain %_ptr_Workgroup_half %41 %uint_1 - OpStore %46 %45 None + %25 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 + %28 = OpLoad %v3half %25 None + %29 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_1 + %30 = OpLoad %v3half %29 None + %31 = OpCompositeConstruct %mat2v3half %28 %30 + OpStore %w %31 None + %32 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 + %34 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 + %35 = OpLoad %v3half %34 None + OpStore %32 %35 None + %36 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 + %37 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 + %38 = OpLoad %v3half %37 None + %39 = OpVectorShuffle %v3half %38 %38 2 0 1 + OpStore %36 %39 None + %40 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_0 + %41 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_1 + %42 = OpAccessChain %_ptr_Uniform_half %41 %uint_0 + %44 = OpLoad %half %42 None + %45 = OpAccessChain %_ptr_Workgroup_half %40 %uint_1 + OpStore %45 %44 None OpReturn OpFunctionEnd %f = OpFunction %void None %49
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_workgroup.wgsl.expected.spvasm index 8231ff3..4d59076 100644 --- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_workgroup.wgsl.expected.spvasm
@@ -37,7 +37,6 @@ %15 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %22 = OpConstantNull %mat2v3float %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float @@ -45,6 +44,7 @@ %_ptr_Workgroup_v3float = OpTypePointer Workgroup %v3float %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Workgroup_float = OpTypePointer Workgroup %float + %47 = OpConstantNull %mat2v3float %49 = OpTypeFunction %void %f_inner = OpFunction %void None %15 %tint_local_index = OpFunctionParameter %uint @@ -53,31 +53,31 @@ OpSelectionMerge %20 None OpBranchConditional %17 %21 %20 %21 = OpLabel - OpStore %w %22 None + OpStore %w %47 None OpBranch %20 %20 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %26 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 - %29 = OpLoad %v3float %26 None - %30 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_1 - %31 = OpLoad %v3float %30 None - %32 = OpCompositeConstruct %mat2v3float %29 %31 - OpStore %w %32 None - %33 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 - %35 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 - %36 = OpLoad %v3float %35 None - OpStore %33 %36 None - %37 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 - %38 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 - %39 = OpLoad %v3float %38 None - %40 = OpVectorShuffle %v3float %39 %39 2 0 1 - OpStore %37 %40 None - %41 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_0 - %42 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_1 - %43 = OpAccessChain %_ptr_Uniform_float %42 %uint_0 - %45 = OpLoad %float %43 None - %46 = OpAccessChain %_ptr_Workgroup_float %41 %uint_1 - OpStore %46 %45 None + %25 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 + %28 = OpLoad %v3float %25 None + %29 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_1 + %30 = OpLoad %v3float %29 None + %31 = OpCompositeConstruct %mat2v3float %28 %30 + OpStore %w %31 None + %32 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 + %34 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 + %35 = OpLoad %v3float %34 None + OpStore %32 %35 None + %36 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 + %37 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 + %38 = OpLoad %v3float %37 None + %39 = OpVectorShuffle %v3float %38 %38 2 0 1 + OpStore %36 %39 None + %40 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_0 + %41 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_1 + %42 = OpAccessChain %_ptr_Uniform_float %41 %uint_0 + %44 = OpLoad %float %42 None + %45 = OpAccessChain %_ptr_Workgroup_float %40 %uint_1 + OpStore %45 %44 None OpReturn OpFunctionEnd %f = OpFunction %void None %49
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_workgroup.wgsl.expected.spvasm index d5f0731..9f5c63e 100644 --- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_workgroup.wgsl.expected.spvasm
@@ -40,7 +40,6 @@ %15 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %22 = OpConstantNull %mat2v4half %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform_v4half = OpTypePointer Uniform %v4half @@ -48,6 +47,7 @@ %_ptr_Workgroup_v4half = OpTypePointer Workgroup %v4half %_ptr_Uniform_half = OpTypePointer Uniform %half %_ptr_Workgroup_half = OpTypePointer Workgroup %half + %47 = OpConstantNull %mat2v4half %49 = OpTypeFunction %void %f_inner = OpFunction %void None %15 %tint_local_index = OpFunctionParameter %uint @@ -56,31 +56,31 @@ OpSelectionMerge %20 None OpBranchConditional %17 %21 %20 %21 = OpLabel - OpStore %w %22 None + OpStore %w %47 None OpBranch %20 %20 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %26 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 - %29 = OpLoad %v4half %26 None - %30 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_1 - %31 = OpLoad %v4half %30 None - %32 = OpCompositeConstruct %mat2v4half %29 %31 - OpStore %w %32 None - %33 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_1 - %35 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 - %36 = OpLoad %v4half %35 None - OpStore %33 %36 None - %37 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_1 - %38 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 - %39 = OpLoad %v4half %38 None - %40 = OpVectorShuffle %v4half %39 %39 1 3 0 2 - OpStore %37 %40 None - %41 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_0 - %42 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_1 - %43 = OpAccessChain %_ptr_Uniform_half %42 %uint_0 - %45 = OpLoad %half %43 None - %46 = OpAccessChain %_ptr_Workgroup_half %41 %uint_1 - OpStore %46 %45 None + %25 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 + %28 = OpLoad %v4half %25 None + %29 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_1 + %30 = OpLoad %v4half %29 None + %31 = OpCompositeConstruct %mat2v4half %28 %30 + OpStore %w %31 None + %32 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_1 + %34 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 + %35 = OpLoad %v4half %34 None + OpStore %32 %35 None + %36 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_1 + %37 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 + %38 = OpLoad %v4half %37 None + %39 = OpVectorShuffle %v4half %38 %38 1 3 0 2 + OpStore %36 %39 None + %40 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_0 + %41 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_1 + %42 = OpAccessChain %_ptr_Uniform_half %41 %uint_0 + %44 = OpLoad %half %42 None + %45 = OpAccessChain %_ptr_Workgroup_half %40 %uint_1 + OpStore %45 %44 None OpReturn OpFunctionEnd %f = OpFunction %void None %49
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_workgroup.wgsl.expected.spvasm index 4bca0db..2f604c9 100644 --- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_workgroup.wgsl.expected.spvasm
@@ -37,7 +37,6 @@ %15 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %22 = OpConstantNull %mat2v4float %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform_mat2v4float = OpTypePointer Uniform %mat2v4float @@ -46,6 +45,7 @@ %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Workgroup_float = OpTypePointer Workgroup %float + %45 = OpConstantNull %mat2v4float %47 = OpTypeFunction %void %f_inner = OpFunction %void None %15 %tint_local_index = OpFunctionParameter %uint @@ -54,28 +54,28 @@ OpSelectionMerge %20 None OpBranchConditional %17 %21 %20 %21 = OpLabel - OpStore %w %22 None + OpStore %w %45 None OpBranch %20 %20 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %26 = OpAccessChain %_ptr_Uniform_mat2v4float %1 %uint_0 - %29 = OpLoad %mat2v4float %26 None - OpStore %w %29 None - %30 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 - %32 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 - %34 = OpLoad %v4float %32 None - OpStore %30 %34 None - %35 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 - %36 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 - %37 = OpLoad %v4float %36 None - %38 = OpVectorShuffle %v4float %37 %37 1 3 0 2 - OpStore %35 %38 None - %39 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_0 - %40 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_1 - %41 = OpAccessChain %_ptr_Uniform_float %40 %uint_0 - %43 = OpLoad %float %41 None - %44 = OpAccessChain %_ptr_Workgroup_float %39 %uint_1 - OpStore %44 %43 None + %25 = OpAccessChain %_ptr_Uniform_mat2v4float %1 %uint_0 + %28 = OpLoad %mat2v4float %25 None + OpStore %w %28 None + %29 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 + %31 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 + %33 = OpLoad %v4float %31 None + OpStore %29 %33 None + %34 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 + %35 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 + %36 = OpLoad %v4float %35 None + %37 = OpVectorShuffle %v4float %36 %36 1 3 0 2 + OpStore %34 %37 None + %38 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_0 + %39 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_1 + %40 = OpAccessChain %_ptr_Uniform_float %39 %uint_0 + %42 = OpLoad %float %40 None + %43 = OpAccessChain %_ptr_Workgroup_float %38 %uint_1 + OpStore %43 %42 None OpReturn OpFunctionEnd %f = OpFunction %void None %47
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_workgroup.wgsl.expected.spvasm index 2fe8f7c..3bd1ad3 100644 --- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_workgroup.wgsl.expected.spvasm
@@ -42,7 +42,6 @@ %15 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %22 = OpConstantNull %mat3v2half %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform_v2half = OpTypePointer Uniform %v2half @@ -50,6 +49,7 @@ %_ptr_Workgroup_v2half = OpTypePointer Workgroup %v2half %_ptr_Uniform_half = OpTypePointer Uniform %half %_ptr_Workgroup_half = OpTypePointer Workgroup %half + %49 = OpConstantNull %mat3v2half %51 = OpTypeFunction %void %f_inner = OpFunction %void None %15 %tint_local_index = OpFunctionParameter %uint @@ -58,33 +58,33 @@ OpSelectionMerge %20 None OpBranchConditional %17 %21 %20 %21 = OpLabel - OpStore %w %22 None + OpStore %w %49 None OpBranch %20 %20 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %26 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 - %29 = OpLoad %v2half %26 None - %30 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_1 - %31 = OpLoad %v2half %30 None - %32 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_2 - %33 = OpLoad %v2half %32 None - %34 = OpCompositeConstruct %mat3v2half %29 %31 %33 - OpStore %w %34 None - %35 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_1 - %37 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 - %38 = OpLoad %v2half %37 None - OpStore %35 %38 None - %39 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_1 - %40 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 - %41 = OpLoad %v2half %40 None - %42 = OpVectorShuffle %v2half %41 %41 1 0 - OpStore %39 %42 None - %43 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_0 - %44 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_1 - %45 = OpAccessChain %_ptr_Uniform_half %44 %uint_0 - %47 = OpLoad %half %45 None - %48 = OpAccessChain %_ptr_Workgroup_half %43 %uint_1 - OpStore %48 %47 None + %25 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 + %28 = OpLoad %v2half %25 None + %29 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_1 + %30 = OpLoad %v2half %29 None + %31 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_2 + %32 = OpLoad %v2half %31 None + %33 = OpCompositeConstruct %mat3v2half %28 %30 %32 + OpStore %w %33 None + %34 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_1 + %36 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 + %37 = OpLoad %v2half %36 None + OpStore %34 %37 None + %38 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_1 + %39 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 + %40 = OpLoad %v2half %39 None + %41 = OpVectorShuffle %v2half %40 %40 1 0 + OpStore %38 %41 None + %42 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_0 + %43 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_1 + %44 = OpAccessChain %_ptr_Uniform_half %43 %uint_0 + %46 = OpLoad %half %44 None + %47 = OpAccessChain %_ptr_Workgroup_half %42 %uint_1 + OpStore %47 %46 None OpReturn OpFunctionEnd %f = OpFunction %void None %51
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_workgroup.wgsl.expected.spvasm index e76d7a9..0c55fa5 100644 --- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_workgroup.wgsl.expected.spvasm
@@ -39,7 +39,6 @@ %15 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %22 = OpConstantNull %mat3v2float %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float @@ -47,6 +46,7 @@ %_ptr_Workgroup_v2float = OpTypePointer Workgroup %v2float %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Workgroup_float = OpTypePointer Workgroup %float + %49 = OpConstantNull %mat3v2float %51 = OpTypeFunction %void %f_inner = OpFunction %void None %15 %tint_local_index = OpFunctionParameter %uint @@ -55,33 +55,33 @@ OpSelectionMerge %20 None OpBranchConditional %17 %21 %20 %21 = OpLabel - OpStore %w %22 None + OpStore %w %49 None OpBranch %20 %20 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %26 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 - %29 = OpLoad %v2float %26 None - %30 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_1 - %31 = OpLoad %v2float %30 None - %32 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_2 - %33 = OpLoad %v2float %32 None - %34 = OpCompositeConstruct %mat3v2float %29 %31 %33 - OpStore %w %34 None - %35 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_1 - %37 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 - %38 = OpLoad %v2float %37 None - OpStore %35 %38 None - %39 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_1 - %40 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 - %41 = OpLoad %v2float %40 None - %42 = OpVectorShuffle %v2float %41 %41 1 0 - OpStore %39 %42 None - %43 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_0 - %44 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_1 - %45 = OpAccessChain %_ptr_Uniform_float %44 %uint_0 - %47 = OpLoad %float %45 None - %48 = OpAccessChain %_ptr_Workgroup_float %43 %uint_1 - OpStore %48 %47 None + %25 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 + %28 = OpLoad %v2float %25 None + %29 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_1 + %30 = OpLoad %v2float %29 None + %31 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_2 + %32 = OpLoad %v2float %31 None + %33 = OpCompositeConstruct %mat3v2float %28 %30 %32 + OpStore %w %33 None + %34 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_1 + %36 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 + %37 = OpLoad %v2float %36 None + OpStore %34 %37 None + %38 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_1 + %39 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 + %40 = OpLoad %v2float %39 None + %41 = OpVectorShuffle %v2float %40 %40 1 0 + OpStore %38 %41 None + %42 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_0 + %43 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_1 + %44 = OpAccessChain %_ptr_Uniform_float %43 %uint_0 + %46 = OpLoad %float %44 None + %47 = OpAccessChain %_ptr_Workgroup_float %42 %uint_1 + OpStore %47 %46 None OpReturn OpFunctionEnd %f = OpFunction %void None %51
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_workgroup.wgsl.expected.spvasm index d9beea5..d46af07 100644 --- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_workgroup.wgsl.expected.spvasm
@@ -42,7 +42,6 @@ %15 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %22 = OpConstantNull %mat3v3half %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform_v3half = OpTypePointer Uniform %v3half @@ -50,6 +49,7 @@ %_ptr_Workgroup_v3half = OpTypePointer Workgroup %v3half %_ptr_Uniform_half = OpTypePointer Uniform %half %_ptr_Workgroup_half = OpTypePointer Workgroup %half + %49 = OpConstantNull %mat3v3half %51 = OpTypeFunction %void %f_inner = OpFunction %void None %15 %tint_local_index = OpFunctionParameter %uint @@ -58,33 +58,33 @@ OpSelectionMerge %20 None OpBranchConditional %17 %21 %20 %21 = OpLabel - OpStore %w %22 None + OpStore %w %49 None OpBranch %20 %20 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %26 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 - %29 = OpLoad %v3half %26 None - %30 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_1 - %31 = OpLoad %v3half %30 None - %32 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_2 - %33 = OpLoad %v3half %32 None - %34 = OpCompositeConstruct %mat3v3half %29 %31 %33 - OpStore %w %34 None - %35 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 - %37 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 - %38 = OpLoad %v3half %37 None - OpStore %35 %38 None - %39 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 - %40 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 - %41 = OpLoad %v3half %40 None - %42 = OpVectorShuffle %v3half %41 %41 2 0 1 - OpStore %39 %42 None - %43 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_0 - %44 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_1 - %45 = OpAccessChain %_ptr_Uniform_half %44 %uint_0 - %47 = OpLoad %half %45 None - %48 = OpAccessChain %_ptr_Workgroup_half %43 %uint_1 - OpStore %48 %47 None + %25 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 + %28 = OpLoad %v3half %25 None + %29 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_1 + %30 = OpLoad %v3half %29 None + %31 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_2 + %32 = OpLoad %v3half %31 None + %33 = OpCompositeConstruct %mat3v3half %28 %30 %32 + OpStore %w %33 None + %34 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 + %36 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 + %37 = OpLoad %v3half %36 None + OpStore %34 %37 None + %38 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 + %39 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 + %40 = OpLoad %v3half %39 None + %41 = OpVectorShuffle %v3half %40 %40 2 0 1 + OpStore %38 %41 None + %42 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_0 + %43 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_1 + %44 = OpAccessChain %_ptr_Uniform_half %43 %uint_0 + %46 = OpLoad %half %44 None + %47 = OpAccessChain %_ptr_Workgroup_half %42 %uint_1 + OpStore %47 %46 None OpReturn OpFunctionEnd %f = OpFunction %void None %51
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_workgroup.wgsl.expected.spvasm index 280f9a2..f017cfd 100644 --- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_workgroup.wgsl.expected.spvasm
@@ -39,7 +39,6 @@ %15 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %22 = OpConstantNull %mat3v3float %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float @@ -47,6 +46,7 @@ %_ptr_Workgroup_v3float = OpTypePointer Workgroup %v3float %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Workgroup_float = OpTypePointer Workgroup %float + %49 = OpConstantNull %mat3v3float %51 = OpTypeFunction %void %f_inner = OpFunction %void None %15 %tint_local_index = OpFunctionParameter %uint @@ -55,33 +55,33 @@ OpSelectionMerge %20 None OpBranchConditional %17 %21 %20 %21 = OpLabel - OpStore %w %22 None + OpStore %w %49 None OpBranch %20 %20 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %26 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 - %29 = OpLoad %v3float %26 None - %30 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_1 - %31 = OpLoad %v3float %30 None - %32 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_2 - %33 = OpLoad %v3float %32 None - %34 = OpCompositeConstruct %mat3v3float %29 %31 %33 - OpStore %w %34 None - %35 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 - %37 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 - %38 = OpLoad %v3float %37 None - OpStore %35 %38 None - %39 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 - %40 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 - %41 = OpLoad %v3float %40 None - %42 = OpVectorShuffle %v3float %41 %41 2 0 1 - OpStore %39 %42 None - %43 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_0 - %44 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_1 - %45 = OpAccessChain %_ptr_Uniform_float %44 %uint_0 - %47 = OpLoad %float %45 None - %48 = OpAccessChain %_ptr_Workgroup_float %43 %uint_1 - OpStore %48 %47 None + %25 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 + %28 = OpLoad %v3float %25 None + %29 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_1 + %30 = OpLoad %v3float %29 None + %31 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_2 + %32 = OpLoad %v3float %31 None + %33 = OpCompositeConstruct %mat3v3float %28 %30 %32 + OpStore %w %33 None + %34 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 + %36 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 + %37 = OpLoad %v3float %36 None + OpStore %34 %37 None + %38 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 + %39 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 + %40 = OpLoad %v3float %39 None + %41 = OpVectorShuffle %v3float %40 %40 2 0 1 + OpStore %38 %41 None + %42 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_0 + %43 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_1 + %44 = OpAccessChain %_ptr_Uniform_float %43 %uint_0 + %46 = OpLoad %float %44 None + %47 = OpAccessChain %_ptr_Workgroup_float %42 %uint_1 + OpStore %47 %46 None OpReturn OpFunctionEnd %f = OpFunction %void None %51
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_workgroup.wgsl.expected.spvasm index 7d509aa..99e2b42 100644 --- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_workgroup.wgsl.expected.spvasm
@@ -42,7 +42,6 @@ %15 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %22 = OpConstantNull %mat3v4half %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform_v4half = OpTypePointer Uniform %v4half @@ -50,6 +49,7 @@ %_ptr_Workgroup_v4half = OpTypePointer Workgroup %v4half %_ptr_Uniform_half = OpTypePointer Uniform %half %_ptr_Workgroup_half = OpTypePointer Workgroup %half + %49 = OpConstantNull %mat3v4half %51 = OpTypeFunction %void %f_inner = OpFunction %void None %15 %tint_local_index = OpFunctionParameter %uint @@ -58,33 +58,33 @@ OpSelectionMerge %20 None OpBranchConditional %17 %21 %20 %21 = OpLabel - OpStore %w %22 None + OpStore %w %49 None OpBranch %20 %20 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %26 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 - %29 = OpLoad %v4half %26 None - %30 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_1 - %31 = OpLoad %v4half %30 None - %32 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_2 - %33 = OpLoad %v4half %32 None - %34 = OpCompositeConstruct %mat3v4half %29 %31 %33 - OpStore %w %34 None - %35 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_1 - %37 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 - %38 = OpLoad %v4half %37 None - OpStore %35 %38 None - %39 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_1 - %40 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 - %41 = OpLoad %v4half %40 None - %42 = OpVectorShuffle %v4half %41 %41 1 3 0 2 - OpStore %39 %42 None - %43 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_0 - %44 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_1 - %45 = OpAccessChain %_ptr_Uniform_half %44 %uint_0 - %47 = OpLoad %half %45 None - %48 = OpAccessChain %_ptr_Workgroup_half %43 %uint_1 - OpStore %48 %47 None + %25 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 + %28 = OpLoad %v4half %25 None + %29 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_1 + %30 = OpLoad %v4half %29 None + %31 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_2 + %32 = OpLoad %v4half %31 None + %33 = OpCompositeConstruct %mat3v4half %28 %30 %32 + OpStore %w %33 None + %34 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_1 + %36 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 + %37 = OpLoad %v4half %36 None + OpStore %34 %37 None + %38 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_1 + %39 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 + %40 = OpLoad %v4half %39 None + %41 = OpVectorShuffle %v4half %40 %40 1 3 0 2 + OpStore %38 %41 None + %42 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_0 + %43 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_1 + %44 = OpAccessChain %_ptr_Uniform_half %43 %uint_0 + %46 = OpLoad %half %44 None + %47 = OpAccessChain %_ptr_Workgroup_half %42 %uint_1 + OpStore %47 %46 None OpReturn OpFunctionEnd %f = OpFunction %void None %51
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_workgroup.wgsl.expected.spvasm index 7e425e1..b61ff82 100644 --- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_workgroup.wgsl.expected.spvasm
@@ -37,7 +37,6 @@ %15 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %22 = OpConstantNull %mat3v4float %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform_mat3v4float = OpTypePointer Uniform %mat3v4float @@ -46,6 +45,7 @@ %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Workgroup_float = OpTypePointer Workgroup %float + %45 = OpConstantNull %mat3v4float %47 = OpTypeFunction %void %f_inner = OpFunction %void None %15 %tint_local_index = OpFunctionParameter %uint @@ -54,28 +54,28 @@ OpSelectionMerge %20 None OpBranchConditional %17 %21 %20 %21 = OpLabel - OpStore %w %22 None + OpStore %w %45 None OpBranch %20 %20 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %26 = OpAccessChain %_ptr_Uniform_mat3v4float %1 %uint_0 - %29 = OpLoad %mat3v4float %26 None - OpStore %w %29 None - %30 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 - %32 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 - %34 = OpLoad %v4float %32 None - OpStore %30 %34 None - %35 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 - %36 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 - %37 = OpLoad %v4float %36 None - %38 = OpVectorShuffle %v4float %37 %37 1 3 0 2 - OpStore %35 %38 None - %39 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_0 - %40 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_1 - %41 = OpAccessChain %_ptr_Uniform_float %40 %uint_0 - %43 = OpLoad %float %41 None - %44 = OpAccessChain %_ptr_Workgroup_float %39 %uint_1 - OpStore %44 %43 None + %25 = OpAccessChain %_ptr_Uniform_mat3v4float %1 %uint_0 + %28 = OpLoad %mat3v4float %25 None + OpStore %w %28 None + %29 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 + %31 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 + %33 = OpLoad %v4float %31 None + OpStore %29 %33 None + %34 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 + %35 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 + %36 = OpLoad %v4float %35 None + %37 = OpVectorShuffle %v4float %36 %36 1 3 0 2 + OpStore %34 %37 None + %38 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_0 + %39 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_1 + %40 = OpAccessChain %_ptr_Uniform_float %39 %uint_0 + %42 = OpLoad %float %40 None + %43 = OpAccessChain %_ptr_Workgroup_float %38 %uint_1 + OpStore %43 %42 None OpReturn OpFunctionEnd %f = OpFunction %void None %47
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_workgroup.wgsl.expected.spvasm index ab6ac78..d839648 100644 --- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_workgroup.wgsl.expected.spvasm
@@ -44,7 +44,6 @@ %15 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %22 = OpConstantNull %mat4v2half %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform_v2half = OpTypePointer Uniform %v2half @@ -53,6 +52,7 @@ %_ptr_Workgroup_v2half = OpTypePointer Workgroup %v2half %_ptr_Uniform_half = OpTypePointer Uniform %half %_ptr_Workgroup_half = OpTypePointer Workgroup %half + %52 = OpConstantNull %mat4v2half %54 = OpTypeFunction %void %f_inner = OpFunction %void None %15 %tint_local_index = OpFunctionParameter %uint @@ -61,35 +61,35 @@ OpSelectionMerge %20 None OpBranchConditional %17 %21 %20 %21 = OpLabel - OpStore %w %22 None + OpStore %w %52 None OpBranch %20 %20 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %26 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 - %29 = OpLoad %v2half %26 None - %30 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_1 - %31 = OpLoad %v2half %30 None - %32 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_2 - %33 = OpLoad %v2half %32 None - %34 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_3 - %36 = OpLoad %v2half %34 None - %37 = OpCompositeConstruct %mat4v2half %29 %31 %33 %36 - OpStore %w %37 None - %38 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_1 - %40 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 - %41 = OpLoad %v2half %40 None - OpStore %38 %41 None - %42 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_1 - %43 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 - %44 = OpLoad %v2half %43 None - %45 = OpVectorShuffle %v2half %44 %44 1 0 - OpStore %42 %45 None - %46 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_0 - %47 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_1 - %48 = OpAccessChain %_ptr_Uniform_half %47 %uint_0 - %50 = OpLoad %half %48 None - %51 = OpAccessChain %_ptr_Workgroup_half %46 %uint_1 - OpStore %51 %50 None + %25 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 + %28 = OpLoad %v2half %25 None + %29 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_1 + %30 = OpLoad %v2half %29 None + %31 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_2 + %32 = OpLoad %v2half %31 None + %33 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_3 + %35 = OpLoad %v2half %33 None + %36 = OpCompositeConstruct %mat4v2half %28 %30 %32 %35 + OpStore %w %36 None + %37 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_1 + %39 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 + %40 = OpLoad %v2half %39 None + OpStore %37 %40 None + %41 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_1 + %42 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_0 + %43 = OpLoad %v2half %42 None + %44 = OpVectorShuffle %v2half %43 %43 1 0 + OpStore %41 %44 None + %45 = OpAccessChain %_ptr_Workgroup_v2half %w %uint_0 + %46 = OpAccessChain %_ptr_Uniform_v2half %1 %uint_1 + %47 = OpAccessChain %_ptr_Uniform_half %46 %uint_0 + %49 = OpLoad %half %47 None + %50 = OpAccessChain %_ptr_Workgroup_half %45 %uint_1 + OpStore %50 %49 None OpReturn OpFunctionEnd %f = OpFunction %void None %54
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_workgroup.wgsl.expected.spvasm index 42bc05e..7109933 100644 --- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_workgroup.wgsl.expected.spvasm
@@ -41,7 +41,6 @@ %15 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %22 = OpConstantNull %mat4v2float %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float @@ -50,6 +49,7 @@ %_ptr_Workgroup_v2float = OpTypePointer Workgroup %v2float %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Workgroup_float = OpTypePointer Workgroup %float + %52 = OpConstantNull %mat4v2float %54 = OpTypeFunction %void %f_inner = OpFunction %void None %15 %tint_local_index = OpFunctionParameter %uint @@ -58,35 +58,35 @@ OpSelectionMerge %20 None OpBranchConditional %17 %21 %20 %21 = OpLabel - OpStore %w %22 None + OpStore %w %52 None OpBranch %20 %20 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %26 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 - %29 = OpLoad %v2float %26 None - %30 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_1 - %31 = OpLoad %v2float %30 None - %32 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_2 - %33 = OpLoad %v2float %32 None - %34 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_3 - %36 = OpLoad %v2float %34 None - %37 = OpCompositeConstruct %mat4v2float %29 %31 %33 %36 - OpStore %w %37 None - %38 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_1 - %40 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 - %41 = OpLoad %v2float %40 None - OpStore %38 %41 None - %42 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_1 - %43 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 - %44 = OpLoad %v2float %43 None - %45 = OpVectorShuffle %v2float %44 %44 1 0 - OpStore %42 %45 None - %46 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_0 - %47 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_1 - %48 = OpAccessChain %_ptr_Uniform_float %47 %uint_0 - %50 = OpLoad %float %48 None - %51 = OpAccessChain %_ptr_Workgroup_float %46 %uint_1 - OpStore %51 %50 None + %25 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 + %28 = OpLoad %v2float %25 None + %29 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_1 + %30 = OpLoad %v2float %29 None + %31 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_2 + %32 = OpLoad %v2float %31 None + %33 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_3 + %35 = OpLoad %v2float %33 None + %36 = OpCompositeConstruct %mat4v2float %28 %30 %32 %35 + OpStore %w %36 None + %37 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_1 + %39 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 + %40 = OpLoad %v2float %39 None + OpStore %37 %40 None + %41 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_1 + %42 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 + %43 = OpLoad %v2float %42 None + %44 = OpVectorShuffle %v2float %43 %43 1 0 + OpStore %41 %44 None + %45 = OpAccessChain %_ptr_Workgroup_v2float %w %uint_0 + %46 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_1 + %47 = OpAccessChain %_ptr_Uniform_float %46 %uint_0 + %49 = OpLoad %float %47 None + %50 = OpAccessChain %_ptr_Workgroup_float %45 %uint_1 + OpStore %50 %49 None OpReturn OpFunctionEnd %f = OpFunction %void None %54
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_workgroup.wgsl.expected.spvasm index a89bf7e..24eac03 100644 --- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_workgroup.wgsl.expected.spvasm
@@ -44,7 +44,6 @@ %15 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %22 = OpConstantNull %mat4v3half %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform_v3half = OpTypePointer Uniform %v3half @@ -53,6 +52,7 @@ %_ptr_Workgroup_v3half = OpTypePointer Workgroup %v3half %_ptr_Uniform_half = OpTypePointer Uniform %half %_ptr_Workgroup_half = OpTypePointer Workgroup %half + %52 = OpConstantNull %mat4v3half %54 = OpTypeFunction %void %f_inner = OpFunction %void None %15 %tint_local_index = OpFunctionParameter %uint @@ -61,35 +61,35 @@ OpSelectionMerge %20 None OpBranchConditional %17 %21 %20 %21 = OpLabel - OpStore %w %22 None + OpStore %w %52 None OpBranch %20 %20 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %26 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 - %29 = OpLoad %v3half %26 None - %30 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_1 - %31 = OpLoad %v3half %30 None - %32 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_2 - %33 = OpLoad %v3half %32 None - %34 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_3 - %36 = OpLoad %v3half %34 None - %37 = OpCompositeConstruct %mat4v3half %29 %31 %33 %36 - OpStore %w %37 None - %38 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 - %40 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 - %41 = OpLoad %v3half %40 None - OpStore %38 %41 None - %42 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 - %43 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 - %44 = OpLoad %v3half %43 None - %45 = OpVectorShuffle %v3half %44 %44 2 0 1 - OpStore %42 %45 None - %46 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_0 - %47 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_1 - %48 = OpAccessChain %_ptr_Uniform_half %47 %uint_0 - %50 = OpLoad %half %48 None - %51 = OpAccessChain %_ptr_Workgroup_half %46 %uint_1 - OpStore %51 %50 None + %25 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 + %28 = OpLoad %v3half %25 None + %29 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_1 + %30 = OpLoad %v3half %29 None + %31 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_2 + %32 = OpLoad %v3half %31 None + %33 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_3 + %35 = OpLoad %v3half %33 None + %36 = OpCompositeConstruct %mat4v3half %28 %30 %32 %35 + OpStore %w %36 None + %37 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 + %39 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 + %40 = OpLoad %v3half %39 None + OpStore %37 %40 None + %41 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_1 + %42 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_0 + %43 = OpLoad %v3half %42 None + %44 = OpVectorShuffle %v3half %43 %43 2 0 1 + OpStore %41 %44 None + %45 = OpAccessChain %_ptr_Workgroup_v3half %w %uint_0 + %46 = OpAccessChain %_ptr_Uniform_v3half %1 %uint_1 + %47 = OpAccessChain %_ptr_Uniform_half %46 %uint_0 + %49 = OpLoad %half %47 None + %50 = OpAccessChain %_ptr_Workgroup_half %45 %uint_1 + OpStore %50 %49 None OpReturn OpFunctionEnd %f = OpFunction %void None %54
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_workgroup.wgsl.expected.spvasm index 432dcae..66d8394 100644 --- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_workgroup.wgsl.expected.spvasm
@@ -41,7 +41,6 @@ %15 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %22 = OpConstantNull %mat4v3float %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float @@ -50,6 +49,7 @@ %_ptr_Workgroup_v3float = OpTypePointer Workgroup %v3float %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Workgroup_float = OpTypePointer Workgroup %float + %52 = OpConstantNull %mat4v3float %54 = OpTypeFunction %void %f_inner = OpFunction %void None %15 %tint_local_index = OpFunctionParameter %uint @@ -58,35 +58,35 @@ OpSelectionMerge %20 None OpBranchConditional %17 %21 %20 %21 = OpLabel - OpStore %w %22 None + OpStore %w %52 None OpBranch %20 %20 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %26 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 - %29 = OpLoad %v3float %26 None - %30 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_1 - %31 = OpLoad %v3float %30 None - %32 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_2 - %33 = OpLoad %v3float %32 None - %34 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_3 - %36 = OpLoad %v3float %34 None - %37 = OpCompositeConstruct %mat4v3float %29 %31 %33 %36 - OpStore %w %37 None - %38 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 - %40 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 - %41 = OpLoad %v3float %40 None - OpStore %38 %41 None - %42 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 - %43 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 - %44 = OpLoad %v3float %43 None - %45 = OpVectorShuffle %v3float %44 %44 2 0 1 - OpStore %42 %45 None - %46 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_0 - %47 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_1 - %48 = OpAccessChain %_ptr_Uniform_float %47 %uint_0 - %50 = OpLoad %float %48 None - %51 = OpAccessChain %_ptr_Workgroup_float %46 %uint_1 - OpStore %51 %50 None + %25 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 + %28 = OpLoad %v3float %25 None + %29 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_1 + %30 = OpLoad %v3float %29 None + %31 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_2 + %32 = OpLoad %v3float %31 None + %33 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_3 + %35 = OpLoad %v3float %33 None + %36 = OpCompositeConstruct %mat4v3float %28 %30 %32 %35 + OpStore %w %36 None + %37 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 + %39 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 + %40 = OpLoad %v3float %39 None + OpStore %37 %40 None + %41 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_1 + %42 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 + %43 = OpLoad %v3float %42 None + %44 = OpVectorShuffle %v3float %43 %43 2 0 1 + OpStore %41 %44 None + %45 = OpAccessChain %_ptr_Workgroup_v3float %w %uint_0 + %46 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_1 + %47 = OpAccessChain %_ptr_Uniform_float %46 %uint_0 + %49 = OpLoad %float %47 None + %50 = OpAccessChain %_ptr_Workgroup_float %45 %uint_1 + OpStore %50 %49 None OpReturn OpFunctionEnd %f = OpFunction %void None %54
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_workgroup.wgsl.expected.spvasm index 4d308d7..1e9ea80 100644 --- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_workgroup.wgsl.expected.spvasm
@@ -44,7 +44,6 @@ %15 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %22 = OpConstantNull %mat4v4half %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform_v4half = OpTypePointer Uniform %v4half @@ -53,6 +52,7 @@ %_ptr_Workgroup_v4half = OpTypePointer Workgroup %v4half %_ptr_Uniform_half = OpTypePointer Uniform %half %_ptr_Workgroup_half = OpTypePointer Workgroup %half + %52 = OpConstantNull %mat4v4half %54 = OpTypeFunction %void %f_inner = OpFunction %void None %15 %tint_local_index = OpFunctionParameter %uint @@ -61,35 +61,35 @@ OpSelectionMerge %20 None OpBranchConditional %17 %21 %20 %21 = OpLabel - OpStore %w %22 None + OpStore %w %52 None OpBranch %20 %20 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %26 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 - %29 = OpLoad %v4half %26 None - %30 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_1 - %31 = OpLoad %v4half %30 None - %32 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_2 - %33 = OpLoad %v4half %32 None - %34 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_3 - %36 = OpLoad %v4half %34 None - %37 = OpCompositeConstruct %mat4v4half %29 %31 %33 %36 - OpStore %w %37 None - %38 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_1 - %40 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 - %41 = OpLoad %v4half %40 None - OpStore %38 %41 None - %42 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_1 - %43 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 - %44 = OpLoad %v4half %43 None - %45 = OpVectorShuffle %v4half %44 %44 1 3 0 2 - OpStore %42 %45 None - %46 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_0 - %47 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_1 - %48 = OpAccessChain %_ptr_Uniform_half %47 %uint_0 - %50 = OpLoad %half %48 None - %51 = OpAccessChain %_ptr_Workgroup_half %46 %uint_1 - OpStore %51 %50 None + %25 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 + %28 = OpLoad %v4half %25 None + %29 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_1 + %30 = OpLoad %v4half %29 None + %31 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_2 + %32 = OpLoad %v4half %31 None + %33 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_3 + %35 = OpLoad %v4half %33 None + %36 = OpCompositeConstruct %mat4v4half %28 %30 %32 %35 + OpStore %w %36 None + %37 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_1 + %39 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 + %40 = OpLoad %v4half %39 None + OpStore %37 %40 None + %41 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_1 + %42 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_0 + %43 = OpLoad %v4half %42 None + %44 = OpVectorShuffle %v4half %43 %43 1 3 0 2 + OpStore %41 %44 None + %45 = OpAccessChain %_ptr_Workgroup_v4half %w %uint_0 + %46 = OpAccessChain %_ptr_Uniform_v4half %1 %uint_1 + %47 = OpAccessChain %_ptr_Uniform_half %46 %uint_0 + %49 = OpLoad %half %47 None + %50 = OpAccessChain %_ptr_Workgroup_half %45 %uint_1 + OpStore %50 %49 None OpReturn OpFunctionEnd %f = OpFunction %void None %54
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_workgroup.wgsl.expected.spvasm b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_workgroup.wgsl.expected.spvasm index 8120a23..71d3107 100644 --- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_workgroup.wgsl.expected.spvasm +++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_workgroup.wgsl.expected.spvasm
@@ -37,7 +37,6 @@ %15 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %22 = OpConstantNull %mat4v4float %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float @@ -46,6 +45,7 @@ %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Workgroup_float = OpTypePointer Workgroup %float + %45 = OpConstantNull %mat4v4float %47 = OpTypeFunction %void %f_inner = OpFunction %void None %15 %tint_local_index = OpFunctionParameter %uint @@ -54,28 +54,28 @@ OpSelectionMerge %20 None OpBranchConditional %17 %21 %20 %21 = OpLabel - OpStore %w %22 None + OpStore %w %45 None OpBranch %20 %20 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %26 = OpAccessChain %_ptr_Uniform_mat4v4float %1 %uint_0 - %29 = OpLoad %mat4v4float %26 None - OpStore %w %29 None - %30 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 - %32 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 - %34 = OpLoad %v4float %32 None - OpStore %30 %34 None - %35 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 - %36 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 - %37 = OpLoad %v4float %36 None - %38 = OpVectorShuffle %v4float %37 %37 1 3 0 2 - OpStore %35 %38 None - %39 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_0 - %40 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_1 - %41 = OpAccessChain %_ptr_Uniform_float %40 %uint_0 - %43 = OpLoad %float %41 None - %44 = OpAccessChain %_ptr_Workgroup_float %39 %uint_1 - OpStore %44 %43 None + %25 = OpAccessChain %_ptr_Uniform_mat4v4float %1 %uint_0 + %28 = OpLoad %mat4v4float %25 None + OpStore %w %28 None + %29 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 + %31 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 + %33 = OpLoad %v4float %31 None + OpStore %29 %33 None + %34 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_1 + %35 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_0 + %36 = OpLoad %v4float %35 None + %37 = OpVectorShuffle %v4float %36 %36 1 3 0 2 + OpStore %34 %37 None + %38 = OpAccessChain %_ptr_Workgroup_v4float %w %uint_0 + %39 = OpAccessChain %_ptr_Uniform_v4float %1 %uint_0 %uint_1 + %40 = OpAccessChain %_ptr_Uniform_float %39 %uint_0 + %42 = OpLoad %float %40 None + %43 = OpAccessChain %_ptr_Workgroup_float %38 %uint_1 + OpStore %43 %42 None OpReturn OpFunctionEnd %f = OpFunction %void None %47
diff --git a/test/tint/bug/chromium/1449538.wgsl.expected.spvasm b/test/tint/bug/chromium/1449538.wgsl.expected.spvasm index a63f231..cb0ae3a 100644 --- a/test/tint/bug/chromium/1449538.wgsl.expected.spvasm +++ b/test/tint/bug/chromium/1449538.wgsl.expected.spvasm
@@ -47,11 +47,11 @@ %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %14 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %49 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 %int = OpTypeInt 32 1 %_ptr_Function_int = OpTypePointer Function %int %int_0 = OpConstant %int 0 - %22 = OpConstantNull %v2uint + %57 = OpConstantNull %v2uint %bool = OpTypeBool %v2bool = OpTypeVector %bool 2 %false = OpConstantFalse %bool @@ -78,294 +78,294 @@ %i60_0 = OpVariable %_ptr_Function_int Function OpBranch %5 %5 = OpLabel - OpStore %tint_loop_idx %14 + OpStore %tint_loop_idx %49 OpStore %i0520 %int_0 OpBranch %8 %8 = OpLabel OpLoopMerge %9 %7 None OpBranch %6 %6 = OpLabel - %20 = OpLoad %v2uint %tint_loop_idx None - %21 = OpIEqual %v2bool %20 %22 - %25 = OpAll %bool %21 - OpSelectionMerge %26 None - OpBranchConditional %25 %27 %26 - %27 = OpLabel + %55 = OpLoad %v2uint %tint_loop_idx None + %56 = OpIEqual %v2bool %55 %57 + %60 = OpAll %bool %56 + OpSelectionMerge %61 None + OpBranchConditional %60 %62 %61 + %62 = OpLabel OpBranch %9 - %26 = OpLabel - OpSelectionMerge %28 None - OpBranchConditional %false %28 %29 - %29 = OpLabel + %61 = OpLabel + OpSelectionMerge %63 None + OpBranchConditional %false %63 %64 + %64 = OpLabel OpBranch %9 - %28 = OpLabel + %63 = OpLabel OpBranch %7 %7 = OpLabel - %31 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %34 = OpLoad %uint %31 None -%tint_low_inc = OpISub %uint %34 %uint_1 - %37 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %37 %tint_low_inc None - %38 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %38 %uint_1 %uint_0 - %40 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %41 = OpLoad %uint %40 None - %42 = OpISub %uint %41 %tint_carry - %43 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %43 %42 None + %66 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %69 = OpLoad %uint %66 None +%tint_low_inc = OpISub %uint %69 %uint_1 + %72 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %72 %tint_low_inc None + %73 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %73 %uint_1 %uint_0 + %75 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %76 = OpLoad %uint %75 None + %77 = OpISub %uint %76 %tint_carry + %78 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %78 %77 None OpBranch %8 %9 = OpLabel - OpBranch %44 - %44 = OpLabel - OpStore %tint_loop_idx_0 %14 + OpBranch %10 + %10 = OpLabel + OpStore %tint_loop_idx_0 %49 OpStore %i62 %int_0 - OpBranch %47 - %47 = OpLabel - OpLoopMerge %48 %46 None - OpBranch %45 - %45 = OpLabel - %51 = OpLoad %v2uint %tint_loop_idx_0 None - %52 = OpIEqual %v2bool %51 %22 - %53 = OpAll %bool %52 - OpSelectionMerge %54 None - OpBranchConditional %53 %55 %54 - %55 = OpLabel - OpBranch %48 - %54 = OpLabel - OpSelectionMerge %56 None - OpBranchConditional %false %56 %57 - %57 = OpLabel - OpBranch %48 - %56 = OpLabel - OpBranch %46 - %46 = OpLabel - %58 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - %59 = OpLoad %uint %58 None -%tint_low_inc_1 = OpISub %uint %59 %uint_1 - %61 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - OpStore %61 %tint_low_inc_1 None - %62 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 -%tint_carry_1 = OpSelect %uint %62 %uint_1 %uint_0 - %64 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - %65 = OpLoad %uint %64 None - %66 = OpISub %uint %65 %tint_carry_1 - %67 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - OpStore %67 %66 None - OpBranch %47 - %48 = OpLabel - OpBranch %68 - %68 = OpLabel - OpStore %tint_loop_idx_1 %14 - OpStore %i0520_0 %int_0 - OpBranch %71 - %71 = OpLabel - OpLoopMerge %72 %70 None - OpBranch %69 - %69 = OpLabel - %75 = OpLoad %v2uint %tint_loop_idx_1 None - %76 = OpIEqual %v2bool %75 %22 - %77 = OpAll %bool %76 - OpSelectionMerge %78 None - OpBranchConditional %77 %79 %78 - %79 = OpLabel - OpBranch %72 - %78 = OpLabel - OpSelectionMerge %80 None - OpBranchConditional %false %80 %81 - %81 = OpLabel - OpBranch %72 - %80 = OpLabel - OpBranch %70 - %70 = OpLabel - %82 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_1 %uint_0 - %83 = OpLoad %uint %82 None -%tint_low_inc_2 = OpISub %uint %83 %uint_1 - %85 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_1 %uint_0 - OpStore %85 %tint_low_inc_2 None - %86 = OpIEqual %bool %tint_low_inc_2 %uint_4294967295 -%tint_carry_2 = OpSelect %uint %86 %uint_1 %uint_0 - %88 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_1 %uint_1 + OpBranch %13 + %13 = OpLabel + OpLoopMerge %14 %12 None + OpBranch %11 + %11 = OpLabel + %81 = OpLoad %v2uint %tint_loop_idx_0 None + %82 = OpIEqual %v2bool %81 %57 + %83 = OpAll %bool %82 + OpSelectionMerge %84 None + OpBranchConditional %83 %85 %84 + %85 = OpLabel + OpBranch %14 + %84 = OpLabel + OpSelectionMerge %86 None + OpBranchConditional %false %86 %87 + %87 = OpLabel + OpBranch %14 + %86 = OpLabel + OpBranch %12 + %12 = OpLabel + %88 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 %89 = OpLoad %uint %88 None - %90 = OpISub %uint %89 %tint_carry_2 - %91 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_1 %uint_1 - OpStore %91 %90 None - OpBranch %71 - %72 = OpLabel - OpBranch %92 - %92 = OpLabel - OpStore %tint_loop_idx_2 %14 - OpStore %i62_0 %int_0 - OpBranch %95 - %95 = OpLabel - OpLoopMerge %96 %94 None - OpBranch %93 - %93 = OpLabel - %99 = OpLoad %v2uint %tint_loop_idx_2 None - %100 = OpIEqual %v2bool %99 %22 - %101 = OpAll %bool %100 - OpSelectionMerge %102 None - OpBranchConditional %101 %103 %102 - %103 = OpLabel - OpBranch %96 - %102 = OpLabel - OpSelectionMerge %104 None - OpBranchConditional %false %104 %105 - %105 = OpLabel - OpBranch %96 +%tint_low_inc_1 = OpISub %uint %89 %uint_1 + %91 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + OpStore %91 %tint_low_inc_1 None + %92 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 +%tint_carry_1 = OpSelect %uint %92 %uint_1 %uint_0 + %94 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + %95 = OpLoad %uint %94 None + %96 = OpISub %uint %95 %tint_carry_1 + %97 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + OpStore %97 %96 None + OpBranch %13 + %14 = OpLabel + OpBranch %15 + %15 = OpLabel + OpStore %tint_loop_idx_1 %49 + OpStore %i0520_0 %int_0 + OpBranch %18 + %18 = OpLabel + OpLoopMerge %19 %17 None + OpBranch %16 + %16 = OpLabel + %100 = OpLoad %v2uint %tint_loop_idx_1 None + %101 = OpIEqual %v2bool %100 %57 + %102 = OpAll %bool %101 + OpSelectionMerge %103 None + OpBranchConditional %102 %104 %103 %104 = OpLabel - OpBranch %94 - %94 = OpLabel - %106 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_2 %uint_0 - %107 = OpLoad %uint %106 None -%tint_low_inc_3 = OpISub %uint %107 %uint_1 - %109 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_2 %uint_0 - OpStore %109 %tint_low_inc_3 None - %110 = OpIEqual %bool %tint_low_inc_3 %uint_4294967295 -%tint_carry_3 = OpSelect %uint %110 %uint_1 %uint_0 - %112 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_2 %uint_1 - %113 = OpLoad %uint %112 None - %114 = OpISub %uint %113 %tint_carry_3 - %115 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_2 %uint_1 - OpStore %115 %114 None - OpBranch %95 - %96 = OpLabel - OpBranch %116 - %116 = OpLabel - OpStore %tint_loop_idx_3 %14 + OpBranch %19 + %103 = OpLabel + OpSelectionMerge %105 None + OpBranchConditional %false %105 %106 + %106 = OpLabel + OpBranch %19 + %105 = OpLabel + OpBranch %17 + %17 = OpLabel + %107 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_1 %uint_0 + %108 = OpLoad %uint %107 None +%tint_low_inc_2 = OpISub %uint %108 %uint_1 + %110 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_1 %uint_0 + OpStore %110 %tint_low_inc_2 None + %111 = OpIEqual %bool %tint_low_inc_2 %uint_4294967295 +%tint_carry_2 = OpSelect %uint %111 %uint_1 %uint_0 + %113 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_1 %uint_1 + %114 = OpLoad %uint %113 None + %115 = OpISub %uint %114 %tint_carry_2 + %116 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_1 %uint_1 + OpStore %116 %115 None + OpBranch %18 + %19 = OpLabel + OpBranch %20 + %20 = OpLabel + OpStore %tint_loop_idx_2 %49 + OpStore %i62_0 %int_0 + OpBranch %23 + %23 = OpLabel + OpLoopMerge %24 %22 None + OpBranch %21 + %21 = OpLabel + %119 = OpLoad %v2uint %tint_loop_idx_2 None + %120 = OpIEqual %v2bool %119 %57 + %121 = OpAll %bool %120 + OpSelectionMerge %122 None + OpBranchConditional %121 %123 %122 + %123 = OpLabel + OpBranch %24 + %122 = OpLabel + OpSelectionMerge %124 None + OpBranchConditional %false %124 %125 + %125 = OpLabel + OpBranch %24 + %124 = OpLabel + OpBranch %22 + %22 = OpLabel + %126 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_2 %uint_0 + %127 = OpLoad %uint %126 None +%tint_low_inc_3 = OpISub %uint %127 %uint_1 + %129 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_2 %uint_0 + OpStore %129 %tint_low_inc_3 None + %130 = OpIEqual %bool %tint_low_inc_3 %uint_4294967295 +%tint_carry_3 = OpSelect %uint %130 %uint_1 %uint_0 + %132 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_2 %uint_1 + %133 = OpLoad %uint %132 None + %134 = OpISub %uint %133 %tint_carry_3 + %135 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_2 %uint_1 + OpStore %135 %134 None + OpBranch %23 + %24 = OpLabel + OpBranch %25 + %25 = OpLabel + OpStore %tint_loop_idx_3 %49 OpStore %i62_1 %int_0 - OpBranch %119 - %119 = OpLabel - OpLoopMerge %120 %118 None - OpBranch %117 - %117 = OpLabel - %123 = OpLoad %v2uint %tint_loop_idx_3 None - %124 = OpIEqual %v2bool %123 %22 - %125 = OpAll %bool %124 - OpSelectionMerge %126 None - OpBranchConditional %125 %127 %126 - %127 = OpLabel - OpBranch %120 - %126 = OpLabel - OpSelectionMerge %128 None - OpBranchConditional %false %128 %129 - %129 = OpLabel - OpBranch %120 - %128 = OpLabel - OpBranch %118 - %118 = OpLabel - %130 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_3 %uint_0 - %131 = OpLoad %uint %130 None -%tint_low_inc_4 = OpISub %uint %131 %uint_1 - %133 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_3 %uint_0 - OpStore %133 %tint_low_inc_4 None - %134 = OpIEqual %bool %tint_low_inc_4 %uint_4294967295 -%tint_carry_4 = OpSelect %uint %134 %uint_1 %uint_0 - %136 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_3 %uint_1 - %137 = OpLoad %uint %136 None - %138 = OpISub %uint %137 %tint_carry_4 - %139 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_3 %uint_1 - OpStore %139 %138 None - OpBranch %119 - %120 = OpLabel - OpBranch %140 - %140 = OpLabel - OpStore %tint_loop_idx_4 %14 - OpStore %i60 %int_0 - OpBranch %143 - %143 = OpLabel - OpLoopMerge %144 %142 None - OpBranch %141 - %141 = OpLabel - %147 = OpLoad %v2uint %tint_loop_idx_4 None - %148 = OpIEqual %v2bool %147 %22 - %149 = OpAll %bool %148 - OpSelectionMerge %150 None - OpBranchConditional %149 %151 %150 - %151 = OpLabel - OpBranch %144 - %150 = OpLabel - OpSelectionMerge %152 None - OpBranchConditional %false %152 %153 - %153 = OpLabel - OpBranch %144 - %152 = OpLabel - OpBranch %142 + OpBranch %28 + %28 = OpLabel + OpLoopMerge %29 %27 None + OpBranch %26 + %26 = OpLabel + %138 = OpLoad %v2uint %tint_loop_idx_3 None + %139 = OpIEqual %v2bool %138 %57 + %140 = OpAll %bool %139 + OpSelectionMerge %141 None + OpBranchConditional %140 %142 %141 %142 = OpLabel - %154 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_4 %uint_0 - %155 = OpLoad %uint %154 None -%tint_low_inc_5 = OpISub %uint %155 %uint_1 - %157 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_4 %uint_0 - OpStore %157 %tint_low_inc_5 None - %158 = OpIEqual %bool %tint_low_inc_5 %uint_4294967295 -%tint_carry_5 = OpSelect %uint %158 %uint_1 %uint_0 - %160 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_4 %uint_1 - %161 = OpLoad %uint %160 None - %162 = OpISub %uint %161 %tint_carry_5 - %163 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_4 %uint_1 - OpStore %163 %162 None - OpBranch %143 + OpBranch %29 + %141 = OpLabel + OpSelectionMerge %143 None + OpBranchConditional %false %143 %144 %144 = OpLabel - OpBranch %164 - %164 = OpLabel - OpStore %tint_loop_idx_5 %14 + OpBranch %29 + %143 = OpLabel + OpBranch %27 + %27 = OpLabel + %145 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_3 %uint_0 + %146 = OpLoad %uint %145 None +%tint_low_inc_4 = OpISub %uint %146 %uint_1 + %148 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_3 %uint_0 + OpStore %148 %tint_low_inc_4 None + %149 = OpIEqual %bool %tint_low_inc_4 %uint_4294967295 +%tint_carry_4 = OpSelect %uint %149 %uint_1 %uint_0 + %151 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_3 %uint_1 + %152 = OpLoad %uint %151 None + %153 = OpISub %uint %152 %tint_carry_4 + %154 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_3 %uint_1 + OpStore %154 %153 None + OpBranch %28 + %29 = OpLabel + OpBranch %30 + %30 = OpLabel + OpStore %tint_loop_idx_4 %49 + OpStore %i60 %int_0 + OpBranch %33 + %33 = OpLabel + OpLoopMerge %34 %32 None + OpBranch %31 + %31 = OpLabel + %157 = OpLoad %v2uint %tint_loop_idx_4 None + %158 = OpIEqual %v2bool %157 %57 + %159 = OpAll %bool %158 + OpSelectionMerge %160 None + OpBranchConditional %159 %161 %160 + %161 = OpLabel + OpBranch %34 + %160 = OpLabel + OpSelectionMerge %162 None + OpBranchConditional %false %162 %163 + %163 = OpLabel + OpBranch %34 + %162 = OpLabel + OpBranch %32 + %32 = OpLabel + %164 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_4 %uint_0 + %165 = OpLoad %uint %164 None +%tint_low_inc_5 = OpISub %uint %165 %uint_1 + %167 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_4 %uint_0 + OpStore %167 %tint_low_inc_5 None + %168 = OpIEqual %bool %tint_low_inc_5 %uint_4294967295 +%tint_carry_5 = OpSelect %uint %168 %uint_1 %uint_0 + %170 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_4 %uint_1 + %171 = OpLoad %uint %170 None + %172 = OpISub %uint %171 %tint_carry_5 + %173 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_4 %uint_1 + OpStore %173 %172 None + OpBranch %33 + %34 = OpLabel + OpBranch %35 + %35 = OpLabel + OpStore %tint_loop_idx_5 %49 OpStore %i62_2 %int_0 - OpBranch %167 - %167 = OpLabel - OpLoopMerge %168 %166 None - OpBranch %165 - %165 = OpLabel - %171 = OpLoad %v2uint %tint_loop_idx_5 None - %172 = OpIEqual %v2bool %171 %22 - %173 = OpAll %bool %172 - OpSelectionMerge %174 None - OpBranchConditional %173 %175 %174 - %175 = OpLabel - OpBranch %168 - %174 = OpLabel - OpSelectionMerge %176 None - OpBranchConditional %false %176 %177 - %177 = OpLabel - OpBranch %168 - %176 = OpLabel - OpBranch %166 - %166 = OpLabel - %178 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_5 %uint_0 - %179 = OpLoad %uint %178 None -%tint_low_inc_6 = OpISub %uint %179 %uint_1 - %181 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_5 %uint_0 - OpStore %181 %tint_low_inc_6 None - %182 = OpIEqual %bool %tint_low_inc_6 %uint_4294967295 -%tint_carry_6 = OpSelect %uint %182 %uint_1 %uint_0 - %184 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_5 %uint_1 - %185 = OpLoad %uint %184 None - %186 = OpISub %uint %185 %tint_carry_6 - %187 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_5 %uint_1 - OpStore %187 %186 None - OpBranch %167 - %168 = OpLabel - OpBranch %188 - %188 = OpLabel - OpStore %tint_loop_idx_6 %14 + OpBranch %38 + %38 = OpLabel + OpLoopMerge %39 %37 None + OpBranch %36 + %36 = OpLabel + %176 = OpLoad %v2uint %tint_loop_idx_5 None + %177 = OpIEqual %v2bool %176 %57 + %178 = OpAll %bool %177 + OpSelectionMerge %179 None + OpBranchConditional %178 %180 %179 + %180 = OpLabel + OpBranch %39 + %179 = OpLabel + OpSelectionMerge %181 None + OpBranchConditional %false %181 %182 + %182 = OpLabel + OpBranch %39 + %181 = OpLabel + OpBranch %37 + %37 = OpLabel + %183 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_5 %uint_0 + %184 = OpLoad %uint %183 None +%tint_low_inc_6 = OpISub %uint %184 %uint_1 + %186 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_5 %uint_0 + OpStore %186 %tint_low_inc_6 None + %187 = OpIEqual %bool %tint_low_inc_6 %uint_4294967295 +%tint_carry_6 = OpSelect %uint %187 %uint_1 %uint_0 + %189 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_5 %uint_1 + %190 = OpLoad %uint %189 None + %191 = OpISub %uint %190 %tint_carry_6 + %192 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_5 %uint_1 + OpStore %192 %191 None + OpBranch %38 + %39 = OpLabel + OpBranch %40 + %40 = OpLabel + OpStore %tint_loop_idx_6 %49 OpStore %i60_0 %int_0 - OpBranch %191 - %191 = OpLabel - OpLoopMerge %192 %190 None - OpBranch %189 - %189 = OpLabel + OpBranch %43 + %43 = OpLabel + OpLoopMerge %44 %42 None + OpBranch %41 + %41 = OpLabel %195 = OpLoad %v2uint %tint_loop_idx_6 None - %196 = OpIEqual %v2bool %195 %22 + %196 = OpIEqual %v2bool %195 %57 %197 = OpAll %bool %196 OpSelectionMerge %198 None OpBranchConditional %197 %199 %198 %199 = OpLabel - OpBranch %192 + OpBranch %44 %198 = OpLabel OpSelectionMerge %200 None OpBranchConditional %false %200 %201 %201 = OpLabel - OpBranch %192 + OpBranch %44 %200 = OpLabel - OpBranch %190 - %190 = OpLabel + OpBranch %42 + %42 = OpLabel %202 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_6 %uint_0 %203 = OpLoad %uint %202 None %tint_low_inc_7 = OpISub %uint %203 %uint_1 @@ -378,8 +378,8 @@ %210 = OpISub %uint %209 %tint_carry_7 %211 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_6 %uint_1 OpStore %211 %210 None - OpBranch %191 - %192 = OpLabel + OpBranch %43 + %44 = OpLabel OpReturn OpFunctionEnd %unused_entry_point = OpFunction %void None %3
diff --git a/test/tint/bug/chromium/343597426.wgsl.expected.spvasm b/test/tint/bug/chromium/343597426.wgsl.expected.spvasm index aed9f23..220e1cb 100644 --- a/test/tint/bug/chromium/343597426.wgsl.expected.spvasm +++ b/test/tint/bug/chromium/343597426.wgsl.expected.spvasm
@@ -40,10 +40,10 @@ OpStore %continue_execution %false None OpBranch %16 %16 = OpLabel - %19 = OpLoad %bool %continue_execution None - OpSelectionMerge %20 None - OpBranchConditional %19 %21 %20 - %21 = OpLabel + %18 = OpLoad %bool %continue_execution None + OpSelectionMerge %19 None + OpBranchConditional %18 %20 %19 + %20 = OpLabel OpSelectionMerge %22 None OpBranchConditional %c %23 %22 %23 = OpLabel @@ -66,8 +66,8 @@ %27 = OpLabel OpBranch %22 %22 = OpLabel - OpBranch %20 - %20 = OpLabel + OpBranch %19 + %19 = OpLabel OpBranch %14 %14 = OpLabel OpReturn
diff --git a/test/tint/bug/chromium/344265982.wgsl.expected.spvasm b/test/tint/bug/chromium/344265982.wgsl.expected.spvasm index f8cfe27..f9aab32 100644 --- a/test/tint/bug/chromium/344265982.wgsl.expected.spvasm +++ b/test/tint/bug/chromium/344265982.wgsl.expected.spvasm
@@ -35,8 +35,8 @@ %uint_3 = OpConstant %uint 3 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int %uint_0 = OpConstant %uint 0 - %int_2 = OpConstant %int 2 %int_1 = OpConstant %int 1 + %int_2 = OpConstant %int 2 %foo = OpFunction %void None %10 %11 = OpLabel %i = OpVariable %_ptr_Function_int Function @@ -62,21 +62,21 @@ %34 = OpLoad %int %31 None OpSelectionMerge %37 None OpSwitch %34 %35 1 %36 + %35 = OpLabel + %41 = OpLoad %int %i None + %42 = OpBitcast %uint %41 + %43 = OpExtInst %uint %29 UMin %42 %uint_3 + %44 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 %43 + OpStore %44 %int_2 None + OpBranch %37 %36 = OpLabel OpBranch %14 - %35 = OpLabel - %38 = OpLoad %int %i None - %39 = OpBitcast %uint %38 - %40 = OpExtInst %uint %29 UMin %39 %uint_3 - %41 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 %40 - OpStore %41 %int_2 None - OpBranch %37 %37 = OpLabel OpBranch %14 %14 = OpLabel - %43 = OpLoad %int %i None - %44 = OpIAdd %int %43 %int_1 - OpStore %i %44 None + %38 = OpLoad %int %i None + %39 = OpIAdd %int %38 %int_1 + OpStore %i %39 None OpBranch %15 %16 = OpLabel OpReturn
diff --git a/test/tint/bug/chromium/40943165.wgsl.expected.spvasm b/test/tint/bug/chromium/40943165.wgsl.expected.spvasm index 6c2ff9f..8cad14b 100644 --- a/test/tint/bug/chromium/40943165.wgsl.expected.spvasm +++ b/test/tint/bug/chromium/40943165.wgsl.expected.spvasm
@@ -25,12 +25,12 @@ %12 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %19 = OpConstantNull %mat2v2float %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Workgroup_v2float = OpTypePointer Workgroup %v2float %uint_0 = OpConstant %uint 0 %float_0 = OpConstant %float 0 + %29 = OpConstantNull %mat2v2float %31 = OpTypeFunction %void %F_inner = OpFunction %void None %12 %mat2x2 = OpFunctionParameter %uint @@ -39,15 +39,15 @@ OpSelectionMerge %17 None OpBranchConditional %14 %18 %17 %18 = OpLabel - OpStore %W %19 None + OpStore %W %29 None OpBranch %17 %17 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %23 = OpAccessChain %_ptr_Workgroup_v2float %W %uint_0 - %26 = OpLoad %v2float %23 None - %27 = OpCompositeConstruct %v2float %float_0 %float_0 - %29 = OpFAdd %v2float %26 %27 - OpStore %23 %29 None + %22 = OpAccessChain %_ptr_Workgroup_v2float %W %uint_0 + %25 = OpLoad %v2float %22 None + %26 = OpCompositeConstruct %v2float %float_0 %float_0 + %28 = OpFAdd %v2float %25 %26 + OpStore %22 %28 None OpReturn OpFunctionEnd %F = OpFunction %void None %31
diff --git a/test/tint/bug/dawn/947.wgsl.expected.spvasm b/test/tint/bug/dawn/947.wgsl.expected.spvasm index 5b29ddc..c7baabb 100644 --- a/test/tint/bug/dawn/947.wgsl.expected.spvasm +++ b/test/tint/bug/dawn/947.wgsl.expected.spvasm
@@ -83,8 +83,8 @@ %bool = OpTypeBool %_ptr_Function_bool = OpTypePointer Function %bool %float_n1 = OpConstant %float -1 - %77 = OpConstantComposite %v2float %float_1 %float_n1 - %80 = OpConstantComposite %v2float %float_0 %float_1 + %78 = OpConstantComposite %v2float %float_1 %float_n1 + %81 = OpConstantComposite %v2float %float_0 %float_1 %void = OpTypeVoid %96 = OpTypeFunction %void %vs_main_inner = OpFunction %VertexOutputs None %20 @@ -111,38 +111,38 @@ OpSelectionMerge %63 None OpBranchConditional %62 %64 %65 %64 = OpLabel - %66 = OpAccessChain %_ptr_Function_v2float %output %uint_0 - %67 = OpExtInst %uint %42 UMin %VertexIndex %uint_2 - %68 = OpAccessChain %_ptr_Function_v2float %texcoord %67 - %69 = OpLoad %v2float %68 None - %70 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 - %71 = OpLoad %v2float %70 None - %72 = OpFMul %v2float %69 %71 - %73 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_1 - %74 = OpLoad %v2float %73 None - %75 = OpFAdd %v2float %72 %74 - %76 = OpFMul %v2float %75 %77 - %79 = OpFAdd %v2float %76 %80 - OpStore %66 %79 None + %67 = OpAccessChain %_ptr_Function_v2float %output %uint_0 + %68 = OpExtInst %uint %42 UMin %VertexIndex %uint_2 + %69 = OpAccessChain %_ptr_Function_v2float %texcoord %68 + %70 = OpLoad %v2float %69 None + %71 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 + %72 = OpLoad %v2float %71 None + %73 = OpFMul %v2float %70 %72 + %74 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_1 + %75 = OpLoad %v2float %74 None + %76 = OpFAdd %v2float %73 %75 + %77 = OpFMul %v2float %76 %78 + %80 = OpFAdd %v2float %77 %81 + OpStore %67 %80 None OpBranch %63 %65 = OpLabel - %81 = OpAccessChain %_ptr_Function_v2float %output %uint_0 - %82 = OpExtInst %uint %42 UMin %VertexIndex %uint_2 - %83 = OpAccessChain %_ptr_Function_v2float %texcoord %82 - %84 = OpLoad %v2float %83 None - %85 = OpFMul %v2float %84 %77 - %86 = OpFAdd %v2float %85 %80 - %87 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 - %88 = OpLoad %v2float %87 None - %89 = OpFMul %v2float %86 %88 - %90 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_1 - %91 = OpLoad %v2float %90 None - %92 = OpFAdd %v2float %89 %91 - OpStore %81 %92 None + %82 = OpAccessChain %_ptr_Function_v2float %output %uint_0 + %83 = OpExtInst %uint %42 UMin %VertexIndex %uint_2 + %84 = OpAccessChain %_ptr_Function_v2float %texcoord %83 + %85 = OpLoad %v2float %84 None + %86 = OpFMul %v2float %85 %78 + %87 = OpFAdd %v2float %86 %81 + %88 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_0 + %89 = OpLoad %v2float %88 None + %90 = OpFMul %v2float %87 %89 + %91 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_1 + %92 = OpLoad %v2float %91 None + %93 = OpFAdd %v2float %90 %92 + OpStore %82 %93 None OpBranch %63 %63 = OpLabel - %93 = OpLoad %VertexOutputs %output None - OpReturnValue %93 + %66 = OpLoad %VertexOutputs %output None + OpReturnValue %66 OpFunctionEnd %vs_main = OpFunction %void None %96 %97 = OpLabel @@ -195,9 +195,9 @@ %19 = OpConstantComposite %v2float %float_1 %float_1 %_ptr_Function_v2float = OpTypePointer Function %v2float %v2bool = OpTypeVector %bool 2 - %false = OpConstantFalse %bool %_ptr_Function_v4float = OpTypePointer Function %v4float - %33 = OpConstantNull %v4float + %32 = OpConstantNull %v4float + %false = OpConstantFalse %bool %void = OpTypeVoid %41 = OpTypeFunction %void %fs_main_inner = OpFunction %v4float None %14 @@ -217,16 +217,16 @@ OpStore %continue_execution %false None OpBranch %28 %28 = OpLabel - OpStore %srcColor %33 - %34 = OpLoad %v4float %srcColor None - %35 = OpLoad %bool %continue_execution None - %36 = OpLogicalNot %bool %35 - OpSelectionMerge %37 None - OpBranchConditional %36 %38 %37 - %38 = OpLabel - OpKill + OpStore %srcColor %32 + %33 = OpLoad %v4float %srcColor None + %34 = OpLoad %bool %continue_execution None + %35 = OpLogicalNot %bool %34 + OpSelectionMerge %36 None + OpBranchConditional %35 %37 %36 %37 = OpLabel - OpReturnValue %34 + OpKill + %36 = OpLabel + OpReturnValue %33 OpFunctionEnd %fs_main = OpFunction %void None %41 %42 = OpLabel
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.spvasm b/test/tint/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.spvasm index 25b70a9..1b2b6ec 100644 --- a/test/tint/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.spvasm +++ b/test/tint/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.spvasm
@@ -4,7 +4,7 @@ ; Bound: 58 ; Schema: 0 OpCapability Shader - %49 = OpExtInstImport "GLSL.std.450" + %41 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint GLCompute %f "f" %f_local_invocation_index_Input OpExecutionMode %f LocalSize 1 1 1 @@ -55,16 +55,16 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %21 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_int = OpTypePointer Workgroup %int - %uint_0 = OpConstant %uint 0 - %int_0 = OpConstant %int 0 - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %uint_0 = OpConstant %uint 0 %_ptr_Uniform_int = OpTypePointer Uniform %int %uint_63 = OpConstant %uint 63 +%_ptr_Workgroup_int = OpTypePointer Workgroup %int + %bool = OpTypeBool + %int_0 = OpConstant %int 0 + %uint_1 = OpConstant %uint 1 %54 = OpTypeFunction %void %f_inner = OpFunction %void None %21 %tint_local_index = OpFunctionParameter %uint @@ -77,28 +77,28 @@ OpLoopMerge %27 %25 None OpBranch %24 %24 = OpLabel - %30 = OpUGreaterThanEqual %bool %28 %uint_64 - OpSelectionMerge %32 None - OpBranchConditional %30 %33 %32 - %33 = OpLabel + %46 = OpUGreaterThanEqual %bool %28 %uint_64 + OpSelectionMerge %48 None + OpBranchConditional %46 %49 %48 + %49 = OpLabel OpBranch %27 - %32 = OpLabel - %34 = OpAccessChain %_ptr_Workgroup_int %s %uint_0 %28 - OpStore %34 %int_0 None + %48 = OpLabel + %50 = OpAccessChain %_ptr_Workgroup_int %s %uint_0 %28 + OpStore %50 %int_0 None OpBranch %25 %25 = OpLabel %29 = OpIAdd %uint %28 %uint_1 OpBranch %26 %27 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %42 = OpAccessChain %_ptr_StorageBuffer_int %6 %uint_0 %uint_0 - %44 = OpAccessChain %_ptr_Uniform_int %1 %uint_0 %uint_0 - %46 = OpLoad %int %44 None - %47 = OpBitcast %uint %46 - %48 = OpExtInst %uint %49 UMin %47 %uint_63 - %51 = OpAccessChain %_ptr_Workgroup_int %s %uint_0 %48 - %52 = OpLoad %int %51 None - OpStore %42 %52 None + %33 = OpAccessChain %_ptr_StorageBuffer_int %6 %uint_0 %uint_0 + %36 = OpAccessChain %_ptr_Uniform_int %1 %uint_0 %uint_0 + %38 = OpLoad %int %36 None + %39 = OpBitcast %uint %38 + %40 = OpExtInst %uint %41 UMin %39 %uint_63 + %43 = OpAccessChain %_ptr_Workgroup_int %s %uint_0 %40 + %45 = OpLoad %int %43 None + OpStore %33 %45 None OpReturn OpFunctionEnd %f = OpFunction %void None %54
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.spvasm b/test/tint/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.spvasm index 0cfe1b1..b0bd517 100644 --- a/test/tint/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.spvasm +++ b/test/tint/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.spvasm
@@ -4,7 +4,7 @@ ; Bound: 61 ; Schema: 0 OpCapability Shader - %47 = OpExtInstImport "GLSL.std.450" + %39 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint GLCompute %f "f" %f_local_invocation_index_Input OpExecutionMode %f LocalSize 1 1 1 @@ -55,18 +55,18 @@ %f_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %21 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_int = OpTypePointer Workgroup %int - %uint_0 = OpConstant %uint 0 - %int_0 = OpConstant %int 0 - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform_int = OpTypePointer Uniform %int + %uint_0 = OpConstant %uint 0 %uint_63 = OpConstant %uint 63 +%_ptr_Workgroup_int = OpTypePointer Workgroup %int %int_1 = OpConstant %int 1 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int %uint_3 = OpConstant %uint 3 + %bool = OpTypeBool + %int_0 = OpConstant %int 0 + %uint_1 = OpConstant %uint 1 %57 = OpTypeFunction %void %f_inner = OpFunction %void None %21 %tint_local_index = OpFunctionParameter %uint @@ -79,30 +79,30 @@ OpLoopMerge %27 %25 None OpBranch %24 %24 = OpLabel - %30 = OpUGreaterThanEqual %bool %28 %uint_64 - OpSelectionMerge %32 None - OpBranchConditional %30 %33 %32 - %33 = OpLabel + %49 = OpUGreaterThanEqual %bool %28 %uint_64 + OpSelectionMerge %51 None + OpBranchConditional %49 %52 %51 + %52 = OpLabel OpBranch %27 - %32 = OpLabel - %34 = OpAccessChain %_ptr_Workgroup_int %s %uint_0 %28 - OpStore %34 %int_0 None + %51 = OpLabel + %53 = OpAccessChain %_ptr_Workgroup_int %s %uint_0 %28 + OpStore %53 %int_0 None OpBranch %25 %25 = OpLabel %29 = OpIAdd %uint %28 %uint_1 OpBranch %26 %27 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %42 = OpAccessChain %_ptr_Uniform_int %1 %uint_0 %uint_0 - %44 = OpLoad %int %42 None - %45 = OpBitcast %uint %44 - %46 = OpExtInst %uint %47 UMin %45 %uint_63 - %49 = OpAccessChain %_ptr_Workgroup_int %s %uint_0 %46 - OpStore %49 %int_1 None - %51 = OpAccessChain %_ptr_StorageBuffer_int %6 %uint_0 %uint_0 - %53 = OpAccessChain %_ptr_Workgroup_int %s %uint_0 %uint_3 - %55 = OpLoad %int %53 None - OpStore %51 %55 None + %33 = OpAccessChain %_ptr_Uniform_int %1 %uint_0 %uint_0 + %36 = OpLoad %int %33 None + %37 = OpBitcast %uint %36 + %38 = OpExtInst %uint %39 UMin %37 %uint_63 + %41 = OpAccessChain %_ptr_Workgroup_int %s %uint_0 %38 + OpStore %41 %int_1 None + %44 = OpAccessChain %_ptr_StorageBuffer_int %6 %uint_0 %uint_0 + %46 = OpAccessChain %_ptr_Workgroup_int %s %uint_0 %uint_3 + %48 = OpLoad %int %46 None + OpStore %44 %48 None OpReturn OpFunctionEnd %f = OpFunction %void None %57
diff --git a/test/tint/bug/fxc/gradient_in_varying_loop/1112.wgsl.expected.spvasm b/test/tint/bug/fxc/gradient_in_varying_loop/1112.wgsl.expected.spvasm index 61e6158..931d53c 100644 --- a/test/tint/bug/fxc/gradient_in_varying_loop/1112.wgsl.expected.spvasm +++ b/test/tint/bug/fxc/gradient_in_varying_loop/1112.wgsl.expected.spvasm
@@ -46,22 +46,22 @@ %int = OpTypeInt 32 1 %_ptr_Function_int = OpTypePointer Function %int %int_0 = OpConstant %int 0 + %float_1 = OpConstant %float 1 + %34 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 %uint = OpTypeInt 32 0 %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %38 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %42 = OpConstantNull %v2uint + %40 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %44 = OpConstantNull %v2uint %bool = OpTypeBool %v2bool = OpTypeVector %bool 2 %int_1 = OpConstant %int 1 %sampleDepth = OpConstant %float 0 %true = OpConstantTrue %bool - %float_1 = OpConstant %float 1 %_ptr_Function_uint = OpTypePointer Function %uint %uint_0 = OpConstant %uint 0 %uint_1 = OpConstant %uint 1 - %97 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 %void = OpTypeVoid %100 = OpTypeFunction %void %main_inner = OpFunction %v4float None %16 @@ -77,89 +77,89 @@ OpStore %i %int_0 OpBranch %29 %29 = OpLabel - OpStore %tint_loop_idx %38 + OpStore %tint_loop_idx %40 OpBranch %32 %32 = OpLabel OpLoopMerge %33 %31 None OpBranch %30 %30 = OpLabel - %40 = OpLoad %v2uint %tint_loop_idx None - %41 = OpIEqual %v2bool %40 %42 - %45 = OpAll %bool %41 - OpSelectionMerge %46 None - OpBranchConditional %45 %47 %46 - %47 = OpLabel + %42 = OpLoad %v2uint %tint_loop_idx None + %43 = OpIEqual %v2bool %42 %44 + %47 = OpAll %bool %43 + OpSelectionMerge %48 None + OpBranchConditional %47 %49 %48 + %49 = OpLabel OpBranch %33 - %46 = OpLabel - %48 = OpLoad %int %i None - %49 = OpSLessThan %bool %48 %int_1 - OpSelectionMerge %51 None - OpBranchConditional %49 %51 %52 - %52 = OpLabel + %48 = OpLabel + %50 = OpLoad %int %i None + %51 = OpSLessThan %bool %50 %int_1 + OpSelectionMerge %53 None + OpBranchConditional %51 %53 %54 + %54 = OpLabel OpBranch %33 - %51 = OpLabel - %53 = OpCompositeExtract %float %random 0 - %offset = OpCompositeConstruct %v3float %53 %53 %53 - %55 = OpCompositeExtract %float %offset 0 - %56 = OpFOrdLessThan %bool %55 %sampleDepth - OpSelectionMerge %58 None - OpBranchConditional %56 %59 %60 - %59 = OpLabel - OpBranch %58 + %53 = OpLabel + %55 = OpCompositeExtract %float %random 0 + %offset = OpCompositeConstruct %v3float %55 %55 %55 + %57 = OpCompositeExtract %float %offset 0 + %58 = OpFOrdLessThan %bool %57 %sampleDepth + OpSelectionMerge %60 None + OpBranchConditional %58 %61 %62 + %61 = OpLabel + OpBranch %60 + %62 = OpLabel + %93 = OpCompositeExtract %float %offset 1 + %65 = OpFOrdLessThan %bool %93 %sampleDepth + OpBranch %60 %60 = OpLabel - %61 = OpCompositeExtract %float %offset 1 - %62 = OpFOrdLessThan %bool %61 %sampleDepth - OpBranch %58 - %58 = OpLabel - %63 = OpPhi %bool %true %59 %62 %60 - OpSelectionMerge %65 None - OpBranchConditional %63 %66 %67 - %66 = OpLabel - OpBranch %65 + %63 = OpPhi %bool %true %61 %65 %62 + OpSelectionMerge %66 None + OpBranchConditional %63 %67 %68 %67 = OpLabel - %68 = OpCompositeExtract %float %offset 0 - %69 = OpFOrdGreaterThan %bool %68 %float_1 - OpBranch %65 - %65 = OpLabel - %71 = OpPhi %bool %true %66 %69 %67 - OpSelectionMerge %72 None - OpBranchConditional %71 %73 %74 - %73 = OpLabel - OpBranch %72 - %74 = OpLabel - %75 = OpCompositeExtract %float %offset 1 - %76 = OpFOrdGreaterThan %bool %75 %float_1 - OpBranch %72 + OpBranch %66 + %68 = OpLabel + %94 = OpCompositeExtract %float %offset 0 + %70 = OpFOrdGreaterThan %bool %94 %float_1 + OpBranch %66 + %66 = OpLabel + %69 = OpPhi %bool %true %67 %70 %68 + OpSelectionMerge %71 None + OpBranchConditional %69 %72 %73 %72 = OpLabel - %77 = OpPhi %bool %true %73 %76 %74 - OpSelectionMerge %78 None - OpBranchConditional %77 %79 %78 - %79 = OpLabel - %80 = OpLoad %int %i None - %81 = OpIAdd %int %80 %int_1 - OpStore %i %81 None + OpBranch %71 + %73 = OpLabel + %95 = OpCompositeExtract %float %offset 1 + %75 = OpFOrdGreaterThan %bool %95 %float_1 + OpBranch %71 + %71 = OpLabel + %74 = OpPhi %bool %true %72 %75 %73 + OpSelectionMerge %76 None + OpBranchConditional %74 %77 %76 + %77 = OpLabel + %96 = OpLoad %int %i None + %97 = OpIAdd %int %96 %int_1 + OpStore %i %97 None OpBranch %31 - %78 = OpLabel - %82 = OpLoad %int %i None - %83 = OpIAdd %int %82 %int_1 - OpStore %i %83 None + %76 = OpLabel + %78 = OpLoad %int %i None + %79 = OpIAdd %int %78 %int_1 + OpStore %i %79 None OpBranch %31 %31 = OpLabel - %84 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %87 = OpLoad %uint %84 None -%tint_low_inc = OpISub %uint %87 %uint_1 - %90 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %90 %tint_low_inc None - %91 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %91 %uint_1 %uint_0 - %93 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %94 = OpLoad %uint %93 None - %95 = OpISub %uint %94 %tint_carry - %96 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %96 %95 None + %80 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %83 = OpLoad %uint %80 None +%tint_low_inc = OpISub %uint %83 %uint_1 + %86 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %86 %tint_low_inc None + %87 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %87 %uint_1 %uint_0 + %89 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %90 = OpLoad %uint %89 None + %91 = OpISub %uint %90 %tint_carry + %92 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %92 %91 None OpBranch %32 %33 = OpLabel - OpReturnValue %97 + OpReturnValue %34 OpFunctionEnd %main = OpFunction %void None %100 %101 = OpLabel
diff --git a/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.spvasm b/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.spvasm index 50c6250..a892c4a 100644 --- a/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.spvasm +++ b/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.spvasm
@@ -132,21 +132,21 @@ OpLoopMerge %74 %72 None OpBranch %71 %71 = OpLabel - %77 = OpUGreaterThanEqual %bool %75 %uint_8 - OpSelectionMerge %79 None - OpBranchConditional %77 %80 %79 - %80 = OpLabel + %78 = OpUGreaterThanEqual %bool %75 %uint_8 + OpSelectionMerge %80 None + OpBranchConditional %78 %81 %80 + %81 = OpLabel OpBranch %74 - %79 = OpLabel - %81 = OpAccessChain %_ptr_Function_v3float %65 %75 - %82 = OpLoad %v3float %81 None - %83 = OpAccessChain %_ptr_Function_v3float %67 %75 - OpStore %83 %82 None + %80 = OpLabel + %82 = OpAccessChain %_ptr_Function_v3float %65 %75 + %83 = OpLoad %v3float %82 None + %84 = OpAccessChain %_ptr_Function_v3float %67 %75 + OpStore %84 %83 None OpBranch %72 %72 = OpLabel %76 = OpIAdd %uint %75 %uint_1 OpBranch %73 %74 = OpLabel - %84 = OpLoad %_arr_v3float_uint_8_0 %67 None - OpReturnValue %84 + %77 = OpLoad %_arr_v3float_uint_8_0 %67 None + OpReturnValue %77 OpFunctionEnd
diff --git a/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_some.wgsl.expected.spvasm b/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_some.wgsl.expected.spvasm index 12aff07..bd21757 100644 --- a/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_some.wgsl.expected.spvasm +++ b/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_some.wgsl.expected.spvasm
@@ -4,7 +4,7 @@ ; Bound: 131 ; Schema: 0 OpCapability Shader - %73 = OpExtInstImport "GLSL.std.450" + %68 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint GLCompute %main "main" OpExecutionMode %main LocalSize 1 1 1 @@ -67,16 +67,16 @@ %56 = OpConstantNull %v4bool %_ptr_Function_int = OpTypePointer Function %int %int_0 = OpConstant %int 0 - %int_2 = OpConstant %int 2 - %uint_1 = OpConstant %uint 1 + %uint_2 = OpConstant %uint 2 %_ptr_Function_float = OpTypePointer Function %float %float_1 = OpConstant %float 1 + %uint_3 = OpConstant %uint 3 %int_1 = OpConstant %int 1 %_ptr_Function_uint = OpTypePointer Function %uint + %uint_1 = OpConstant %uint 1 %_ptr_Function_bool = OpTypePointer Function %bool %true = OpConstantTrue %bool - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 + %int_2 = OpConstant %int 2 %main = OpFunction %void None %3 %4 = OpLabel %v2f = OpVariable %_ptr_Function_v2float Function %9 @@ -95,86 +95,86 @@ %i_0 = OpVariable %_ptr_Function_int Function OpBranch %57 %57 = OpLabel - OpStore %i %int_0 + OpStore %i_0 %int_0 OpBranch %60 %60 = OpLabel OpLoopMerge %61 %59 None OpBranch %58 %58 = OpLabel - %65 = OpLoad %int %i None - %66 = OpSLessThan %bool %65 %int_2 - OpSelectionMerge %68 None - OpBranchConditional %66 %68 %69 - %69 = OpLabel + %108 = OpLoad %int %i_0 None + %109 = OpSLessThan %bool %108 %int_2 + OpSelectionMerge %111 None + OpBranchConditional %109 %111 %112 + %112 = OpLabel OpBranch %61 - %68 = OpLabel - %70 = OpLoad %int %i None - %71 = OpBitcast %uint %70 - %72 = OpExtInst %uint %73 UMin %71 %uint_1 - %75 = OpAccessChain %_ptr_Function_float %v2f %72 - OpStore %75 %float_1 None + %111 = OpLabel + %113 = OpLoad %int %i_0 None + %114 = OpBitcast %uint %113 + %115 = OpExtInst %uint %68 UMin %114 %uint_1 + %116 = OpAccessChain %_ptr_Function_float %v2f %115 + OpStore %116 %float_1 None + %117 = OpLoad %int %i_0 None + %118 = OpBitcast %uint %117 + %119 = OpExtInst %uint %68 UMin %118 %uint_1 + %120 = OpAccessChain %_ptr_Function_int %v2i %119 + OpStore %120 %int_1 None + %121 = OpLoad %int %i_0 None + %122 = OpBitcast %uint %121 + %123 = OpExtInst %uint %68 UMin %122 %uint_1 + %124 = OpAccessChain %_ptr_Function_uint %v2u %123 + OpStore %124 %uint_1 None + %125 = OpLoad %int %i_0 None + %126 = OpBitcast %uint %125 + %127 = OpExtInst %uint %68 UMin %126 %uint_1 + %128 = OpAccessChain %_ptr_Function_bool %v2b %127 + OpStore %128 %true None + OpBranch %59 + %59 = OpLabel + %129 = OpLoad %int %i_0 None + %130 = OpIAdd %int %129 %int_1 + OpStore %i_0 %130 None + OpBranch %60 + %61 = OpLabel + OpStore %i %int_0 + %65 = OpLoad %int %i None + %66 = OpBitcast %uint %65 + %67 = OpExtInst %uint %68 UMin %66 %uint_2 + %70 = OpAccessChain %_ptr_Function_float %v3f %67 + OpStore %70 %float_1 None + %73 = OpLoad %int %i None + %74 = OpBitcast %uint %73 + %75 = OpExtInst %uint %68 UMin %74 %uint_3 + %77 = OpAccessChain %_ptr_Function_float %v4f %75 + OpStore %77 %float_1 None %78 = OpLoad %int %i None %79 = OpBitcast %uint %78 - %80 = OpExtInst %uint %73 UMin %79 %uint_1 - %81 = OpAccessChain %_ptr_Function_int %v2i %80 + %80 = OpExtInst %uint %68 UMin %79 %uint_2 + %81 = OpAccessChain %_ptr_Function_int %v3i %80 OpStore %81 %int_1 None %83 = OpLoad %int %i None %84 = OpBitcast %uint %83 - %85 = OpExtInst %uint %73 UMin %84 %uint_1 - %86 = OpAccessChain %_ptr_Function_uint %v2u %85 - OpStore %86 %uint_1 None - %88 = OpLoad %int %i None - %89 = OpBitcast %uint %88 - %90 = OpExtInst %uint %73 UMin %89 %uint_1 - %91 = OpAccessChain %_ptr_Function_bool %v2b %90 - OpStore %91 %true None - OpBranch %59 - %59 = OpLabel - %94 = OpLoad %int %i None - %95 = OpIAdd %int %94 %int_1 - OpStore %i %95 None - OpBranch %60 - %61 = OpLabel - OpStore %i_0 %int_0 - %97 = OpLoad %int %i_0 None + %85 = OpExtInst %uint %68 UMin %84 %uint_3 + %86 = OpAccessChain %_ptr_Function_int %v4i %85 + OpStore %86 %int_1 None + %87 = OpLoad %int %i None + %88 = OpBitcast %uint %87 + %89 = OpExtInst %uint %68 UMin %88 %uint_2 + %90 = OpAccessChain %_ptr_Function_uint %v3u %89 + OpStore %90 %uint_1 None + %93 = OpLoad %int %i None + %94 = OpBitcast %uint %93 + %95 = OpExtInst %uint %68 UMin %94 %uint_3 + %96 = OpAccessChain %_ptr_Function_uint %v4u %95 + OpStore %96 %uint_1 None + %97 = OpLoad %int %i None %98 = OpBitcast %uint %97 - %99 = OpExtInst %uint %73 UMin %98 %uint_2 - %101 = OpAccessChain %_ptr_Function_float %v3f %99 - OpStore %101 %float_1 None - %102 = OpLoad %int %i_0 None - %103 = OpBitcast %uint %102 - %104 = OpExtInst %uint %73 UMin %103 %uint_3 - %106 = OpAccessChain %_ptr_Function_float %v4f %104 - OpStore %106 %float_1 None - %107 = OpLoad %int %i_0 None - %108 = OpBitcast %uint %107 - %109 = OpExtInst %uint %73 UMin %108 %uint_2 - %110 = OpAccessChain %_ptr_Function_int %v3i %109 - OpStore %110 %int_1 None - %111 = OpLoad %int %i_0 None - %112 = OpBitcast %uint %111 - %113 = OpExtInst %uint %73 UMin %112 %uint_3 - %114 = OpAccessChain %_ptr_Function_int %v4i %113 - OpStore %114 %int_1 None - %115 = OpLoad %int %i_0 None - %116 = OpBitcast %uint %115 - %117 = OpExtInst %uint %73 UMin %116 %uint_2 - %118 = OpAccessChain %_ptr_Function_uint %v3u %117 - OpStore %118 %uint_1 None - %119 = OpLoad %int %i_0 None - %120 = OpBitcast %uint %119 - %121 = OpExtInst %uint %73 UMin %120 %uint_3 - %122 = OpAccessChain %_ptr_Function_uint %v4u %121 - OpStore %122 %uint_1 None - %123 = OpLoad %int %i_0 None - %124 = OpBitcast %uint %123 - %125 = OpExtInst %uint %73 UMin %124 %uint_2 - %126 = OpAccessChain %_ptr_Function_bool %v3b %125 - OpStore %126 %true None - %127 = OpLoad %int %i_0 None - %128 = OpBitcast %uint %127 - %129 = OpExtInst %uint %73 UMin %128 %uint_3 - %130 = OpAccessChain %_ptr_Function_bool %v4b %129 - OpStore %130 %true None + %99 = OpExtInst %uint %68 UMin %98 %uint_2 + %100 = OpAccessChain %_ptr_Function_bool %v3b %99 + OpStore %100 %true None + %103 = OpLoad %int %i None + %104 = OpBitcast %uint %103 + %105 = OpExtInst %uint %68 UMin %104 %uint_3 + %106 = OpAccessChain %_ptr_Function_bool %v4b %105 + OpStore %106 %true None OpReturn OpFunctionEnd
diff --git a/test/tint/bug/tint/1081.wgsl.expected.spvasm b/test/tint/bug/tint/1081.wgsl.expected.spvasm index 2ba58bc..12e82bb 100644 --- a/test/tint/bug/tint/1081.wgsl.expected.spvasm +++ b/test/tint/bug/tint/1081.wgsl.expected.spvasm
@@ -42,8 +42,8 @@ %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %36 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %40 = OpConstantNull %v2uint + %41 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %45 = OpConstantNull %v2uint %v2bool = OpTypeVector %bool 2 %int_0 = OpConstant %int 0 %_ptr_Function_uint = OpTypePointer Function %uint @@ -72,53 +72,53 @@ OpStore %y %24 OpBranch %27 %27 = OpLabel - OpStore %tint_loop_idx %36 + OpStore %tint_loop_idx %41 OpBranch %30 %30 = OpLabel OpLoopMerge %31 %29 None OpBranch %28 %28 = OpLabel - %38 = OpLoad %v2uint %tint_loop_idx None - %39 = OpIEqual %v2bool %38 %40 - %42 = OpAll %bool %39 - OpSelectionMerge %43 None - OpBranchConditional %42 %44 %43 - %44 = OpLabel - OpBranch %31 - %43 = OpLabel - %45 = OpLoad %int %y None - %r = OpFunctionCall %int %f %45 - %47 = OpIEqual %bool %r %int_0 - OpSelectionMerge %49 None - OpBranchConditional %47 %50 %49 - %50 = OpLabel - OpBranch %31 + %43 = OpLoad %v2uint %tint_loop_idx None + %44 = OpIEqual %v2bool %43 %45 + %47 = OpAll %bool %44 + OpSelectionMerge %48 None + OpBranchConditional %47 %49 %48 %49 = OpLabel + OpBranch %31 + %48 = OpLabel + %50 = OpLoad %int %y None + %r = OpFunctionCall %int %f %50 + %52 = OpIEqual %bool %r %int_0 + OpSelectionMerge %54 None + OpBranchConditional %52 %55 %54 + %55 = OpLabel + OpBranch %31 + %54 = OpLabel OpBranch %29 %29 = OpLabel - %51 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %54 = OpLoad %uint %51 None -%tint_low_inc = OpISub %uint %54 %uint_1 - %57 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %57 %tint_low_inc None - %58 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %58 %uint_1 %uint_0 - %60 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %61 = OpLoad %uint %60 None - %62 = OpISub %uint %61 %tint_carry - %63 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %63 %62 None + %56 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %59 = OpLoad %uint %56 None +%tint_low_inc = OpISub %uint %59 %uint_1 + %62 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %62 %tint_low_inc None + %63 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %63 %uint_1 %uint_0 + %65 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %66 = OpLoad %uint %65 None + %67 = OpISub %uint %66 %tint_carry + %68 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %68 %67 None OpBranch %30 %31 = OpLabel - %64 = OpLoad %int %y None - %65 = OpLoad %bool %continue_execution None - %66 = OpLogicalNot %bool %65 - OpSelectionMerge %67 None - OpBranchConditional %66 %68 %67 - %68 = OpLabel + %32 = OpLoad %int %y None + %33 = OpLoad %bool %continue_execution None + %34 = OpLogicalNot %bool %33 + OpSelectionMerge %35 None + OpBranchConditional %34 %36 %35 + %36 = OpLabel OpKill - %67 = OpLabel - OpReturnValue %64 + %35 = OpLabel + OpReturnValue %32 OpFunctionEnd %main = OpFunction %void None %71 %72 = OpLabel
diff --git a/test/tint/bug/tint/1113.wgsl.expected.spvasm b/test/tint/bug/tint/1113.wgsl.expected.spvasm index 64169b0..c7977c4 100644 --- a/test/tint/bug/tint/1113.wgsl.expected.spvasm +++ b/test/tint/bug/tint/1113.wgsl.expected.spvasm
@@ -789,21 +789,21 @@ OpSelectionMerge %125 None OpBranchConditional %124 %126 %125 %126 = OpLabel - %127 = OpAccessChain %_ptr_StorageBuffer_uint_0 %25 %uint_0 %uint_0 - %128 = OpLoad %uint %numTriangles None - %129 = OpAtomicIAdd %uint %127 %uint_1 %uint_0 %128 - %130 = OpBitcast %int %129 - OpStore %offset %130 None + %135 = OpAccessChain %_ptr_StorageBuffer_uint_0 %25 %uint_0 %uint_0 + %136 = OpLoad %uint %numTriangles None + %137 = OpAtomicIAdd %uint %135 %uint_1 %uint_0 %136 + %138 = OpBitcast %int %137 + OpStore %offset %138 None OpBranch %125 %125 = OpLabel - %131 = OpLoad %uint %voxelIndex None - %132 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %LUT %uint_0 - %133 = OpArrayLength %uint %LUT 0 - %134 = OpISub %uint %133 %uint_1 - %135 = OpExtInst %uint %55 UMin %131 %134 - %136 = OpAccessChain %_ptr_StorageBuffer_int %LUT %uint_0 %135 - %137 = OpLoad %int %offset None - OpAtomicStore %136 %uint_1 %uint_0 %137 + %127 = OpLoad %uint %voxelIndex None + %128 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %LUT %uint_0 + %129 = OpArrayLength %uint %LUT 0 + %130 = OpISub %uint %129 %uint_1 + %131 = OpExtInst %uint %55 UMin %127 %130 + %132 = OpAccessChain %_ptr_StorageBuffer_int %LUT %uint_0 %131 + %133 = OpLoad %int %offset None + OpAtomicStore %132 %uint_1 %uint_0 %133 OpReturn OpFunctionEnd %main_create_lut = OpFunction %void None %34
diff --git a/test/tint/bug/tint/1118.wgsl.expected.spvasm b/test/tint/bug/tint/1118.wgsl.expected.spvasm index 50b78ee..800714f 100644 --- a/test/tint/bug/tint/1118.wgsl.expected.spvasm +++ b/test/tint/bug/tint/1118.wgsl.expected.spvasm
@@ -4,7 +4,7 @@ ; Bound: 191 ; Schema: 0 OpCapability Shader - %80 = OpExtInstImport "GLSL.std.450" + %79 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %main_loc2_Input %main_loc3_Input %main_loc0_Output OpExecutionMode %main OriginUpperLeft @@ -151,18 +151,18 @@ %_ptr_Function_v2float = OpTypePointer Function %v2float %48 = OpConstantNull %v2float %float_0 = OpConstant %float 0 - %false = OpConstantFalse %bool %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %uint = OpTypeInt 32 0 %uint_0 = OpConstant %uint 0 %float_1 = OpConstant %float 1 - %81 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 + %80 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 %_ptr_Uniform_float = OpTypePointer Uniform %float %uint_3 = OpConstant %uint 3 - %110 = OpConstantComposite %v3float %float_1 %float_1 %float_1 - %111 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 + %109 = OpConstantComposite %v3float %float_1 %float_1 %float_1 + %110 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float %uint_1 = OpConstant %uint 1 + %false = OpConstantFalse %bool %main_out = OpTypeStruct %v4float %176 = OpTypeFunction %main_out %float %float %main_1 = OpFunction %void None %34 @@ -192,121 +192,121 @@ OpBranch %62 %62 = OpLabel %x_17 = OpLoad %float %fClipDistance4 None - %66 = OpFOrdGreaterThan %bool %x_17 %float_0 - OpSelectionMerge %67 None - OpBranchConditional %66 %68 %67 - %68 = OpLabel - OpStore %continue_execution %false None - OpBranch %67 + %65 = OpFOrdGreaterThan %bool %x_17 %float_0 + OpSelectionMerge %66 None + OpBranchConditional %65 %67 %66 %67 = OpLabel - %69 = OpAccessChain %_ptr_Uniform_v4float %6 %uint_0 %uint_0 - %x_34 = OpLoad %v4float %69 None - %74 = OpCompositeExtract %float %x_34 0 - %75 = OpCompositeExtract %float %x_34 1 - %76 = OpCompositeExtract %float %x_34 2 - %77 = OpCompositeConstruct %v3float %74 %75 %76 - %78 = OpFSub %v3float %77 %x_38 - %79 = OpExtInst %v3float %80 Normalize %78 - OpStore %viewDirectionW %79 None - OpStore %baseColor %81 None - %83 = OpAccessChain %_ptr_Uniform_v4float %11 %uint_0 %uint_0 - %x_52 = OpLoad %v4float %83 None - %85 = OpCompositeExtract %float %x_52 0 - %86 = OpCompositeExtract %float %x_52 1 - %87 = OpCompositeExtract %float %x_52 2 - %88 = OpCompositeConstruct %v3float %85 %86 %87 - OpStore %diffuseColor %88 None - %89 = OpAccessChain %_ptr_Uniform_v4float %11 %uint_0 %uint_0 - %90 = OpAccessChain %_ptr_Uniform_float %89 %uint_3 - %x_60 = OpLoad %float %90 None + OpStore %continue_execution %false None + OpBranch %66 + %66 = OpLabel + %68 = OpAccessChain %_ptr_Uniform_v4float %6 %uint_0 %uint_0 + %x_34 = OpLoad %v4float %68 None + %73 = OpCompositeExtract %float %x_34 0 + %74 = OpCompositeExtract %float %x_34 1 + %75 = OpCompositeExtract %float %x_34 2 + %76 = OpCompositeConstruct %v3float %73 %74 %75 + %77 = OpFSub %v3float %76 %x_38 + %78 = OpExtInst %v3float %79 Normalize %77 + OpStore %viewDirectionW %78 None + OpStore %baseColor %80 None + %82 = OpAccessChain %_ptr_Uniform_v4float %11 %uint_0 %uint_0 + %x_52 = OpLoad %v4float %82 None + %84 = OpCompositeExtract %float %x_52 0 + %85 = OpCompositeExtract %float %x_52 1 + %86 = OpCompositeExtract %float %x_52 2 + %87 = OpCompositeConstruct %v3float %84 %85 %86 + OpStore %diffuseColor %87 None + %88 = OpAccessChain %_ptr_Uniform_v4float %11 %uint_0 %uint_0 + %89 = OpAccessChain %_ptr_Uniform_float %88 %uint_3 + %x_60 = OpLoad %float %89 None OpStore %alpha %x_60 None OpStore %uvOffset %48 None %x_76 = OpLoad %v4float %baseColor None - %95 = OpCompositeExtract %float %x_76 0 - %96 = OpCompositeExtract %float %x_76 1 - %97 = OpCompositeExtract %float %x_76 2 - %98 = OpCompositeConstruct %v3float %95 %96 %97 - %99 = OpCompositeExtract %float %x_74 0 - %100 = OpCompositeExtract %float %x_74 1 - %101 = OpCompositeExtract %float %x_74 2 - %102 = OpCompositeConstruct %v3float %99 %100 %101 - %x_78 = OpFMul %v3float %98 %102 + %94 = OpCompositeExtract %float %x_76 0 + %95 = OpCompositeExtract %float %x_76 1 + %96 = OpCompositeExtract %float %x_76 2 + %97 = OpCompositeConstruct %v3float %94 %95 %96 + %98 = OpCompositeExtract %float %x_74 0 + %99 = OpCompositeExtract %float %x_74 1 + %100 = OpCompositeExtract %float %x_74 2 + %101 = OpCompositeConstruct %v3float %98 %99 %100 + %x_78 = OpFMul %v3float %97 %101 %x_79 = OpLoad %v4float %baseColor None - %105 = OpCompositeExtract %float %x_78 0 - %106 = OpCompositeExtract %float %x_78 1 - %107 = OpCompositeExtract %float %x_78 2 - %108 = OpCompositeExtract %float %x_79 3 - %109 = OpCompositeConstruct %v4float %105 %106 %107 %108 - OpStore %baseColor %109 None - OpStore %baseAmbientColor %110 None + %104 = OpCompositeExtract %float %x_78 0 + %105 = OpCompositeExtract %float %x_78 1 + %106 = OpCompositeExtract %float %x_78 2 + %107 = OpCompositeExtract %float %x_79 3 + %108 = OpCompositeConstruct %v4float %104 %105 %106 %107 + OpStore %baseColor %108 None + OpStore %baseAmbientColor %109 None OpStore %glossiness %float_0 None OpStore %diffuseBase %x_38 None OpStore %shadow %float_1 None - OpStore %refractionColor %111 None - OpStore %reflectionColor %111 None - %112 = OpAccessChain %_ptr_Uniform_v3float %11 %uint_0 %uint_3 - %x_94 = OpLoad %v3float %112 None + OpStore %refractionColor %110 None + OpStore %reflectionColor %110 None + %111 = OpAccessChain %_ptr_Uniform_v3float %11 %uint_0 %uint_3 + %x_94 = OpLoad %v3float %111 None OpStore %emissiveColor %x_94 None %x_96 = OpLoad %v3float %diffuseBase None %x_97 = OpLoad %v3float %diffuseColor None %x_99 = OpLoad %v3float %emissiveColor None - %118 = OpAccessChain %_ptr_Uniform_v3float %11 %uint_0 %uint_1 - %x_103 = OpLoad %v3float %118 None + %117 = OpAccessChain %_ptr_Uniform_v3float %11 %uint_0 %uint_1 + %x_103 = OpLoad %v3float %117 None %x_108 = OpLoad %v4float %baseColor None - %122 = OpFMul %v3float %x_96 %x_97 - %123 = OpFAdd %v3float %122 %x_99 - %124 = OpFAdd %v3float %123 %x_103 - %125 = OpExtInst %v3float %80 NClamp %124 %x_38 %110 - %126 = OpCompositeExtract %float %x_108 0 - %127 = OpCompositeExtract %float %x_108 1 - %128 = OpCompositeExtract %float %x_108 2 - %129 = OpCompositeConstruct %v3float %126 %127 %128 - %130 = OpFMul %v3float %125 %129 - OpStore %finalDiffuse %130 None + %121 = OpFMul %v3float %x_96 %x_97 + %122 = OpFAdd %v3float %121 %x_99 + %123 = OpFAdd %v3float %122 %x_103 + %124 = OpExtInst %v3float %79 NClamp %123 %x_38 %109 + %125 = OpCompositeExtract %float %x_108 0 + %126 = OpCompositeExtract %float %x_108 1 + %127 = OpCompositeExtract %float %x_108 2 + %128 = OpCompositeConstruct %v3float %125 %126 %127 + %129 = OpFMul %v3float %124 %128 + OpStore %finalDiffuse %129 None OpStore %finalSpecular %x_38 None %x_113 = OpLoad %v3float %finalDiffuse None %x_114 = OpLoad %v3float %baseAmbientColor None %x_116 = OpLoad %v3float %finalSpecular None %x_118 = OpLoad %v4float %reflectionColor None %x_121 = OpLoad %v4float %refractionColor None - %136 = OpFMul %v3float %x_113 %x_114 - %137 = OpFAdd %v3float %136 %x_116 - %138 = OpCompositeExtract %float %x_118 0 - %139 = OpCompositeExtract %float %x_118 1 - %140 = OpCompositeExtract %float %x_118 2 - %141 = OpCompositeConstruct %v3float %138 %139 %140 - %142 = OpFAdd %v3float %137 %141 - %143 = OpCompositeExtract %float %x_121 0 - %144 = OpCompositeExtract %float %x_121 1 - %145 = OpCompositeExtract %float %x_121 2 - %146 = OpCompositeConstruct %v3float %143 %144 %145 - %x_123 = OpFAdd %v3float %142 %146 + %135 = OpFMul %v3float %x_113 %x_114 + %136 = OpFAdd %v3float %135 %x_116 + %137 = OpCompositeExtract %float %x_118 0 + %138 = OpCompositeExtract %float %x_118 1 + %139 = OpCompositeExtract %float %x_118 2 + %140 = OpCompositeConstruct %v3float %137 %138 %139 + %141 = OpFAdd %v3float %136 %140 + %142 = OpCompositeExtract %float %x_121 0 + %143 = OpCompositeExtract %float %x_121 1 + %144 = OpCompositeExtract %float %x_121 2 + %145 = OpCompositeConstruct %v3float %142 %143 %144 + %x_123 = OpFAdd %v3float %141 %145 %x_124 = OpLoad %float %alpha None - %149 = OpCompositeExtract %float %x_123 0 - %150 = OpCompositeExtract %float %x_123 1 - %151 = OpCompositeExtract %float %x_123 2 - %152 = OpCompositeConstruct %v4float %149 %150 %151 %x_124 - OpStore %color %152 None + %148 = OpCompositeExtract %float %x_123 0 + %149 = OpCompositeExtract %float %x_123 1 + %150 = OpCompositeExtract %float %x_123 2 + %151 = OpCompositeConstruct %v4float %148 %149 %150 %x_124 + OpStore %color %151 None %x_129 = OpLoad %v4float %color None - %154 = OpCompositeExtract %float %x_129 0 - %155 = OpCompositeExtract %float %x_129 1 - %156 = OpCompositeExtract %float %x_129 2 - %157 = OpCompositeConstruct %v3float %154 %155 %156 - %x_132 = OpExtInst %v3float %80 FMax %157 %x_38 + %153 = OpCompositeExtract %float %x_129 0 + %154 = OpCompositeExtract %float %x_129 1 + %155 = OpCompositeExtract %float %x_129 2 + %156 = OpCompositeConstruct %v3float %153 %154 %155 + %x_132 = OpExtInst %v3float %79 FMax %156 %x_38 %x_133 = OpLoad %v4float %color None - %160 = OpCompositeExtract %float %x_132 0 - %161 = OpCompositeExtract %float %x_132 1 - %162 = OpCompositeExtract %float %x_132 2 - %163 = OpCompositeExtract %float %x_133 3 - %164 = OpCompositeConstruct %v4float %160 %161 %162 %163 - OpStore %color %164 None - %165 = OpAccessChain %_ptr_Uniform_float %16 %uint_0 %uint_0 - %x_140 = OpLoad %float %165 None - %167 = OpAccessChain %_ptr_Function_float %color %uint_3 - %x_142 = OpLoad %float %167 None - %169 = OpFMul %float %x_142 %x_140 - %170 = OpAccessChain %_ptr_Function_float %color %uint_3 - OpStore %170 %169 None + %159 = OpCompositeExtract %float %x_132 0 + %160 = OpCompositeExtract %float %x_132 1 + %161 = OpCompositeExtract %float %x_132 2 + %162 = OpCompositeExtract %float %x_133 3 + %163 = OpCompositeConstruct %v4float %159 %160 %161 %162 + OpStore %color %163 None + %164 = OpAccessChain %_ptr_Uniform_float %16 %uint_0 %uint_0 + %x_140 = OpLoad %float %164 None + %166 = OpAccessChain %_ptr_Function_float %color %uint_3 + %x_142 = OpLoad %float %166 None + %168 = OpFMul %float %x_142 %x_140 + %169 = OpAccessChain %_ptr_Function_float %color %uint_3 + OpStore %169 %168 None %x_147 = OpLoad %v4float %color None OpStore %glFragColor %x_147 None OpReturn
diff --git a/test/tint/bug/tint/1121.wgsl.expected.spvasm b/test/tint/bug/tint/1121.wgsl.expected.spvasm index ea52607..08b7211 100644 --- a/test/tint/bug/tint/1121.wgsl.expected.spvasm +++ b/test/tint/bug/tint/1121.wgsl.expected.spvasm
@@ -169,25 +169,25 @@ %uint_6 = OpConstant %uint 6 %_arr_v4float_uint_6 = OpTypeArray %v4float %uint_6 %_ptr_Function__arr_v4float_uint_6 = OpTypePointer Function %_arr_v4float_uint_6 - %181 = OpConstantNull %_arr_v4float_uint_6 + %171 = OpConstantNull %_arr_v4float_uint_6 %uint_5 = OpConstant %uint 5 %int = OpTypeInt 32 1 %TILE_SIZE = OpConstant %int 16 %TILE_COUNT_X = OpConstant %int 2 %_ptr_Function_int = OpTypePointer Function %int %int_0 = OpConstant %int 0 + %int_1 = OpConstant %int 1 %v2int = OpTypeVector %int 2 %_ptr_Function_v2int = OpTypePointer Function %v2int %v2float = OpTypeVector %float 2 %float_2 = OpConstant %float 2 - %233 = OpConstantComposite %v2float %float_1 %float_1 + %236 = OpConstantComposite %v2float %float_1 %float_1 %_ptr_Function_v2float = OpTypePointer Function %v2float - %349 = OpConstantNull %v4float + %358 = OpConstantNull %v4float %true = OpConstantTrue %bool %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint %uint_63 = OpConstant %uint 63 %_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint - %int_1 = OpConstant %int 1 %456 = OpTypeFunction %void %main_inner = OpFunction %void None %34 %GlobalInvocationID = OpFunctionParameter %v3uint @@ -200,7 +200,7 @@ %lightRadius = OpVariable %_ptr_Function_float Function %boxMin = OpVariable %_ptr_Function_v4float Function %boxMax = OpVariable %_ptr_Function_v4float Function -%frustumPlanes = OpVariable %_ptr_Function__arr_v4float_uint_6 Function %181 +%frustumPlanes = OpVariable %_ptr_Function__arr_v4float_uint_6 Function %171 %y = OpVariable %_ptr_Function_int Function %x = OpVariable %_ptr_Function_int Function %tilePixel0Idx = OpVariable %_ptr_Function_v2int Function @@ -210,7 +210,7 @@ %viewCeilCoord = OpVariable %_ptr_Function_v2float Function %dp = OpVariable %_ptr_Function_float Function %i = OpVariable %_ptr_Function_uint Function - %p = OpVariable %_ptr_Function_v4float Function %349 + %p = OpVariable %_ptr_Function_v4float Function %358 %tileId = OpVariable %_ptr_Function_uint Function %offset = OpVariable %_ptr_Function_uint Function %36 = OpCompositeExtract %uint %GlobalInvocationID 0 @@ -266,104 +266,104 @@ OpSelectionMerge %96 None OpBranchConditional %95 %97 %96 %97 = OpLabel - %98 = OpLoad %uint %index None - %99 = OpAccessChain %_ptr_StorageBuffer__runtimearr_LightData %lightsBuffer %uint_0 - %100 = OpArrayLength %uint %lightsBuffer 0 - %101 = OpISub %uint %100 %uint_1 - %102 = OpExtInst %uint %55 UMin %98 %101 - %103 = OpAccessChain %_ptr_StorageBuffer_v4float %lightsBuffer %uint_0 %102 %uint_0 - %104 = OpAccessChain %_ptr_Uniform_v4float %23 %uint_0 %uint_1 - %105 = OpAccessChain %_ptr_Uniform_float %104 %uint_1 - %106 = OpLoad %float %105 None - %107 = OpAccessChain %_ptr_StorageBuffer_float %103 %uint_1 - OpStore %107 %106 None + %188 = OpLoad %uint %index None + %189 = OpAccessChain %_ptr_StorageBuffer__runtimearr_LightData %lightsBuffer %uint_0 + %190 = OpArrayLength %uint %lightsBuffer 0 + %191 = OpISub %uint %190 %uint_1 + %192 = OpExtInst %uint %55 UMin %188 %191 + %193 = OpAccessChain %_ptr_StorageBuffer_v4float %lightsBuffer %uint_0 %192 %uint_0 + %194 = OpAccessChain %_ptr_Uniform_v4float %23 %uint_0 %uint_1 + %195 = OpAccessChain %_ptr_Uniform_float %194 %uint_1 + %196 = OpLoad %float %195 None + %197 = OpAccessChain %_ptr_StorageBuffer_float %193 %uint_1 + OpStore %197 %196 None OpBranch %96 %96 = OpLabel - %108 = OpAccessChain %_ptr_Uniform_mat4v4float %23 %uint_0 %uint_3 - %111 = OpLoad %mat4v4float %108 None - OpStore %M %111 - %114 = OpAccessChain %_ptr_Function_v4float %M %uint_3 - %116 = OpAccessChain %_ptr_Function_float %114 %uint_2 - %119 = OpLoad %float %116 None - %120 = OpFNegate %float %119 - %121 = OpAccessChain %_ptr_Function_v4float %M %uint_2 - %122 = OpAccessChain %_ptr_Function_float %121 %uint_2 - %123 = OpLoad %float %122 None - %124 = OpFAdd %float %float_n1 %123 - %126 = OpFDiv %float %120 %124 - OpStore %viewNear %126 - %128 = OpAccessChain %_ptr_Function_v4float %M %uint_3 - %129 = OpAccessChain %_ptr_Function_float %128 %uint_2 - %130 = OpLoad %float %129 None - %131 = OpFNegate %float %130 - %132 = OpAccessChain %_ptr_Function_v4float %M %uint_2 - %133 = OpAccessChain %_ptr_Function_float %132 %uint_2 - %134 = OpLoad %float %133 None - %135 = OpFAdd %float %float_1 %134 - %137 = OpFDiv %float %131 %135 - OpStore %viewFar %137 - %139 = OpLoad %uint %index None - %140 = OpAccessChain %_ptr_StorageBuffer__runtimearr_LightData %lightsBuffer %uint_0 - %141 = OpArrayLength %uint %lightsBuffer 0 - %142 = OpISub %uint %141 %uint_1 - %143 = OpExtInst %uint %55 UMin %139 %142 - %144 = OpAccessChain %_ptr_StorageBuffer_v4float %lightsBuffer %uint_0 %143 %uint_0 - %145 = OpLoad %v4float %144 None - OpStore %lightPos %145 - %147 = OpAccessChain %_ptr_Uniform_mat4v4float %23 %uint_0 %uint_2 - %148 = OpLoad %mat4v4float %147 None - %149 = OpLoad %v4float %lightPos None - %150 = OpMatrixTimesVector %v4float %148 %149 - OpStore %lightPos %150 None - %151 = OpLoad %v4float %lightPos None - %152 = OpAccessChain %_ptr_Function_float %lightPos %uint_3 - %153 = OpLoad %float %152 None - %154 = OpCompositeConstruct %v4float %153 %153 %153 %153 - %155 = OpFDiv %v4float %151 %154 - OpStore %lightPos %155 None - %156 = OpLoad %uint %index None - %157 = OpAccessChain %_ptr_StorageBuffer__runtimearr_LightData %lightsBuffer %uint_0 - %158 = OpArrayLength %uint %lightsBuffer 0 - %159 = OpISub %uint %158 %uint_1 - %160 = OpExtInst %uint %55 UMin %156 %159 - %161 = OpAccessChain %_ptr_StorageBuffer_float %lightsBuffer %uint_0 %160 %uint_2 - %162 = OpLoad %float %161 None - OpStore %lightRadius %162 - %164 = OpLoad %v4float %lightPos None - %165 = OpLoad %float %lightRadius None - %166 = OpCompositeConstruct %v3float %165 %165 %165 - %167 = OpCompositeConstruct %v4float %166 %float_0 - %169 = OpFSub %v4float %164 %167 - OpStore %boxMin %169 - %171 = OpLoad %v4float %lightPos None - %172 = OpLoad %float %lightRadius None - %173 = OpCompositeConstruct %v3float %172 %172 %172 - %174 = OpCompositeConstruct %v4float %173 %float_0 - %175 = OpFAdd %v4float %171 %174 - OpStore %boxMax %175 - %182 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %uint_4 - %183 = OpLoad %float %viewNear None - %184 = OpCompositeConstruct %v4float %float_0 %float_0 %float_n1 %183 - OpStore %182 %184 None - %185 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %uint_5 - %187 = OpLoad %float %viewFar None - %188 = OpFNegate %float %187 - %189 = OpCompositeConstruct %v4float %float_0 %float_0 %float_1 %188 - OpStore %185 %189 None - OpBranch %193 - %193 = OpLabel + %98 = OpAccessChain %_ptr_Uniform_mat4v4float %23 %uint_0 %uint_3 + %101 = OpLoad %mat4v4float %98 None + OpStore %M %101 + %104 = OpAccessChain %_ptr_Function_v4float %M %uint_3 + %106 = OpAccessChain %_ptr_Function_float %104 %uint_2 + %109 = OpLoad %float %106 None + %110 = OpFNegate %float %109 + %111 = OpAccessChain %_ptr_Function_v4float %M %uint_2 + %112 = OpAccessChain %_ptr_Function_float %111 %uint_2 + %113 = OpLoad %float %112 None + %114 = OpFAdd %float %float_n1 %113 + %116 = OpFDiv %float %110 %114 + OpStore %viewNear %116 + %118 = OpAccessChain %_ptr_Function_v4float %M %uint_3 + %119 = OpAccessChain %_ptr_Function_float %118 %uint_2 + %120 = OpLoad %float %119 None + %121 = OpFNegate %float %120 + %122 = OpAccessChain %_ptr_Function_v4float %M %uint_2 + %123 = OpAccessChain %_ptr_Function_float %122 %uint_2 + %124 = OpLoad %float %123 None + %125 = OpFAdd %float %float_1 %124 + %127 = OpFDiv %float %121 %125 + OpStore %viewFar %127 + %129 = OpLoad %uint %index None + %130 = OpAccessChain %_ptr_StorageBuffer__runtimearr_LightData %lightsBuffer %uint_0 + %131 = OpArrayLength %uint %lightsBuffer 0 + %132 = OpISub %uint %131 %uint_1 + %133 = OpExtInst %uint %55 UMin %129 %132 + %134 = OpAccessChain %_ptr_StorageBuffer_v4float %lightsBuffer %uint_0 %133 %uint_0 + %135 = OpLoad %v4float %134 None + OpStore %lightPos %135 + %137 = OpAccessChain %_ptr_Uniform_mat4v4float %23 %uint_0 %uint_2 + %138 = OpLoad %mat4v4float %137 None + %139 = OpLoad %v4float %lightPos None + %140 = OpMatrixTimesVector %v4float %138 %139 + OpStore %lightPos %140 None + %141 = OpLoad %v4float %lightPos None + %142 = OpAccessChain %_ptr_Function_float %lightPos %uint_3 + %143 = OpLoad %float %142 None + %144 = OpCompositeConstruct %v4float %143 %143 %143 %143 + %145 = OpFDiv %v4float %141 %144 + OpStore %lightPos %145 None + %146 = OpLoad %uint %index None + %147 = OpAccessChain %_ptr_StorageBuffer__runtimearr_LightData %lightsBuffer %uint_0 + %148 = OpArrayLength %uint %lightsBuffer 0 + %149 = OpISub %uint %148 %uint_1 + %150 = OpExtInst %uint %55 UMin %146 %149 + %151 = OpAccessChain %_ptr_StorageBuffer_float %lightsBuffer %uint_0 %150 %uint_2 + %152 = OpLoad %float %151 None + OpStore %lightRadius %152 + %154 = OpLoad %v4float %lightPos None + %155 = OpLoad %float %lightRadius None + %156 = OpCompositeConstruct %v3float %155 %155 %155 + %157 = OpCompositeConstruct %v4float %156 %float_0 + %159 = OpFSub %v4float %154 %157 + OpStore %boxMin %159 + %161 = OpLoad %v4float %lightPos None + %162 = OpLoad %float %lightRadius None + %163 = OpCompositeConstruct %v3float %162 %162 %162 + %164 = OpCompositeConstruct %v4float %163 %float_0 + %165 = OpFAdd %v4float %161 %164 + OpStore %boxMax %165 + %172 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %uint_4 + %173 = OpLoad %float %viewNear None + %174 = OpCompositeConstruct %v4float %float_0 %float_0 %float_n1 %173 + OpStore %172 %174 None + %175 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %uint_5 + %177 = OpLoad %float %viewFar None + %178 = OpFNegate %float %177 + %179 = OpCompositeConstruct %v4float %float_0 %float_0 %float_1 %178 + OpStore %175 %179 None + OpBranch %183 + %183 = OpLabel OpStore %y %int_0 - OpBranch %196 - %196 = OpLabel - OpLoopMerge %197 %195 None - OpBranch %194 - %194 = OpLabel + OpBranch %186 + %186 = OpLabel + OpLoopMerge %187 %185 None + OpBranch %184 + %184 = OpLabel %201 = OpLoad %int %y None %202 = OpSLessThan %bool %201 %TILE_COUNT_X OpSelectionMerge %203 None OpBranchConditional %202 %203 %204 %204 = OpLabel - OpBranch %197 + OpBranch %187 %203 = OpLabel OpBranch %205 %205 = OpLabel @@ -373,298 +373,298 @@ OpLoopMerge %209 %207 None OpBranch %206 %206 = OpLabel - %211 = OpLoad %int %x None - %212 = OpSLessThan %bool %211 %TILE_COUNT_X - OpSelectionMerge %213 None - OpBranchConditional %212 %213 %214 - %214 = OpLabel + %214 = OpLoad %int %x None + %215 = OpSLessThan %bool %214 %TILE_COUNT_X + OpSelectionMerge %216 None + OpBranchConditional %215 %216 %217 + %217 = OpLabel OpBranch %209 - %213 = OpLabel - %215 = OpLoad %int %x None - %216 = OpIMul %int %215 %TILE_SIZE - %217 = OpLoad %int %y None - %218 = OpIMul %int %217 %TILE_SIZE - %220 = OpCompositeConstruct %v2int %216 %218 - OpStore %tilePixel0Idx %220 - %223 = OpLoad %v2int %tilePixel0Idx None - %225 = OpConvertSToF %v2float %223 - %226 = OpVectorTimesScalar %v2float %225 %float_2 - %228 = OpAccessChain %_ptr_Uniform_v4float %23 %uint_0 %uint_4 - %229 = OpLoad %v4float %228 None - %230 = OpVectorShuffle %v2float %229 %229 0 1 - %231 = OpFDiv %v2float %226 %230 - %232 = OpFSub %v2float %231 %233 - OpStore %floorCoord %232 - %236 = OpLoad %v2int %tilePixel0Idx None - %237 = OpCompositeConstruct %v2int %TILE_SIZE %TILE_SIZE - %238 = OpIAdd %v2int %236 %237 - %239 = OpConvertSToF %v2float %238 - %240 = OpVectorTimesScalar %v2float %239 %float_2 - %241 = OpAccessChain %_ptr_Uniform_v4float %23 %uint_0 %uint_4 - %242 = OpLoad %v4float %241 None - %243 = OpVectorShuffle %v2float %242 %242 0 1 - %244 = OpFDiv %v2float %240 %243 - %245 = OpFSub %v2float %244 %233 - OpStore %ceilCoord %245 - %247 = OpLoad %float %viewNear None - %248 = OpFNegate %float %247 - %249 = OpAccessChain %_ptr_Function_float %floorCoord %uint_0 - %250 = OpLoad %float %249 None - %251 = OpFMul %float %248 %250 - %252 = OpAccessChain %_ptr_Function_v4float %M %uint_2 - %253 = OpAccessChain %_ptr_Function_float %252 %uint_0 - %254 = OpLoad %float %253 None - %255 = OpLoad %float %viewNear None - %256 = OpFMul %float %254 %255 - %257 = OpFSub %float %251 %256 - %258 = OpAccessChain %_ptr_Function_v4float %M %uint_0 - %259 = OpAccessChain %_ptr_Function_float %258 %uint_0 - %260 = OpLoad %float %259 None - %261 = OpFDiv %float %257 %260 - %262 = OpLoad %float %viewNear None - %263 = OpFNegate %float %262 - %264 = OpAccessChain %_ptr_Function_float %floorCoord %uint_1 - %265 = OpLoad %float %264 None - %266 = OpFMul %float %263 %265 - %267 = OpAccessChain %_ptr_Function_v4float %M %uint_2 - %268 = OpAccessChain %_ptr_Function_float %267 %uint_1 - %269 = OpLoad %float %268 None - %270 = OpLoad %float %viewNear None - %271 = OpFMul %float %269 %270 - %272 = OpFSub %float %266 %271 - %273 = OpAccessChain %_ptr_Function_v4float %M %uint_1 - %274 = OpAccessChain %_ptr_Function_float %273 %uint_1 - %275 = OpLoad %float %274 None - %276 = OpFDiv %float %272 %275 - %277 = OpCompositeConstruct %v2float %261 %276 - OpStore %viewFloorCoord %277 - %279 = OpLoad %float %viewNear None - %280 = OpFNegate %float %279 - %281 = OpAccessChain %_ptr_Function_float %ceilCoord %uint_0 - %282 = OpLoad %float %281 None - %283 = OpFMul %float %280 %282 - %284 = OpAccessChain %_ptr_Function_v4float %M %uint_2 - %285 = OpAccessChain %_ptr_Function_float %284 %uint_0 - %286 = OpLoad %float %285 None - %287 = OpLoad %float %viewNear None - %288 = OpFMul %float %286 %287 - %289 = OpFSub %float %283 %288 - %290 = OpAccessChain %_ptr_Function_v4float %M %uint_0 - %291 = OpAccessChain %_ptr_Function_float %290 %uint_0 - %292 = OpLoad %float %291 None - %293 = OpFDiv %float %289 %292 - %294 = OpLoad %float %viewNear None - %295 = OpFNegate %float %294 - %296 = OpAccessChain %_ptr_Function_float %ceilCoord %uint_1 - %297 = OpLoad %float %296 None - %298 = OpFMul %float %295 %297 - %299 = OpAccessChain %_ptr_Function_v4float %M %uint_2 - %300 = OpAccessChain %_ptr_Function_float %299 %uint_1 - %301 = OpLoad %float %300 None - %302 = OpLoad %float %viewNear None - %303 = OpFMul %float %301 %302 - %304 = OpFSub %float %298 %303 - %305 = OpAccessChain %_ptr_Function_v4float %M %uint_1 - %306 = OpAccessChain %_ptr_Function_float %305 %uint_1 - %307 = OpLoad %float %306 None - %308 = OpFDiv %float %304 %307 - %309 = OpCompositeConstruct %v2float %293 %308 - OpStore %viewCeilCoord %309 - %311 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %uint_0 - %312 = OpAccessChain %_ptr_Function_float %viewFloorCoord %uint_0 - %313 = OpLoad %float %312 None - %314 = OpFNegate %float %313 - %315 = OpLoad %float %viewNear None - %316 = OpFDiv %float %314 %315 - %317 = OpCompositeConstruct %v4float %float_1 %float_0 %316 %float_0 - OpStore %311 %317 None - %318 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %uint_1 - %319 = OpAccessChain %_ptr_Function_float %viewCeilCoord %uint_0 - %320 = OpLoad %float %319 None - %321 = OpLoad %float %viewNear None - %322 = OpFDiv %float %320 %321 - %323 = OpCompositeConstruct %v4float %float_n1 %float_0 %322 %float_0 - OpStore %318 %323 None - %324 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %uint_2 - %325 = OpAccessChain %_ptr_Function_float %viewFloorCoord %uint_1 - %326 = OpLoad %float %325 None - %327 = OpFNegate %float %326 - %328 = OpLoad %float %viewNear None - %329 = OpFDiv %float %327 %328 - %330 = OpCompositeConstruct %v4float %float_0 %float_1 %329 %float_0 - OpStore %324 %330 None - %331 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %uint_3 - %332 = OpAccessChain %_ptr_Function_float %viewCeilCoord %uint_1 - %333 = OpLoad %float %332 None - %334 = OpLoad %float %viewNear None - %335 = OpFDiv %float %333 %334 - %336 = OpCompositeConstruct %v4float %float_0 %float_n1 %335 %float_0 - OpStore %331 %336 None + %216 = OpLabel + %218 = OpLoad %int %x None + %219 = OpIMul %int %218 %TILE_SIZE + %220 = OpLoad %int %y None + %221 = OpIMul %int %220 %TILE_SIZE + %223 = OpCompositeConstruct %v2int %219 %221 + OpStore %tilePixel0Idx %223 + %226 = OpLoad %v2int %tilePixel0Idx None + %228 = OpConvertSToF %v2float %226 + %229 = OpVectorTimesScalar %v2float %228 %float_2 + %231 = OpAccessChain %_ptr_Uniform_v4float %23 %uint_0 %uint_4 + %232 = OpLoad %v4float %231 None + %233 = OpVectorShuffle %v2float %232 %232 0 1 + %234 = OpFDiv %v2float %229 %233 + %235 = OpFSub %v2float %234 %236 + OpStore %floorCoord %235 + %239 = OpLoad %v2int %tilePixel0Idx None + %240 = OpCompositeConstruct %v2int %TILE_SIZE %TILE_SIZE + %241 = OpIAdd %v2int %239 %240 + %242 = OpConvertSToF %v2float %241 + %243 = OpVectorTimesScalar %v2float %242 %float_2 + %244 = OpAccessChain %_ptr_Uniform_v4float %23 %uint_0 %uint_4 + %245 = OpLoad %v4float %244 None + %246 = OpVectorShuffle %v2float %245 %245 0 1 + %247 = OpFDiv %v2float %243 %246 + %248 = OpFSub %v2float %247 %236 + OpStore %ceilCoord %248 + %250 = OpLoad %float %viewNear None + %251 = OpFNegate %float %250 + %252 = OpAccessChain %_ptr_Function_float %floorCoord %uint_0 + %253 = OpLoad %float %252 None + %254 = OpFMul %float %251 %253 + %255 = OpAccessChain %_ptr_Function_v4float %M %uint_2 + %256 = OpAccessChain %_ptr_Function_float %255 %uint_0 + %257 = OpLoad %float %256 None + %258 = OpLoad %float %viewNear None + %259 = OpFMul %float %257 %258 + %260 = OpFSub %float %254 %259 + %261 = OpAccessChain %_ptr_Function_v4float %M %uint_0 + %262 = OpAccessChain %_ptr_Function_float %261 %uint_0 + %263 = OpLoad %float %262 None + %264 = OpFDiv %float %260 %263 + %265 = OpLoad %float %viewNear None + %266 = OpFNegate %float %265 + %267 = OpAccessChain %_ptr_Function_float %floorCoord %uint_1 + %268 = OpLoad %float %267 None + %269 = OpFMul %float %266 %268 + %270 = OpAccessChain %_ptr_Function_v4float %M %uint_2 + %271 = OpAccessChain %_ptr_Function_float %270 %uint_1 + %272 = OpLoad %float %271 None + %273 = OpLoad %float %viewNear None + %274 = OpFMul %float %272 %273 + %275 = OpFSub %float %269 %274 + %276 = OpAccessChain %_ptr_Function_v4float %M %uint_1 + %277 = OpAccessChain %_ptr_Function_float %276 %uint_1 + %278 = OpLoad %float %277 None + %279 = OpFDiv %float %275 %278 + %280 = OpCompositeConstruct %v2float %264 %279 + OpStore %viewFloorCoord %280 + %282 = OpLoad %float %viewNear None + %283 = OpFNegate %float %282 + %284 = OpAccessChain %_ptr_Function_float %ceilCoord %uint_0 + %285 = OpLoad %float %284 None + %286 = OpFMul %float %283 %285 + %287 = OpAccessChain %_ptr_Function_v4float %M %uint_2 + %288 = OpAccessChain %_ptr_Function_float %287 %uint_0 + %289 = OpLoad %float %288 None + %290 = OpLoad %float %viewNear None + %291 = OpFMul %float %289 %290 + %292 = OpFSub %float %286 %291 + %293 = OpAccessChain %_ptr_Function_v4float %M %uint_0 + %294 = OpAccessChain %_ptr_Function_float %293 %uint_0 + %295 = OpLoad %float %294 None + %296 = OpFDiv %float %292 %295 + %297 = OpLoad %float %viewNear None + %298 = OpFNegate %float %297 + %299 = OpAccessChain %_ptr_Function_float %ceilCoord %uint_1 + %300 = OpLoad %float %299 None + %301 = OpFMul %float %298 %300 + %302 = OpAccessChain %_ptr_Function_v4float %M %uint_2 + %303 = OpAccessChain %_ptr_Function_float %302 %uint_1 + %304 = OpLoad %float %303 None + %305 = OpLoad %float %viewNear None + %306 = OpFMul %float %304 %305 + %307 = OpFSub %float %301 %306 + %308 = OpAccessChain %_ptr_Function_v4float %M %uint_1 + %309 = OpAccessChain %_ptr_Function_float %308 %uint_1 + %310 = OpLoad %float %309 None + %311 = OpFDiv %float %307 %310 + %312 = OpCompositeConstruct %v2float %296 %311 + OpStore %viewCeilCoord %312 + %314 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %uint_0 + %315 = OpAccessChain %_ptr_Function_float %viewFloorCoord %uint_0 + %316 = OpLoad %float %315 None + %317 = OpFNegate %float %316 + %318 = OpLoad %float %viewNear None + %319 = OpFDiv %float %317 %318 + %320 = OpCompositeConstruct %v4float %float_1 %float_0 %319 %float_0 + OpStore %314 %320 None + %321 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %uint_1 + %322 = OpAccessChain %_ptr_Function_float %viewCeilCoord %uint_0 + %323 = OpLoad %float %322 None + %324 = OpLoad %float %viewNear None + %325 = OpFDiv %float %323 %324 + %326 = OpCompositeConstruct %v4float %float_n1 %float_0 %325 %float_0 + OpStore %321 %326 None + %327 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %uint_2 + %328 = OpAccessChain %_ptr_Function_float %viewFloorCoord %uint_1 + %329 = OpLoad %float %328 None + %330 = OpFNegate %float %329 + %331 = OpLoad %float %viewNear None + %332 = OpFDiv %float %330 %331 + %333 = OpCompositeConstruct %v4float %float_0 %float_1 %332 %float_0 + OpStore %327 %333 None + %334 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %uint_3 + %335 = OpAccessChain %_ptr_Function_float %viewCeilCoord %uint_1 + %336 = OpLoad %float %335 None + %337 = OpLoad %float %viewNear None + %338 = OpFDiv %float %336 %337 + %339 = OpCompositeConstruct %v4float %float_0 %float_n1 %338 %float_0 + OpStore %334 %339 None OpStore %dp %float_0 - OpBranch %338 - %338 = OpLabel - OpStore %i %uint_0 OpBranch %341 %341 = OpLabel - OpLoopMerge %342 %340 None - OpBranch %339 - %339 = OpLabel - %344 = OpLoad %uint %i None - %345 = OpULessThan %bool %344 %uint_6 - OpSelectionMerge %346 None - OpBranchConditional %345 %346 %347 - %347 = OpLabel + OpStore %i %uint_0 + OpBranch %344 + %344 = OpLabel + OpLoopMerge %345 %343 None OpBranch %342 - %346 = OpLabel - %350 = OpLoad %uint %i None - %351 = OpExtInst %uint %55 UMin %350 %uint_5 - %352 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %351 - %353 = OpAccessChain %_ptr_Function_float %352 %uint_0 - %354 = OpLoad %float %353 None - %355 = OpFOrdGreaterThan %bool %354 %float_0 - OpSelectionMerge %356 None - OpBranchConditional %355 %357 %358 - %357 = OpLabel - %359 = OpAccessChain %_ptr_Function_float %boxMax %uint_0 - %360 = OpLoad %float %359 None - %361 = OpAccessChain %_ptr_Function_float %p %uint_0 - OpStore %361 %360 None - OpBranch %356 - %358 = OpLabel - %362 = OpAccessChain %_ptr_Function_float %boxMin %uint_0 - %363 = OpLoad %float %362 None - %364 = OpAccessChain %_ptr_Function_float %p %uint_0 - OpStore %364 %363 None - OpBranch %356 - %356 = OpLabel - %365 = OpLoad %uint %i None - %366 = OpExtInst %uint %55 UMin %365 %uint_5 - %367 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %366 - %368 = OpAccessChain %_ptr_Function_float %367 %uint_1 - %369 = OpLoad %float %368 None - %370 = OpFOrdGreaterThan %bool %369 %float_0 - OpSelectionMerge %371 None - OpBranchConditional %370 %372 %373 - %372 = OpLabel - %374 = OpAccessChain %_ptr_Function_float %boxMax %uint_1 - %375 = OpLoad %float %374 None - %376 = OpAccessChain %_ptr_Function_float %p %uint_1 - OpStore %376 %375 None - OpBranch %371 - %373 = OpLabel - %377 = OpAccessChain %_ptr_Function_float %boxMin %uint_1 - %378 = OpLoad %float %377 None - %379 = OpAccessChain %_ptr_Function_float %p %uint_1 - OpStore %379 %378 None - OpBranch %371 - %371 = OpLabel - %380 = OpLoad %uint %i None - %381 = OpExtInst %uint %55 UMin %380 %uint_5 - %382 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %381 - %383 = OpAccessChain %_ptr_Function_float %382 %uint_2 - %384 = OpLoad %float %383 None - %385 = OpFOrdGreaterThan %bool %384 %float_0 - OpSelectionMerge %386 None - OpBranchConditional %385 %387 %388 - %387 = OpLabel - %389 = OpAccessChain %_ptr_Function_float %boxMax %uint_2 - %390 = OpLoad %float %389 None - %391 = OpAccessChain %_ptr_Function_float %p %uint_2 - OpStore %391 %390 None - OpBranch %386 - %388 = OpLabel - %392 = OpAccessChain %_ptr_Function_float %boxMin %uint_2 - %393 = OpLoad %float %392 None - %394 = OpAccessChain %_ptr_Function_float %p %uint_2 - OpStore %394 %393 None - OpBranch %386 - %386 = OpLabel - %395 = OpAccessChain %_ptr_Function_float %p %uint_3 - OpStore %395 %float_1 None - %396 = OpLoad %float %dp None - %397 = OpLoad %v4float %p None - %398 = OpLoad %uint %i None - %399 = OpExtInst %uint %55 UMin %398 %uint_5 - %400 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %399 - %401 = OpLoad %v4float %400 None - %402 = OpDot %float %397 %401 - %403 = OpExtInst %float %55 FMin %float_0 %402 - %404 = OpFAdd %float %396 %403 - OpStore %dp %404 None - OpBranch %340 - %340 = OpLabel - %405 = OpLoad %uint %i None - %406 = OpIAdd %uint %405 %uint_1 - OpStore %i %406 None - OpBranch %341 %342 = OpLabel - %407 = OpLoad %float %dp None - %408 = OpFOrdGreaterThanEqual %bool %407 %float_0 - OpSelectionMerge %409 None - OpBranchConditional %408 %410 %409 - %410 = OpLabel - %411 = OpLoad %int %x None - %412 = OpLoad %int %y None - %413 = OpIMul %int %412 %TILE_COUNT_X - %414 = OpIAdd %int %411 %413 - %415 = OpBitcast %uint %414 - OpStore %tileId %415 - %417 = OpLoad %uint %tileId None - %418 = OpULessThan %bool %417 %uint_0 - OpSelectionMerge %419 None - OpBranchConditional %418 %420 %421 - %420 = OpLabel - OpBranch %419 - %421 = OpLabel - %422 = OpLoad %uint %tileId None - %423 = OpAccessChain %_ptr_Uniform_uint %19 %uint_0 %uint_1 - %424 = OpLoad %uint %423 None - %425 = OpUGreaterThanEqual %bool %422 %424 - OpBranch %419 - %419 = OpLabel - %426 = OpPhi %bool %true %420 %425 %421 - OpSelectionMerge %428 None - OpBranchConditional %426 %429 %428 - %429 = OpLabel + %353 = OpLoad %uint %i None + %354 = OpULessThan %bool %353 %uint_6 + OpSelectionMerge %355 None + OpBranchConditional %354 %355 %356 + %356 = OpLabel + OpBranch %345 + %355 = OpLabel + %359 = OpLoad %uint %i None + %360 = OpExtInst %uint %55 UMin %359 %uint_5 + %361 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %360 + %362 = OpAccessChain %_ptr_Function_float %361 %uint_0 + %363 = OpLoad %float %362 None + %364 = OpFOrdGreaterThan %bool %363 %float_0 + OpSelectionMerge %365 None + OpBranchConditional %364 %366 %367 + %366 = OpLabel + %434 = OpAccessChain %_ptr_Function_float %boxMax %uint_0 + %435 = OpLoad %float %434 None + %436 = OpAccessChain %_ptr_Function_float %p %uint_0 + OpStore %436 %435 None + OpBranch %365 + %367 = OpLabel + %437 = OpAccessChain %_ptr_Function_float %boxMin %uint_0 + %438 = OpLoad %float %437 None + %439 = OpAccessChain %_ptr_Function_float %p %uint_0 + OpStore %439 %438 None + OpBranch %365 + %365 = OpLabel + %368 = OpLoad %uint %i None + %369 = OpExtInst %uint %55 UMin %368 %uint_5 + %370 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %369 + %371 = OpAccessChain %_ptr_Function_float %370 %uint_1 + %372 = OpLoad %float %371 None + %373 = OpFOrdGreaterThan %bool %372 %float_0 + OpSelectionMerge %374 None + OpBranchConditional %373 %375 %376 + %375 = OpLabel + %440 = OpAccessChain %_ptr_Function_float %boxMax %uint_1 + %441 = OpLoad %float %440 None + %442 = OpAccessChain %_ptr_Function_float %p %uint_1 + OpStore %442 %441 None + OpBranch %374 + %376 = OpLabel + %443 = OpAccessChain %_ptr_Function_float %boxMin %uint_1 + %444 = OpLoad %float %443 None + %445 = OpAccessChain %_ptr_Function_float %p %uint_1 + OpStore %445 %444 None + OpBranch %374 + %374 = OpLabel + %377 = OpLoad %uint %i None + %378 = OpExtInst %uint %55 UMin %377 %uint_5 + %379 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %378 + %380 = OpAccessChain %_ptr_Function_float %379 %uint_2 + %381 = OpLoad %float %380 None + %382 = OpFOrdGreaterThan %bool %381 %float_0 + OpSelectionMerge %383 None + OpBranchConditional %382 %384 %385 + %384 = OpLabel + %446 = OpAccessChain %_ptr_Function_float %boxMax %uint_2 + %447 = OpLoad %float %446 None + %448 = OpAccessChain %_ptr_Function_float %p %uint_2 + OpStore %448 %447 None + OpBranch %383 + %385 = OpLabel + %449 = OpAccessChain %_ptr_Function_float %boxMin %uint_2 + %450 = OpLoad %float %449 None + %451 = OpAccessChain %_ptr_Function_float %p %uint_2 + OpStore %451 %450 None + OpBranch %383 + %383 = OpLabel + %386 = OpAccessChain %_ptr_Function_float %p %uint_3 + OpStore %386 %float_1 None + %387 = OpLoad %float %dp None + %388 = OpLoad %v4float %p None + %389 = OpLoad %uint %i None + %390 = OpExtInst %uint %55 UMin %389 %uint_5 + %391 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %390 + %392 = OpLoad %v4float %391 None + %393 = OpDot %float %388 %392 + %394 = OpExtInst %float %55 FMin %float_0 %393 + %395 = OpFAdd %float %387 %394 + OpStore %dp %395 None + OpBranch %343 + %343 = OpLabel + %396 = OpLoad %uint %i None + %397 = OpIAdd %uint %396 %uint_1 + OpStore %i %397 None + OpBranch %344 + %345 = OpLabel + %346 = OpLoad %float %dp None + %347 = OpFOrdGreaterThanEqual %bool %346 %float_0 + OpSelectionMerge %348 None + OpBranchConditional %347 %349 %348 + %349 = OpLabel + %398 = OpLoad %int %x None + %399 = OpLoad %int %y None + %400 = OpIMul %int %399 %TILE_COUNT_X + %401 = OpIAdd %int %398 %400 + %402 = OpBitcast %uint %401 + OpStore %tileId %402 + %404 = OpLoad %uint %tileId None + %405 = OpULessThan %bool %404 %uint_0 + OpSelectionMerge %406 None + OpBranchConditional %405 %407 %408 + %407 = OpLabel + OpBranch %406 + %408 = OpLabel + %452 = OpLoad %uint %tileId None + %453 = OpAccessChain %_ptr_Uniform_uint %19 %uint_0 %uint_1 + %454 = OpLoad %uint %453 None + %411 = OpUGreaterThanEqual %bool %452 %454 + OpBranch %406 + %406 = OpLabel + %409 = OpPhi %bool %true %407 %411 %408 + OpSelectionMerge %412 None + OpBranchConditional %409 %413 %412 + %413 = OpLabel OpBranch %207 - %428 = OpLabel - %430 = OpLoad %uint %tileId None - %431 = OpExtInst %uint %55 UMin %430 %uint_3 - %432 = OpAccessChain %_ptr_StorageBuffer_uint %9 %uint_0 %uint_0 %431 %uint_0 - %434 = OpAtomicIAdd %uint %432 %uint_1 %uint_0 %uint_1 - OpStore %offset %434 - %436 = OpLoad %uint %offset None - %437 = OpAccessChain %_ptr_Uniform_uint %19 %uint_0 %uint_4 - %438 = OpLoad %uint %437 None - %439 = OpUGreaterThanEqual %bool %436 %438 - OpSelectionMerge %440 None - OpBranchConditional %439 %441 %440 - %441 = OpLabel + %412 = OpLabel + %414 = OpLoad %uint %tileId None + %415 = OpExtInst %uint %55 UMin %414 %uint_3 + %416 = OpAccessChain %_ptr_StorageBuffer_uint %9 %uint_0 %uint_0 %415 %uint_0 + %418 = OpAtomicIAdd %uint %416 %uint_1 %uint_0 %uint_1 + OpStore %offset %418 + %420 = OpLoad %uint %offset None + %421 = OpAccessChain %_ptr_Uniform_uint %19 %uint_0 %uint_4 + %422 = OpLoad %uint %421 None + %423 = OpUGreaterThanEqual %bool %420 %422 + OpSelectionMerge %424 None + OpBranchConditional %423 %425 %424 + %425 = OpLabel OpBranch %207 - %440 = OpLabel - %442 = OpLoad %uint %tileId None - %443 = OpLoad %uint %offset None - %444 = OpExtInst %uint %55 UMin %442 %uint_3 - %445 = OpExtInst %uint %55 UMin %443 %uint_63 - %447 = OpAccessChain %_ptr_StorageBuffer_uint_0 %9 %uint_0 %uint_0 %444 %uint_1 %445 - %449 = OpCompositeExtract %uint %GlobalInvocationID 0 - OpStore %447 %449 None - OpBranch %409 - %409 = OpLabel + %424 = OpLabel + %426 = OpLoad %uint %tileId None + %427 = OpLoad %uint %offset None + %428 = OpExtInst %uint %55 UMin %426 %uint_3 + %429 = OpExtInst %uint %55 UMin %427 %uint_63 + %431 = OpAccessChain %_ptr_StorageBuffer_uint_0 %9 %uint_0 %uint_0 %428 %uint_1 %429 + %433 = OpCompositeExtract %uint %GlobalInvocationID 0 + OpStore %431 %433 None + OpBranch %348 + %348 = OpLabel OpBranch %207 %207 = OpLabel - %450 = OpLoad %int %x None - %451 = OpIAdd %int %450 %int_1 - OpStore %x %451 None + %350 = OpLoad %int %x None + %351 = OpIAdd %int %350 %int_1 + OpStore %x %351 None OpBranch %208 %209 = OpLabel - OpBranch %195 - %195 = OpLabel - %453 = OpLoad %int %y None - %454 = OpIAdd %int %453 %int_1 - OpStore %y %454 None - OpBranch %196 - %197 = OpLabel + OpBranch %185 + %185 = OpLabel + %210 = OpLoad %int %y None + %211 = OpIAdd %int %210 %int_1 + OpStore %y %211 None + OpBranch %186 + %187 = OpLabel OpReturn OpFunctionEnd %main = OpFunction %void None %456
diff --git a/test/tint/bug/tint/1474-a.wgsl.expected.spvasm b/test/tint/bug/tint/1474-a.wgsl.expected.spvasm index 865f618..4d745b4 100644 --- a/test/tint/bug/tint/1474-a.wgsl.expected.spvasm +++ b/test/tint/bug/tint/1474-a.wgsl.expected.spvasm
@@ -8,71 +8,71 @@ OpEntryPoint GLCompute %main "main" OpExecutionMode %main LocalSize 1 1 1 OpName %main "main" + OpName %x "x" OpName %tint_loop_idx "tint_loop_idx" OpName %tint_low_inc "tint_low_inc" OpName %tint_carry "tint_carry" - OpName %x "x" %void = OpTypeVoid %3 = OpTypeFunction %void + %int = OpTypeInt 32 1 + %x = OpConstant %int 5 %uint = OpTypeInt 32 0 %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %14 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %18 = OpConstantNull %v2uint + %16 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %20 = OpConstantNull %v2uint %bool = OpTypeBool %v2bool = OpTypeVector %bool 2 %true = OpConstantTrue %bool %_ptr_Function_uint = OpTypePointer Function %uint %uint_0 = OpConstant %uint 0 %uint_1 = OpConstant %uint 1 - %int = OpTypeInt 32 1 - %x = OpConstant %int 5 %main = OpFunction %void None %3 %4 = OpLabel %tint_loop_idx = OpVariable %_ptr_Function_v2uint Function OpBranch %5 %5 = OpLabel - OpStore %tint_loop_idx %14 + OpStore %tint_loop_idx %16 OpBranch %8 %8 = OpLabel OpLoopMerge %9 %7 None OpBranch %6 %6 = OpLabel - %16 = OpLoad %v2uint %tint_loop_idx None - %17 = OpIEqual %v2bool %16 %18 - %21 = OpAll %bool %17 - OpSelectionMerge %22 None - OpBranchConditional %21 %23 %22 - %23 = OpLabel - OpBranch %9 - %22 = OpLabel + %18 = OpLoad %v2uint %tint_loop_idx None + %19 = OpIEqual %v2bool %18 %20 + %23 = OpAll %bool %19 OpSelectionMerge %24 None - OpBranchConditional %true %24 %25 + OpBranchConditional %23 %25 %24 %25 = OpLabel OpBranch %9 %24 = OpLabel - OpSelectionMerge %27 None - OpBranchConditional %true %28 %29 - %28 = OpLabel - OpBranch %9 - %29 = OpLabel - OpReturn + OpSelectionMerge %26 None + OpBranchConditional %true %26 %27 %27 = OpLabel + OpBranch %9 + %26 = OpLabel + OpSelectionMerge %29 None + OpBranchConditional %true %30 %31 + %30 = OpLabel + OpBranch %9 + %31 = OpLabel + OpReturn + %29 = OpLabel OpBranch %7 %7 = OpLabel - %30 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %33 = OpLoad %uint %30 None -%tint_low_inc = OpISub %uint %33 %uint_1 - %36 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %36 %tint_low_inc None - %37 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %37 %uint_1 %uint_0 - %39 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %40 = OpLoad %uint %39 None - %41 = OpISub %uint %40 %tint_carry - %42 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %42 %41 None + %32 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %35 = OpLoad %uint %32 None +%tint_low_inc = OpISub %uint %35 %uint_1 + %38 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %38 %tint_low_inc None + %39 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %39 %uint_1 %uint_0 + %41 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %42 = OpLoad %uint %41 None + %43 = OpISub %uint %42 %tint_carry + %44 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %44 %43 None OpBranch %8 %9 = OpLabel OpReturn
diff --git a/test/tint/bug/tint/1538.wgsl.expected.spvasm b/test/tint/bug/tint/1538.wgsl.expected.spvasm index 5cbb56a..6bed458 100644 --- a/test/tint/bug/tint/1538.wgsl.expected.spvasm +++ b/test/tint/bug/tint/1538.wgsl.expected.spvasm
@@ -11,10 +11,10 @@ OpName %buf_block_tint_explicit_layout "buf_block_tint_explicit_layout" OpName %g "g" OpName %f "f" + OpName %o "o" OpName %tint_loop_idx "tint_loop_idx" OpName %tint_low_inc "tint_low_inc" OpName %tint_carry "tint_carry" - OpName %o "o" OpName %main "main" OpName %tint_loop_idx_0 "tint_loop_idx" OpName %s "s" @@ -38,8 +38,8 @@ %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %22 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %26 = OpConstantNull %v2uint + %23 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %27 = OpConstantNull %v2uint %bool = OpTypeBool %v2bool = OpTypeVector %bool 2 %_ptr_Function_uint = OpTypePointer Function %uint @@ -57,35 +57,35 @@ %tint_loop_idx = OpVariable %_ptr_Function_v2uint Function OpBranch %14 %14 = OpLabel - OpStore %tint_loop_idx %22 + OpStore %tint_loop_idx %23 OpBranch %17 %17 = OpLabel OpLoopMerge %18 %16 None OpBranch %15 %15 = OpLabel - %24 = OpLoad %v2uint %tint_loop_idx None - %25 = OpIEqual %v2bool %24 %26 - %29 = OpAll %bool %25 - OpSelectionMerge %30 None - OpBranchConditional %29 %31 %30 - %31 = OpLabel + %25 = OpLoad %v2uint %tint_loop_idx None + %26 = OpIEqual %v2bool %25 %27 + %30 = OpAll %bool %26 + OpSelectionMerge %31 None + OpBranchConditional %30 %32 %31 + %32 = OpLabel OpBranch %18 - %30 = OpLabel - %32 = OpFunctionCall %int %g + %31 = OpLabel + %33 = OpFunctionCall %int %g OpBranch %18 %16 = OpLabel - %33 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %36 = OpLoad %uint %33 None -%tint_low_inc = OpISub %uint %36 %uint_1 - %38 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %38 %tint_low_inc None - %39 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %39 %uint_1 %uint_0 - %41 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %42 = OpLoad %uint %41 None - %43 = OpISub %uint %42 %tint_carry - %44 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %44 %43 None + %34 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %37 = OpLoad %uint %34 None +%tint_low_inc = OpISub %uint %37 %uint_1 + %39 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %39 %tint_low_inc None + %40 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %40 %uint_1 %uint_0 + %42 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %43 = OpLoad %uint %42 None + %44 = OpISub %uint %43 %tint_carry + %45 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %45 %44 None OpBranch %17 %18 = OpLabel %o = OpFunctionCall %int %g @@ -97,14 +97,14 @@ %s = OpVariable %_ptr_Function_int Function OpBranch %50 %50 = OpLabel - OpStore %tint_loop_idx_0 %22 + OpStore %tint_loop_idx_0 %23 OpBranch %53 %53 = OpLabel OpLoopMerge %54 %52 None OpBranch %51 %51 = OpLabel %56 = OpLoad %v2uint %tint_loop_idx_0 None - %57 = OpIEqual %v2bool %56 %26 + %57 = OpIEqual %v2bool %56 %27 %58 = OpAll %bool %57 OpSelectionMerge %59 None OpBranchConditional %58 %60 %59
diff --git a/test/tint/bug/tint/1557.wgsl.expected.spvasm b/test/tint/bug/tint/1557.wgsl.expected.spvasm index 77dc52ef..4fde7bb 100644 --- a/test/tint/bug/tint/1557.wgsl.expected.spvasm +++ b/test/tint/bug/tint/1557.wgsl.expected.spvasm
@@ -106,20 +106,20 @@ %60 = OpLoad %int %58 None OpSelectionMerge %63 None OpSwitch %60 %61 0 %62 + %61 = OpLabel + OpBranch %63 %62 = OpLabel %64 = OpAccessChain %_ptr_Uniform_int %1 %uint_0 %65 = OpLoad %int %64 None OpSelectionMerge %68 None OpSwitch %65 %66 0 %67 - %67 = OpLabel - OpBranch %68 %66 = OpLabel %69 = OpFunctionCall %void %g OpBranch %68 + %67 = OpLabel + OpBranch %68 %68 = OpLabel OpBranch %63 - %61 = OpLabel - OpBranch %63 %63 = OpLabel OpReturn OpFunctionEnd
diff --git a/test/tint/bug/tint/1574.wgsl.expected.spvasm b/test/tint/bug/tint/1574.wgsl.expected.spvasm index b3a3086..ad89efe 100644 --- a/test/tint/bug/tint/1574.wgsl.expected.spvasm +++ b/test/tint/bug/tint/1574.wgsl.expected.spvasm
@@ -69,16 +69,16 @@ %uint_1 = OpConstant %uint 1 %bool = OpTypeBool %uint_2 = OpConstant %uint 2 - %uint_0 = OpConstant %uint 0 - %int_0 = OpConstant %int 0 %uint_264 = OpConstant %uint 264 %_ptr_Function_uint = OpTypePointer Function %uint %uint_42 = OpConstant %uint 42 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint + %uint_0 = OpConstant %uint 0 %__atomic_compare_exchange_result_u32 = OpTypeStruct %uint %bool %_ptr_Function_int = OpTypePointer Function %int %int_42 = OpConstant %int 42 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %int_0 = OpConstant %int 0 %__atomic_compare_exchange_result_i32 = OpTypeStruct %int %bool %99 = OpTypeFunction %void %main_inner = OpFunction %void None %18 @@ -98,63 +98,63 @@ %23 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 OpStore %value %uint_42 - %35 = OpLoad %uint %value None - %36 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 - %38 = OpAtomicCompareExchange %uint %36 %uint_1 %uint_0 %uint_0 %35 %uint_0 - %39 = OpIEqual %bool %38 %uint_0 - %r1 = OpCompositeConstruct %__atomic_compare_exchange_result_u32 %38 %39 - %42 = OpLoad %uint %value None - %43 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 - %44 = OpAtomicCompareExchange %uint %43 %uint_1 %uint_0 %uint_0 %42 %uint_0 - %45 = OpIEqual %bool %44 %uint_0 - %r2 = OpCompositeConstruct %__atomic_compare_exchange_result_u32 %44 %45 - %47 = OpLoad %uint %value None - %48 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 - %49 = OpAtomicCompareExchange %uint %48 %uint_1 %uint_0 %uint_0 %47 %uint_0 - %50 = OpIEqual %bool %49 %uint_0 - %r3 = OpCompositeConstruct %__atomic_compare_exchange_result_u32 %49 %50 + %31 = OpLoad %uint %value None + %32 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 + %35 = OpAtomicCompareExchange %uint %32 %uint_1 %uint_0 %uint_0 %31 %uint_0 + %36 = OpIEqual %bool %35 %uint_0 + %r1 = OpCompositeConstruct %__atomic_compare_exchange_result_u32 %35 %36 + %39 = OpLoad %uint %value None + %40 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 + %41 = OpAtomicCompareExchange %uint %40 %uint_1 %uint_0 %uint_0 %39 %uint_0 + %42 = OpIEqual %bool %41 %uint_0 + %r2 = OpCompositeConstruct %__atomic_compare_exchange_result_u32 %41 %42 + %44 = OpLoad %uint %value None + %45 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 + %46 = OpAtomicCompareExchange %uint %45 %uint_1 %uint_0 %uint_0 %44 %uint_0 + %47 = OpIEqual %bool %46 %uint_0 + %r3 = OpCompositeConstruct %__atomic_compare_exchange_result_u32 %46 %47 OpStore %value_0 %int_42 - %55 = OpLoad %int %value_0 None - %56 = OpAccessChain %_ptr_StorageBuffer_int %5 %uint_0 - %58 = OpAtomicCompareExchange %int %56 %uint_1 %uint_0 %uint_0 %55 %int_0 - %59 = OpIEqual %bool %58 %int_0 - %r1_0 = OpCompositeConstruct %__atomic_compare_exchange_result_i32 %58 %59 - %62 = OpLoad %int %value_0 None - %63 = OpAccessChain %_ptr_StorageBuffer_int %5 %uint_0 - %64 = OpAtomicCompareExchange %int %63 %uint_1 %uint_0 %uint_0 %62 %int_0 - %65 = OpIEqual %bool %64 %int_0 - %r2_0 = OpCompositeConstruct %__atomic_compare_exchange_result_i32 %64 %65 - %67 = OpLoad %int %value_0 None - %68 = OpAccessChain %_ptr_StorageBuffer_int %5 %uint_0 - %69 = OpAtomicCompareExchange %int %68 %uint_1 %uint_0 %uint_0 %67 %int_0 - %70 = OpIEqual %bool %69 %int_0 - %r3_0 = OpCompositeConstruct %__atomic_compare_exchange_result_i32 %69 %70 + %52 = OpLoad %int %value_0 None + %53 = OpAccessChain %_ptr_StorageBuffer_int %5 %uint_0 + %55 = OpAtomicCompareExchange %int %53 %uint_1 %uint_0 %uint_0 %52 %int_0 + %57 = OpIEqual %bool %55 %int_0 + %r1_0 = OpCompositeConstruct %__atomic_compare_exchange_result_i32 %55 %57 + %60 = OpLoad %int %value_0 None + %61 = OpAccessChain %_ptr_StorageBuffer_int %5 %uint_0 + %62 = OpAtomicCompareExchange %int %61 %uint_1 %uint_0 %uint_0 %60 %int_0 + %63 = OpIEqual %bool %62 %int_0 + %r2_0 = OpCompositeConstruct %__atomic_compare_exchange_result_i32 %62 %63 + %65 = OpLoad %int %value_0 None + %66 = OpAccessChain %_ptr_StorageBuffer_int %5 %uint_0 + %67 = OpAtomicCompareExchange %int %66 %uint_1 %uint_0 %uint_0 %65 %int_0 + %68 = OpIEqual %bool %67 %int_0 + %r3_0 = OpCompositeConstruct %__atomic_compare_exchange_result_i32 %67 %68 OpStore %value_1 %uint_42 - %73 = OpLoad %uint %value_1 None - %74 = OpAtomicCompareExchange %uint %b_u32 %uint_2 %uint_0 %uint_0 %73 %uint_0 - %75 = OpIEqual %bool %74 %uint_0 - %r1_1 = OpCompositeConstruct %__atomic_compare_exchange_result_u32 %74 %75 - %77 = OpLoad %uint %value_1 None - %78 = OpAtomicCompareExchange %uint %b_u32 %uint_2 %uint_0 %uint_0 %77 %uint_0 - %79 = OpIEqual %bool %78 %uint_0 - %r2_1 = OpCompositeConstruct %__atomic_compare_exchange_result_u32 %78 %79 - %81 = OpLoad %uint %value_1 None - %82 = OpAtomicCompareExchange %uint %b_u32 %uint_2 %uint_0 %uint_0 %81 %uint_0 - %83 = OpIEqual %bool %82 %uint_0 - %r3_1 = OpCompositeConstruct %__atomic_compare_exchange_result_u32 %82 %83 + %71 = OpLoad %uint %value_1 None + %72 = OpAtomicCompareExchange %uint %b_u32 %uint_2 %uint_0 %uint_0 %71 %uint_0 + %73 = OpIEqual %bool %72 %uint_0 + %r1_1 = OpCompositeConstruct %__atomic_compare_exchange_result_u32 %72 %73 + %75 = OpLoad %uint %value_1 None + %76 = OpAtomicCompareExchange %uint %b_u32 %uint_2 %uint_0 %uint_0 %75 %uint_0 + %77 = OpIEqual %bool %76 %uint_0 + %r2_1 = OpCompositeConstruct %__atomic_compare_exchange_result_u32 %76 %77 + %79 = OpLoad %uint %value_1 None + %80 = OpAtomicCompareExchange %uint %b_u32 %uint_2 %uint_0 %uint_0 %79 %uint_0 + %81 = OpIEqual %bool %80 %uint_0 + %r3_1 = OpCompositeConstruct %__atomic_compare_exchange_result_u32 %80 %81 OpStore %value_2 %int_42 - %86 = OpLoad %int %value_2 None - %87 = OpAtomicCompareExchange %int %b_i32 %uint_2 %uint_0 %uint_0 %86 %int_0 - %88 = OpIEqual %bool %87 %int_0 - %r1_2 = OpCompositeConstruct %__atomic_compare_exchange_result_i32 %87 %88 - %90 = OpLoad %int %value_2 None - %91 = OpAtomicCompareExchange %int %b_i32 %uint_2 %uint_0 %uint_0 %90 %int_0 - %92 = OpIEqual %bool %91 %int_0 - %r2_2 = OpCompositeConstruct %__atomic_compare_exchange_result_i32 %91 %92 - %94 = OpLoad %int %value_2 None - %95 = OpAtomicCompareExchange %int %b_i32 %uint_2 %uint_0 %uint_0 %94 %int_0 - %96 = OpIEqual %bool %95 %int_0 - %r3_2 = OpCompositeConstruct %__atomic_compare_exchange_result_i32 %95 %96 + %84 = OpLoad %int %value_2 None + %85 = OpAtomicCompareExchange %int %b_i32 %uint_2 %uint_0 %uint_0 %84 %int_0 + %86 = OpIEqual %bool %85 %int_0 + %r1_2 = OpCompositeConstruct %__atomic_compare_exchange_result_i32 %85 %86 + %88 = OpLoad %int %value_2 None + %89 = OpAtomicCompareExchange %int %b_i32 %uint_2 %uint_0 %uint_0 %88 %int_0 + %90 = OpIEqual %bool %89 %int_0 + %r2_2 = OpCompositeConstruct %__atomic_compare_exchange_result_i32 %89 %90 + %92 = OpLoad %int %value_2 None + %93 = OpAtomicCompareExchange %int %b_i32 %uint_2 %uint_0 %uint_0 %92 %int_0 + %94 = OpIEqual %bool %93 %int_0 + %r3_2 = OpCompositeConstruct %__atomic_compare_exchange_result_i32 %93 %94 OpReturn OpFunctionEnd %main = OpFunction %void None %99
diff --git a/test/tint/bug/tint/1604.wgsl.expected.spvasm b/test/tint/bug/tint/1604.wgsl.expected.spvasm index 0fc8772..b2ec575 100644 --- a/test/tint/bug/tint/1604.wgsl.expected.spvasm +++ b/test/tint/bug/tint/1604.wgsl.expected.spvasm
@@ -43,6 +43,8 @@ %13 = OpLoad %int %9 None OpSelectionMerge %16 None OpSwitch %13 %14 0 %15 + %14 = OpLabel + OpBranch %16 %15 = OpLabel OpBranch %17 %17 = OpLabel @@ -77,8 +79,6 @@ OpBranch %20 %21 = OpLabel OpBranch %16 - %14 = OpLabel - OpBranch %16 %16 = OpLabel OpReturn OpFunctionEnd
diff --git a/test/tint/bug/tint/1605.wgsl.expected.spvasm b/test/tint/bug/tint/1605.wgsl.expected.spvasm index 58999e3..612a195 100644 --- a/test/tint/bug/tint/1605.wgsl.expected.spvasm +++ b/test/tint/bug/tint/1605.wgsl.expected.spvasm
@@ -14,12 +14,12 @@ OpName %continue_execution "continue_execution" OpName %tint_loop_idx "tint_loop_idx" OpName %i "i" + OpName %tint_low_inc "tint_low_inc" + OpName %tint_carry "tint_carry" OpName %tint_loop_idx_0 "tint_loop_idx" OpName %j "j" OpName %tint_low_inc_1 "tint_low_inc_1" OpName %tint_carry_1 "tint_carry_1" - OpName %tint_low_inc "tint_low_inc" - OpName %tint_carry "tint_carry" OpName %main "main" OpMemberDecorate %b_block 0 Offset 0 OpDecorate %b_block Block @@ -39,18 +39,18 @@ %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %23 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %27 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 %_ptr_Function_int = OpTypePointer Function %int %int_0 = OpConstant %int 0 - %30 = OpConstantNull %v2uint + %34 = OpConstantNull %v2uint %v2bool = OpTypeVector %bool 2 %_ptr_Uniform_int = OpTypePointer Uniform %int %uint_0 = OpConstant %uint 0 - %int_n1 = OpConstant %int -1 - %int_1 = OpConstant %int 1 - %false = OpConstantFalse %bool %_ptr_Function_uint = OpTypePointer Function %uint %uint_1 = OpConstant %uint 1 + %int_1 = OpConstant %int 1 + %false = OpConstantFalse %bool + %int_n1 = OpConstant %int -1 %void = OpTypeVoid %97 = OpTypeFunction %void %func_3 = OpFunction %bool None %7 @@ -64,109 +64,109 @@ OpStore %continue_execution %true OpBranch %14 %14 = OpLabel - OpStore %tint_loop_idx %23 + OpStore %tint_loop_idx %27 OpStore %i %int_0 OpBranch %17 %17 = OpLabel OpLoopMerge %18 %16 None OpBranch %15 %15 = OpLabel - %28 = OpLoad %v2uint %tint_loop_idx None - %29 = OpIEqual %v2bool %28 %30 - %32 = OpAll %bool %29 - OpSelectionMerge %33 None - OpBranchConditional %32 %34 %33 - %34 = OpLabel + %32 = OpLoad %v2uint %tint_loop_idx None + %33 = OpIEqual %v2bool %32 %34 + %36 = OpAll %bool %33 + OpSelectionMerge %37 None + OpBranchConditional %36 %38 %37 + %38 = OpLabel OpBranch %18 - %33 = OpLabel - %35 = OpLoad %int %i None - %36 = OpAccessChain %_ptr_Uniform_int %1 %uint_0 - %39 = OpLoad %int %36 None - %40 = OpSLessThan %bool %35 %39 - OpSelectionMerge %41 None - OpBranchConditional %40 %41 %42 - %42 = OpLabel - OpBranch %18 - %41 = OpLabel - OpBranch %43 - %43 = OpLabel - OpStore %tint_loop_idx_0 %23 - OpStore %j %int_n1 - OpBranch %46 + %37 = OpLabel + %39 = OpLoad %int %i None + %40 = OpAccessChain %_ptr_Uniform_int %1 %uint_0 + %43 = OpLoad %int %40 None + %44 = OpSLessThan %bool %39 %43 + OpSelectionMerge %45 None + OpBranchConditional %44 %45 %46 %46 = OpLabel - OpLoopMerge %47 %45 None - OpBranch %44 - %44 = OpLabel - %51 = OpLoad %v2uint %tint_loop_idx_0 None - %52 = OpIEqual %v2bool %51 %30 - %53 = OpAll %bool %52 - OpSelectionMerge %54 None - OpBranchConditional %53 %55 %54 - %55 = OpLabel - OpBranch %47 - %54 = OpLabel - %56 = OpLoad %int %j None - %57 = OpIEqual %bool %56 %int_1 - OpSelectionMerge %59 None - OpBranchConditional %57 %59 %60 - %60 = OpLabel - OpBranch %47 - %59 = OpLabel - OpStore %continue_execution %false None - OpStore %return_value %false None - OpBranch %47 + OpBranch %18 %45 = OpLabel - %62 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - %64 = OpLoad %uint %62 None -%tint_low_inc_1 = OpISub %uint %64 %uint_1 - %67 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - OpStore %67 %tint_low_inc_1 None - %68 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 -%tint_carry_1 = OpSelect %uint %68 %uint_1 %uint_0 - %70 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - %71 = OpLoad %uint %70 None - %72 = OpISub %uint %71 %tint_carry_1 - %73 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - OpStore %73 %72 None - %74 = OpLoad %int %j None - %75 = OpIAdd %int %74 %int_1 - OpStore %j %75 None - OpBranch %46 + OpBranch %47 %47 = OpLabel - %76 = OpLoad %bool %continue_execution None + OpStore %tint_loop_idx_0 %27 + OpStore %j %int_n1 + OpBranch %50 + %50 = OpLabel + OpLoopMerge %51 %49 None + OpBranch %48 + %48 = OpLabel + %74 = OpLoad %v2uint %tint_loop_idx_0 None + %75 = OpIEqual %v2bool %74 %34 + %76 = OpAll %bool %75 OpSelectionMerge %77 None OpBranchConditional %76 %78 %77 %78 = OpLabel - OpBranch %16 + OpBranch %51 %77 = OpLabel + %79 = OpLoad %int %j None + %80 = OpIEqual %bool %79 %int_1 + OpSelectionMerge %81 None + OpBranchConditional %80 %81 %82 + %82 = OpLabel + OpBranch %51 + %81 = OpLabel + OpStore %continue_execution %false None + OpStore %return_value %false None + OpBranch %51 + %49 = OpLabel + %83 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + %84 = OpLoad %uint %83 None +%tint_low_inc_1 = OpISub %uint %84 %uint_1 + %86 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + OpStore %86 %tint_low_inc_1 None + %87 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 +%tint_carry_1 = OpSelect %uint %87 %uint_1 %uint_0 + %89 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + %90 = OpLoad %uint %89 None + %91 = OpISub %uint %90 %tint_carry_1 + %92 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + OpStore %92 %91 None + %93 = OpLoad %int %j None + %94 = OpIAdd %int %93 %int_1 + OpStore %j %94 None + OpBranch %50 + %51 = OpLabel + %52 = OpLoad %bool %continue_execution None + OpSelectionMerge %53 None + OpBranchConditional %52 %54 %53 + %54 = OpLabel + OpBranch %16 + %53 = OpLabel OpBranch %18 %16 = OpLabel - %79 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %80 = OpLoad %uint %79 None -%tint_low_inc = OpISub %uint %80 %uint_1 - %82 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %82 %tint_low_inc None - %83 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %83 %uint_1 %uint_0 - %85 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %86 = OpLoad %uint %85 None - %87 = OpISub %uint %86 %tint_carry - %88 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %88 %87 None - %89 = OpLoad %int %i None - %90 = OpIAdd %int %89 %int_1 - OpStore %i %90 None + %55 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %57 = OpLoad %uint %55 None +%tint_low_inc = OpISub %uint %57 %uint_1 + %60 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %60 %tint_low_inc None + %61 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %61 %uint_1 %uint_0 + %63 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %64 = OpLoad %uint %63 None + %65 = OpISub %uint %64 %tint_carry + %66 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %66 %65 None + %67 = OpLoad %int %i None + %68 = OpIAdd %int %67 %int_1 + OpStore %i %68 None OpBranch %17 %18 = OpLabel - %91 = OpLoad %bool %continue_execution None - OpSelectionMerge %92 None - OpBranchConditional %91 %93 %92 - %93 = OpLabel + %19 = OpLoad %bool %continue_execution None + OpSelectionMerge %20 None + OpBranchConditional %19 %21 %20 + %21 = OpLabel OpStore %return_value %false None - OpBranch %92 - %92 = OpLabel - %94 = OpLoad %bool %return_value None - OpReturnValue %94 + OpBranch %20 + %20 = OpLabel + %22 = OpLoad %bool %return_value None + OpReturnValue %22 OpFunctionEnd %main = OpFunction %void None %97 %98 = OpLabel
diff --git a/test/tint/bug/tint/1739.wgsl.expected.spvasm b/test/tint/bug/tint/1739.wgsl.expected.spvasm index 0f60961..380de17 100644 --- a/test/tint/bug/tint/1739.wgsl.expected.spvasm +++ b/test/tint/bug/tint/1739.wgsl.expected.spvasm
@@ -217,40 +217,40 @@ OpSelectionMerge %97 None OpBranchConditional %95 %98 %99 %98 = OpLabel - %100 = OpImageFetch %v4float %plane_0 %93 Lod %uint_0 - %101 = OpVectorShuffle %v3float %100 %100 0 1 2 - %102 = OpCompositeExtract %float %100 3 + %112 = OpImageFetch %v4float %plane_0 %93 Lod %uint_0 + %101 = OpVectorShuffle %v3float %112 %112 0 1 2 + %104 = OpCompositeExtract %float %112 3 OpBranch %97 %99 = OpLabel - %103 = OpImageFetch %v4float %plane_0 %93 Lod %uint_0 - %104 = OpCompositeExtract %float %103 0 - %105 = OpFMul %v2float %92 %86 - %106 = OpConvertFToU %v2uint %105 - %107 = OpImageFetch %v4float %plane_1 %106 Lod %uint_0 - %108 = OpVectorShuffle %v2float %107 %107 0 1 - %109 = OpCompositeConstruct %v4float %104 %108 %float_1 - %110 = OpVectorTimesMatrix %v3float %109 %83 + %113 = OpImageFetch %v4float %plane_0 %93 Lod %uint_0 + %114 = OpCompositeExtract %float %113 0 + %115 = OpFMul %v2float %92 %86 + %116 = OpConvertFToU %v2uint %115 + %117 = OpImageFetch %v4float %plane_1 %116 Lod %uint_0 + %118 = OpVectorShuffle %v2float %117 %117 0 1 + %119 = OpCompositeConstruct %v4float %114 %118 %float_1 + %102 = OpVectorTimesMatrix %v3float %119 %83 OpBranch %97 %97 = OpLabel - %111 = OpPhi %v3float %101 %98 %110 %99 - %112 = OpPhi %float %102 %98 %float_1 %99 - %113 = OpIEqual %bool %82 %uint_0 - OpSelectionMerge %114 None - OpBranchConditional %113 %115 %116 - %115 = OpLabel - %117 = OpCompositeExtract %tint_GammaTransferParams %params 3 - %118 = OpCompositeExtract %tint_GammaTransferParams %params 4 - %119 = OpCompositeExtract %mat3v3float %params 5 - %120 = OpFunctionCall %v3float %tint_GammaCorrection %111 %117 - %122 = OpMatrixTimesVector %v3float %119 %120 - %123 = OpFunctionCall %v3float %tint_GammaCorrection %122 %118 - OpBranch %114 - %116 = OpLabel - OpBranch %114 - %114 = OpLabel - %124 = OpPhi %v3float %123 %115 %111 %116 - %125 = OpCompositeConstruct %v4float %124 %112 - OpReturnValue %125 + %100 = OpPhi %v3float %101 %98 %102 %99 + %103 = OpPhi %float %104 %98 %float_1 %99 + %105 = OpIEqual %bool %82 %uint_0 + OpSelectionMerge %106 None + OpBranchConditional %105 %107 %108 + %107 = OpLabel + %120 = OpCompositeExtract %tint_GammaTransferParams %params 3 + %121 = OpCompositeExtract %tint_GammaTransferParams %params 4 + %122 = OpCompositeExtract %mat3v3float %params 5 + %123 = OpFunctionCall %v3float %tint_GammaCorrection %100 %120 + %125 = OpMatrixTimesVector %v3float %122 %123 + %110 = OpFunctionCall %v3float %tint_GammaCorrection %125 %121 + OpBranch %106 + %108 = OpLabel + OpBranch %106 + %106 = OpLabel + %109 = OpPhi %v3float %110 %107 %100 %108 + %111 = OpCompositeConstruct %v4float %109 %103 + OpReturnValue %111 OpFunctionEnd %tint_GammaCorrection = OpFunction %v3float None %128 %v = OpFunctionParameter %v3float
diff --git a/test/tint/bug/tint/1764.wgsl.expected.spvasm b/test/tint/bug/tint/1764.wgsl.expected.spvasm index 3651f63..c9a3f6e 100644 --- a/test/tint/bug/tint/1764.wgsl.expected.spvasm +++ b/test/tint/bug/tint/1764.wgsl.expected.spvasm
@@ -24,14 +24,14 @@ %main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %12 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_int = OpTypePointer Workgroup %int - %int_0 = OpConstant %int 0 - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 +%_ptr_Workgroup_int = OpTypePointer Workgroup %int %uint_0 = OpConstant %uint 0 %int_42 = OpConstant %int 42 + %bool = OpTypeBool + %int_0 = OpConstant %int 0 + %uint_1 = OpConstant %uint 1 %36 = OpTypeFunction %void %main_inner = OpFunction %void None %12 %tint_local_index = OpFunctionParameter %uint @@ -44,22 +44,22 @@ OpLoopMerge %18 %16 None OpBranch %15 %15 = OpLabel - %21 = OpUGreaterThanEqual %bool %19 %uint_246 - OpSelectionMerge %23 None - OpBranchConditional %21 %24 %23 - %24 = OpLabel + %28 = OpUGreaterThanEqual %bool %19 %uint_246 + OpSelectionMerge %30 None + OpBranchConditional %28 %31 %30 + %31 = OpLabel OpBranch %18 - %23 = OpLabel - %25 = OpAccessChain %_ptr_Workgroup_int %W %19 - OpStore %25 %int_0 None + %30 = OpLabel + %32 = OpAccessChain %_ptr_Workgroup_int %W %19 + OpStore %32 %int_0 None OpBranch %16 %16 = OpLabel %20 = OpIAdd %uint %19 %uint_1 OpBranch %17 %18 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %32 = OpAccessChain %_ptr_Workgroup_int %W %uint_0 - OpStore %32 %int_42 None + %24 = OpAccessChain %_ptr_Workgroup_int %W %uint_0 + OpStore %24 %int_42 None OpReturn OpFunctionEnd %main = OpFunction %void None %36
diff --git a/test/tint/bug/tint/1926.wgsl.expected.spvasm b/test/tint/bug/tint/1926.wgsl.expected.spvasm index 91814b3..759ca7f 100644 --- a/test/tint/bug/tint/1926.wgsl.expected.spvasm +++ b/test/tint/bug/tint/1926.wgsl.expected.spvasm
@@ -43,9 +43,9 @@ %18 = OpTypeFunction %void %v3uint %v3uint %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %uint_0 = OpConstant %uint 0 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 + %uint_0 = OpConstant %uint 0 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint %39 = OpTypeFunction %void %main_inner = OpFunction %void None %18 @@ -64,10 +64,10 @@ OpControlBarrier %uint_2 %uint_2 %uint_264 %failed = OpLoad %uint %sh_atomic_failed None OpControlBarrier %uint_2 %uint_2 %uint_264 - %32 = OpCompositeExtract %uint %local_id 0 - %33 = OpIEqual %bool %32 %uint_0 + %31 = OpCompositeExtract %uint %local_id 0 + %32 = OpIEqual %bool %31 %uint_0 OpSelectionMerge %34 None - OpBranchConditional %33 %35 %34 + OpBranchConditional %32 %35 %34 %35 = OpLabel %36 = OpAccessChain %_ptr_StorageBuffer_uint %4 %uint_0 OpStore %36 %failed None
diff --git a/test/tint/bug/tint/2038.wgsl.expected.spvasm b/test/tint/bug/tint/2038.wgsl.expected.spvasm index 9bba12d..246e8de 100644 --- a/test/tint/bug/tint/2038.wgsl.expected.spvasm +++ b/test/tint/bug/tint/2038.wgsl.expected.spvasm
@@ -34,16 +34,16 @@ OpSelectionMerge %11 None OpBranchConditional %false %12 %11 %12 = OpLabel - %15 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 %uint_0 - OpStore %15 %uint_1 None + %17 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 %uint_0 + OpStore %17 %uint_1 None OpBranch %11 %11 = OpLabel - OpSelectionMerge %19 None - OpBranchConditional %false %20 %19 - %20 = OpLabel + OpSelectionMerge %15 None + OpBranchConditional %false %16 %15 + %16 = OpLabel %21 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 %uint_1 OpStore %21 %uint_1 None - OpBranch %19 - %19 = OpLabel + OpBranch %15 + %15 = OpLabel OpReturn OpFunctionEnd
diff --git a/test/tint/bug/tint/2039.wgsl.expected.spvasm b/test/tint/bug/tint/2039.wgsl.expected.spvasm index a3ee1f9..a9e290c1 100644 --- a/test/tint/bug/tint/2039.wgsl.expected.spvasm +++ b/test/tint/bug/tint/2039.wgsl.expected.spvasm
@@ -51,10 +51,10 @@ %25 = OpLabel OpSelectionMerge %31 None OpSwitch %int_2 %27 1 %30 - %30 = OpLabel - OpBranch %11 %27 = OpLabel OpBranch %31 + %30 = OpLabel + OpBranch %11 %31 = OpLabel %32 = OpLoad %uint %out None %33 = OpIAdd %uint %32 %uint_1
diff --git a/test/tint/bug/tint/2054.wgsl.expected.spvasm b/test/tint/bug/tint/2054.wgsl.expected.spvasm index 81b02d1..a4e36f1 100644 --- a/test/tint/bug/tint/2054.wgsl.expected.spvasm +++ b/test/tint/bug/tint/2054.wgsl.expected.spvasm
@@ -45,12 +45,12 @@ OpSelectionMerge %16 None OpBranchConditional %13 %17 %18 %17 = OpLabel - %19 = OpFOrdGreaterThanEqual %bool %b %float_0 + %20 = OpFOrdGreaterThanEqual %bool %b %float_0 OpBranch %16 %18 = OpLabel OpBranch %16 %16 = OpLabel - %cond = OpPhi %bool %19 %17 %false %18 + %cond = OpPhi %bool %20 %17 %false %18 %22 = OpSelect %float %cond %b %a OpStore %p_root %22 None OpReturn
diff --git a/test/tint/bug/tint/2059.wgsl.expected.spvasm b/test/tint/bug/tint/2059.wgsl.expected.spvasm index a377ef1..883c764 100644 --- a/test/tint/bug/tint/2059.wgsl.expected.spvasm +++ b/test/tint/bug/tint/2059.wgsl.expected.spvasm
@@ -4,7 +4,7 @@ ; Bound: 377 ; Schema: 0 OpCapability Shader - %60 = OpExtInstImport "GLSL.std.450" + %103 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint GLCompute %main "main" OpExecutionMode %main LocalSize 1 1 1 @@ -34,7 +34,6 @@ OpName %buffer7_block_tint_explicit_layout "buffer7_block_tint_explicit_layout" OpName %main "main" OpName %m "m" - OpName %c "c" OpName %a "a" OpName %a_0 "a" OpMemberName %S2 0 "m" @@ -47,6 +46,7 @@ OpName %a_4 "a" OpName %a_5 "a" OpName %a_6 "a" + OpName %c "c" OpName %tint_store_and_preserve_padding "tint_store_and_preserve_padding" OpName %value_param "value_param" OpName %tint_store_and_preserve_padding_0 "tint_store_and_preserve_padding" @@ -195,17 +195,17 @@ %39 = OpTypeFunction %void %_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float %43 = OpConstantNull %mat3v3float +%_arr_mat3v3float_uint_1_0 = OpTypeArray %mat3v3float %uint_1 + %S2 = OpTypeStruct %_arr_mat3v3float_uint_1_0 +%_arr_S_uint_1_0 = OpTypeArray %S %uint_1 + %S4 = OpTypeStruct %_arr_S_uint_1_0 +%_arr_S2_uint_1 = OpTypeArray %S2 %uint_1 %_ptr_Function_uint = OpTypePointer Function %uint %uint_0 = OpConstant %uint 0 %uint_3 = OpConstant %uint 3 %bool = OpTypeBool %uint_2 = OpConstant %uint 2 %_ptr_Function_v3float = OpTypePointer Function %v3float -%_arr_mat3v3float_uint_1_0 = OpTypeArray %mat3v3float %uint_1 - %S2 = OpTypeStruct %_arr_mat3v3float_uint_1_0 -%_arr_S_uint_1_0 = OpTypeArray %S %uint_1 - %S4 = OpTypeStruct %_arr_S_uint_1_0 -%_arr_S2_uint_1 = OpTypeArray %S2 %uint_1 %123 = OpTypeFunction %void %mat3v3float %_ptr_StorageBuffer_v3float = OpTypePointer StorageBuffer %v3float %_arr_uint_uint_2 = OpTypeArray %uint %uint_2 @@ -239,67 +239,67 @@ OpLoopMerge %48 %46 None OpBranch %45 %45 = OpLabel - %52 = OpLoad %uint %c None - %53 = OpULessThan %bool %52 %uint_3 - OpSelectionMerge %56 None - OpBranchConditional %53 %56 %57 - %57 = OpLabel + %95 = OpLoad %uint %c None + %96 = OpULessThan %bool %95 %uint_3 + OpSelectionMerge %99 None + OpBranchConditional %96 %99 %100 + %100 = OpLabel OpBranch %48 - %56 = OpLabel - %58 = OpLoad %uint %c None - %59 = OpExtInst %uint %60 UMin %58 %uint_2 - %62 = OpAccessChain %_ptr_Function_v3float %m %59 - %64 = OpLoad %uint %c None - %65 = OpIMul %uint %64 %uint_3 - %66 = OpIAdd %uint %65 %uint_1 - %67 = OpConvertUToF %float %66 - %68 = OpLoad %uint %c None - %69 = OpIMul %uint %68 %uint_3 - %70 = OpIAdd %uint %69 %uint_2 - %71 = OpConvertUToF %float %70 - %72 = OpLoad %uint %c None - %73 = OpIMul %uint %72 %uint_3 - %74 = OpIAdd %uint %73 %uint_3 - %75 = OpConvertUToF %float %74 - %76 = OpCompositeConstruct %v3float %67 %71 %75 - OpStore %62 %76 None + %99 = OpLabel + %101 = OpLoad %uint %c None + %102 = OpExtInst %uint %103 UMin %101 %uint_2 + %105 = OpAccessChain %_ptr_Function_v3float %m %102 + %107 = OpLoad %uint %c None + %108 = OpIMul %uint %107 %uint_3 + %109 = OpIAdd %uint %108 %uint_1 + %110 = OpConvertUToF %float %109 + %111 = OpLoad %uint %c None + %112 = OpIMul %uint %111 %uint_3 + %113 = OpIAdd %uint %112 %uint_2 + %114 = OpConvertUToF %float %113 + %115 = OpLoad %uint %c None + %116 = OpIMul %uint %115 %uint_3 + %117 = OpIAdd %uint %116 %uint_3 + %118 = OpConvertUToF %float %117 + %119 = OpCompositeConstruct %v3float %110 %114 %118 + OpStore %105 %119 None OpBranch %46 %46 = OpLabel - %77 = OpLoad %uint %c None - %78 = OpIAdd %uint %77 %uint_1 - OpStore %c %78 None + %120 = OpLoad %uint %c None + %121 = OpIAdd %uint %120 %uint_1 + OpStore %c %121 None OpBranch %47 %48 = OpLabel %a = OpLoad %mat3v3float %m None - %80 = OpFunctionCall %void %tint_store_and_preserve_padding %a - %82 = OpLoad %mat3v3float %m None - %a_0 = OpCompositeConstruct %S %82 - %84 = OpFunctionCall %void %tint_store_and_preserve_padding_7 %a_0 - %86 = OpLoad %mat3v3float %m None - %88 = OpCompositeConstruct %_arr_mat3v3float_uint_1_0 %86 - %a_1 = OpCompositeConstruct %S2 %88 - %91 = OpFunctionCall %void %tint_store_and_preserve_padding_11 %a_1 - %93 = OpLoad %mat3v3float %m None - %94 = OpCompositeConstruct %S %93 - %a_2 = OpCompositeConstruct %S3 %94 - %96 = OpFunctionCall %void %tint_store_and_preserve_padding_16 %a_2 - %98 = OpLoad %mat3v3float %m None - %99 = OpCompositeConstruct %S %98 - %101 = OpCompositeConstruct %_arr_S_uint_1_0 %99 - %a_3 = OpCompositeConstruct %S4 %101 - %104 = OpFunctionCall %void %tint_store_and_preserve_padding_17 %a_3 - %106 = OpLoad %mat3v3float %m None - %a_4 = OpCompositeConstruct %_arr_mat3v3float_uint_1_0 %106 - %108 = OpFunctionCall %void %tint_store_and_preserve_padding_13 %a_4 - %110 = OpLoad %mat3v3float %m None - %111 = OpCompositeConstruct %S %110 - %a_5 = OpCompositeConstruct %_arr_S_uint_1_0 %111 - %113 = OpFunctionCall %void %tint_store_and_preserve_padding_18 %a_5 - %115 = OpLoad %mat3v3float %m None - %116 = OpCompositeConstruct %_arr_mat3v3float_uint_1_0 %115 - %117 = OpCompositeConstruct %S2 %116 - %a_6 = OpCompositeConstruct %_arr_S2_uint_1 %117 - %120 = OpFunctionCall %void %tint_store_and_preserve_padding_20 %a_6 + %50 = OpFunctionCall %void %tint_store_and_preserve_padding %a + %52 = OpLoad %mat3v3float %m None + %a_0 = OpCompositeConstruct %S %52 + %54 = OpFunctionCall %void %tint_store_and_preserve_padding_7 %a_0 + %56 = OpLoad %mat3v3float %m None + %58 = OpCompositeConstruct %_arr_mat3v3float_uint_1_0 %56 + %a_1 = OpCompositeConstruct %S2 %58 + %61 = OpFunctionCall %void %tint_store_and_preserve_padding_11 %a_1 + %63 = OpLoad %mat3v3float %m None + %64 = OpCompositeConstruct %S %63 + %a_2 = OpCompositeConstruct %S3 %64 + %66 = OpFunctionCall %void %tint_store_and_preserve_padding_16 %a_2 + %68 = OpLoad %mat3v3float %m None + %69 = OpCompositeConstruct %S %68 + %71 = OpCompositeConstruct %_arr_S_uint_1_0 %69 + %a_3 = OpCompositeConstruct %S4 %71 + %74 = OpFunctionCall %void %tint_store_and_preserve_padding_17 %a_3 + %76 = OpLoad %mat3v3float %m None + %a_4 = OpCompositeConstruct %_arr_mat3v3float_uint_1_0 %76 + %78 = OpFunctionCall %void %tint_store_and_preserve_padding_13 %a_4 + %80 = OpLoad %mat3v3float %m None + %81 = OpCompositeConstruct %S %80 + %a_5 = OpCompositeConstruct %_arr_S_uint_1_0 %81 + %83 = OpFunctionCall %void %tint_store_and_preserve_padding_18 %a_5 + %85 = OpLoad %mat3v3float %m None + %86 = OpCompositeConstruct %_arr_mat3v3float_uint_1_0 %85 + %87 = OpCompositeConstruct %S2 %86 + %a_6 = OpCompositeConstruct %_arr_S2_uint_1 %87 + %90 = OpFunctionCall %void %tint_store_and_preserve_padding_20 %a_6 OpReturn OpFunctionEnd %tint_store_and_preserve_padding = OpFunction %void None %123
diff --git a/test/tint/bug/tint/2063.wgsl.expected.spvasm b/test/tint/bug/tint/2063.wgsl.expected.spvasm index 69355b5..c4bff0d 100644 --- a/test/tint/bug/tint/2063.wgsl.expected.spvasm +++ b/test/tint/bug/tint/2063.wgsl.expected.spvasm
@@ -25,11 +25,11 @@ %uint_1 = OpConstant %uint 1 %bool = OpTypeBool %uint_2 = OpConstant %uint 2 - %uint_0 = OpConstant %uint 0 - %int_0 = OpConstant %int 0 %uint_264 = OpConstant %uint 264 + %uint_0 = OpConstant %uint 0 %int_n1 = OpConstant %int -1 %_ptr_Function_int = OpTypePointer Function %int + %int_0 = OpConstant %int 0 %28 = OpTypeFunction %void %compute_main_inner = OpFunction %void None %10 %tint_local_index = OpFunctionParameter %uint @@ -43,8 +43,8 @@ OpBranch %15 %15 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %23 = OpAtomicISub %int %arg_0 %uint_2 %uint_0 %int_n1 - OpStore %res %23 + %20 = OpAtomicISub %int %arg_0 %uint_2 %uint_0 %int_n1 + OpStore %res %20 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %28
diff --git a/test/tint/bug/tint/2147.wgsl.expected.spvasm b/test/tint/bug/tint/2147.wgsl.expected.spvasm index fb6c06c..0ca63fc 100644 --- a/test/tint/bug/tint/2147.wgsl.expected.spvasm +++ b/test/tint/bug/tint/2147.wgsl.expected.spvasm
@@ -40,11 +40,11 @@ %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int %uint = OpTypeInt 32 0 %uint_0 = OpConstant %uint 0 +%__atomic_compare_exchange_result_i32 = OpTypeStruct %int %bool + %30 = OpUndef %__atomic_compare_exchange_result_i32 %uint_1 = OpConstant %uint 1 %int_1 = OpConstant %int 1 %int_0 = OpConstant %int 0 -%__atomic_compare_exchange_result_i32 = OpTypeStruct %int %bool - %35 = OpUndef %__atomic_compare_exchange_result_i32 %void = OpTypeVoid %45 = OpTypeFunction %void %main_inner = OpFunction %v4float None %14 @@ -60,25 +60,25 @@ OpSelectionMerge %24 None OpBranchConditional %23 %25 %26 %25 = OpLabel - %27 = OpAtomicCompareExchange %int %19 %uint_1 %uint_0 %uint_0 %int_1 %int_0 - %31 = OpIEqual %bool %27 %int_0 - %33 = OpCompositeConstruct %__atomic_compare_exchange_result_i32 %27 %31 + %38 = OpAtomicCompareExchange %int %19 %uint_1 %uint_0 %uint_0 %int_1 %int_0 + %42 = OpIEqual %bool %38 %int_0 + %29 = OpCompositeConstruct %__atomic_compare_exchange_result_i32 %38 %42 OpBranch %24 %26 = OpLabel OpBranch %24 %24 = OpLabel - %34 = OpPhi %__atomic_compare_exchange_result_i32 %33 %25 %35 %26 - %old_value = OpCompositeExtract %int %34 0 - %37 = OpConvertSToF %float %old_value - %38 = OpCompositeConstruct %v4float %37 %37 %37 %37 - %39 = OpLoad %bool %continue_execution None - %40 = OpLogicalNot %bool %39 - OpSelectionMerge %41 None - OpBranchConditional %40 %42 %41 - %42 = OpLabel + %28 = OpPhi %__atomic_compare_exchange_result_i32 %29 %25 %30 %26 + %old_value = OpCompositeExtract %int %28 0 + %32 = OpConvertSToF %float %old_value + %33 = OpCompositeConstruct %v4float %32 %32 %32 %32 + %34 = OpLoad %bool %continue_execution None + %35 = OpLogicalNot %bool %34 + OpSelectionMerge %36 None + OpBranchConditional %35 %37 %36 + %37 = OpLabel OpKill - %41 = OpLabel - OpReturnValue %38 + %36 = OpLabel + OpReturnValue %33 OpFunctionEnd %main = OpFunction %void None %45 %46 = OpLabel
diff --git a/test/tint/bug/tint/2202.wgsl.expected.spvasm b/test/tint/bug/tint/2202.wgsl.expected.spvasm index 1ea4ac0..8e97891 100644 --- a/test/tint/bug/tint/2202.wgsl.expected.spvasm +++ b/test/tint/bug/tint/2202.wgsl.expected.spvasm
@@ -13,11 +13,11 @@ OpExecutionMode %main LocalSize 1 1 1 OpName %main "main" OpName %tint_loop_idx "tint_loop_idx" + OpName %tint_low_inc "tint_low_inc" + OpName %tint_carry "tint_carry" OpName %tint_loop_idx_0 "tint_loop_idx" OpName %tint_low_inc_1 "tint_low_inc_1" OpName %tint_carry_1 "tint_carry_1" - OpName %tint_low_inc "tint_low_inc" - OpName %tint_carry "tint_carry" %void = OpTypeVoid %3 = OpTypeFunction %void %uint = OpTypeInt 32 0 @@ -59,44 +59,44 @@ OpLoopMerge %28 %26 None OpBranch %25 %25 = OpLabel - %30 = OpLoad %v2uint %tint_loop_idx_0 None - %31 = OpIEqual %v2bool %30 %18 - %32 = OpAll %bool %31 - OpSelectionMerge %33 None - OpBranchConditional %32 %34 %33 - %34 = OpLabel + %43 = OpLoad %v2uint %tint_loop_idx_0 None + %44 = OpIEqual %v2bool %43 %18 + %45 = OpAll %bool %44 + OpSelectionMerge %46 None + OpBranchConditional %45 %47 %46 + %47 = OpLabel OpBranch %28 - %33 = OpLabel + %46 = OpLabel OpReturn %26 = OpLabel - %35 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - %38 = OpLoad %uint %35 None -%tint_low_inc_1 = OpISub %uint %38 %uint_1 - %41 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - OpStore %41 %tint_low_inc_1 None - %42 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 -%tint_carry_1 = OpSelect %uint %42 %uint_1 %uint_0 - %44 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - %45 = OpLoad %uint %44 None - %46 = OpISub %uint %45 %tint_carry_1 - %47 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - OpStore %47 %46 None + %48 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + %49 = OpLoad %uint %48 None +%tint_low_inc_1 = OpISub %uint %49 %uint_1 + %51 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + OpStore %51 %tint_low_inc_1 None + %52 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 +%tint_carry_1 = OpSelect %uint %52 %uint_1 %uint_0 + %54 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + %55 = OpLoad %uint %54 None + %56 = OpISub %uint %55 %tint_carry_1 + %57 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + OpStore %57 %56 None OpBranch %27 %28 = OpLabel OpUnreachable %7 = OpLabel - %48 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %49 = OpLoad %uint %48 None -%tint_low_inc = OpISub %uint %49 %uint_1 - %51 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %51 %tint_low_inc None - %52 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %52 %uint_1 %uint_0 - %54 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %55 = OpLoad %uint %54 None - %56 = OpISub %uint %55 %tint_carry - %57 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %57 %56 None + %29 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %32 = OpLoad %uint %29 None +%tint_low_inc = OpISub %uint %32 %uint_1 + %35 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %35 %tint_low_inc None + %36 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %36 %uint_1 %uint_0 + %38 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %39 = OpLoad %uint %38 None + %40 = OpISub %uint %39 %tint_carry + %41 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %41 %40 None OpBranch %8 %9 = OpLabel OpReturn
diff --git a/test/tint/bug/tint/349310442.wgsl.expected.spvasm b/test/tint/bug/tint/349310442.wgsl.expected.spvasm index ef0ba3d..3bb856c 100644 --- a/test/tint/bug/tint/349310442.wgsl.expected.spvasm +++ b/test/tint/bug/tint/349310442.wgsl.expected.spvasm
@@ -182,40 +182,40 @@ OpSelectionMerge %68 None OpBranchConditional %66 %69 %70 %69 = OpLabel - %71 = OpImageFetch %v4float %plane_0 %64 Lod %uint_0 - %72 = OpVectorShuffle %v3float %71 %71 0 1 2 - %73 = OpCompositeExtract %float %71 3 + %83 = OpImageFetch %v4float %plane_0 %64 Lod %uint_0 + %72 = OpVectorShuffle %v3float %83 %83 0 1 2 + %75 = OpCompositeExtract %float %83 3 OpBranch %68 %70 = OpLabel - %74 = OpImageFetch %v4float %plane_0 %64 Lod %uint_0 - %75 = OpCompositeExtract %float %74 0 - %76 = OpFMul %v2float %63 %57 - %77 = OpConvertFToU %v2uint %76 - %78 = OpImageFetch %v4float %plane_1 %77 Lod %uint_0 - %79 = OpVectorShuffle %v2float %78 %78 0 1 - %80 = OpCompositeConstruct %v4float %75 %79 %float_1 - %81 = OpVectorTimesMatrix %v3float %80 %54 + %84 = OpImageFetch %v4float %plane_0 %64 Lod %uint_0 + %85 = OpCompositeExtract %float %84 0 + %86 = OpFMul %v2float %63 %57 + %87 = OpConvertFToU %v2uint %86 + %88 = OpImageFetch %v4float %plane_1 %87 Lod %uint_0 + %89 = OpVectorShuffle %v2float %88 %88 0 1 + %90 = OpCompositeConstruct %v4float %85 %89 %float_1 + %73 = OpVectorTimesMatrix %v3float %90 %54 OpBranch %68 %68 = OpLabel - %82 = OpPhi %v3float %72 %69 %81 %70 - %83 = OpPhi %float %73 %69 %float_1 %70 - %84 = OpIEqual %bool %53 %uint_0 - OpSelectionMerge %85 None - OpBranchConditional %84 %86 %87 - %86 = OpLabel - %88 = OpCompositeExtract %tint_GammaTransferParams %params 3 - %89 = OpCompositeExtract %tint_GammaTransferParams %params 4 - %90 = OpCompositeExtract %mat3v3float %params 5 - %91 = OpFunctionCall %v3float %tint_GammaCorrection %82 %88 - %93 = OpMatrixTimesVector %v3float %90 %91 - %94 = OpFunctionCall %v3float %tint_GammaCorrection %93 %89 - OpBranch %85 - %87 = OpLabel - OpBranch %85 - %85 = OpLabel - %95 = OpPhi %v3float %94 %86 %82 %87 - %96 = OpCompositeConstruct %v4float %95 %83 - OpReturnValue %96 + %71 = OpPhi %v3float %72 %69 %73 %70 + %74 = OpPhi %float %75 %69 %float_1 %70 + %76 = OpIEqual %bool %53 %uint_0 + OpSelectionMerge %77 None + OpBranchConditional %76 %78 %79 + %78 = OpLabel + %91 = OpCompositeExtract %tint_GammaTransferParams %params 3 + %92 = OpCompositeExtract %tint_GammaTransferParams %params 4 + %93 = OpCompositeExtract %mat3v3float %params 5 + %94 = OpFunctionCall %v3float %tint_GammaCorrection %71 %91 + %96 = OpMatrixTimesVector %v3float %93 %94 + %81 = OpFunctionCall %v3float %tint_GammaCorrection %96 %92 + OpBranch %77 + %79 = OpLabel + OpBranch %77 + %77 = OpLabel + %80 = OpPhi %v3float %81 %78 %71 %79 + %82 = OpCompositeConstruct %v4float %80 %74 + OpReturnValue %82 OpFunctionEnd %tint_GammaCorrection = OpFunction %v3float None %99 %v = OpFunctionParameter %v3float
diff --git a/test/tint/bug/tint/354627692.wgsl.expected.spvasm b/test/tint/bug/tint/354627692.wgsl.expected.spvasm index db1773d..25006b3 100644 --- a/test/tint/bug/tint/354627692.wgsl.expected.spvasm +++ b/test/tint/bug/tint/354627692.wgsl.expected.spvasm
@@ -35,15 +35,15 @@ %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %24 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %28 = OpConstantNull %v2uint + %26 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %30 = OpConstantNull %v2uint %bool = OpTypeBool %v2bool = OpTypeVector %bool 2 %_ptr_Function_uint = OpTypePointer Function %uint %uint_1 = OpConstant %uint 1 + %int_10 = OpConstant %int 10 %int_5 = OpConstant %int 5 %int_2 = OpConstant %int 2 - %int_10 = OpConstant %int 10 %main = OpFunction %void None %7 %8 = OpLabel %i = OpVariable %_ptr_Function_int Function @@ -54,67 +54,67 @@ OpStore %i %13 OpBranch %16 %16 = OpLabel - OpStore %tint_loop_idx %24 + OpStore %tint_loop_idx %26 OpBranch %19 %19 = OpLabel OpLoopMerge %20 %18 None OpBranch %17 %17 = OpLabel - %26 = OpLoad %v2uint %tint_loop_idx None - %27 = OpIEqual %v2bool %26 %28 - %31 = OpAll %bool %27 - OpSelectionMerge %32 None - OpBranchConditional %31 %33 %32 - %33 = OpLabel + %28 = OpLoad %v2uint %tint_loop_idx None + %29 = OpIEqual %v2bool %28 %30 + %33 = OpAll %bool %29 + OpSelectionMerge %34 None + OpBranchConditional %33 %35 %34 + %35 = OpLabel OpBranch %20 - %32 = OpLabel + %34 = OpLabel OpBranch %18 %18 = OpLabel - %34 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %36 = OpLoad %uint %34 None -%tint_low_inc = OpISub %uint %36 %uint_1 - %39 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %39 %tint_low_inc None - %40 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %40 %uint_1 %uint_0 - %42 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %43 = OpLoad %uint %42 None - %44 = OpISub %uint %43 %tint_carry - %45 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %45 %44 None - OpBranch %46 - %46 = OpLabel - OpStore %tint_loop_idx_0 %24 + %36 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %38 = OpLoad %uint %36 None +%tint_low_inc = OpISub %uint %38 %uint_1 + %41 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %41 %tint_low_inc None + %42 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %42 %uint_1 %uint_0 + %44 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %45 = OpLoad %uint %44 None + %46 = OpISub %uint %45 %tint_carry + %47 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %47 %46 None + OpBranch %48 + %48 = OpLabel + OpStore %tint_loop_idx_0 %26 + OpBranch %51 + %51 = OpLabel + OpLoopMerge %52 %50 None OpBranch %49 %49 = OpLabel - OpLoopMerge %50 %48 None - OpBranch %47 - %47 = OpLabel - %52 = OpLoad %v2uint %tint_loop_idx_0 None - %53 = OpIEqual %v2bool %52 %28 - %54 = OpAll %bool %53 - OpSelectionMerge %55 None - OpBranchConditional %54 %56 %55 - %56 = OpLabel - OpBranch %50 - %55 = OpLabel - %57 = OpLoad %int %i None - %58 = OpSGreaterThan %bool %57 %int_5 + %57 = OpLoad %v2uint %tint_loop_idx_0 None + %58 = OpIEqual %v2bool %57 %30 + %59 = OpAll %bool %58 OpSelectionMerge %60 None - OpBranchConditional %58 %61 %62 + OpBranchConditional %59 %61 %60 %61 = OpLabel - %63 = OpLoad %int %i None - %64 = OpIMul %int %63 %int_2 - OpStore %i %64 None - OpBranch %50 - %62 = OpLabel - %66 = OpLoad %int %i None - %67 = OpIMul %int %66 %int_2 - OpStore %i %67 None - OpBranch %50 + OpBranch %52 %60 = OpLabel - OpBranch %50 - %48 = OpLabel + %62 = OpLoad %int %i None + %63 = OpSGreaterThan %bool %62 %int_5 + OpSelectionMerge %65 None + OpBranchConditional %63 %66 %67 + %66 = OpLabel + %78 = OpLoad %int %i None + %79 = OpIMul %int %78 %int_2 + OpStore %i %79 None + OpBranch %52 + %67 = OpLabel + %81 = OpLoad %int %i None + %82 = OpIMul %int %81 %int_2 + OpStore %i %82 None + OpBranch %52 + %65 = OpLabel + OpBranch %52 + %50 = OpLabel %68 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 %69 = OpLoad %uint %68 None %tint_low_inc_1 = OpISub %uint %69 %uint_1 @@ -127,14 +127,14 @@ %76 = OpISub %uint %75 %tint_carry_1 %77 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 OpStore %77 %76 None - OpBranch %49 - %50 = OpLabel - %78 = OpLoad %int %i None - %79 = OpSGreaterThan %bool %78 %int_10 - OpBranchConditional %79 %20 %19 + OpBranch %51 + %52 = OpLabel + %53 = OpLoad %int %i None + %54 = OpSGreaterThan %bool %53 %int_10 + OpBranchConditional %54 %20 %19 %20 = OpLabel - %81 = OpLoad %int %i None - %82 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 - OpStore %82 %81 None + %21 = OpLoad %int %i None + %22 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 + OpStore %22 %21 None OpReturn OpFunctionEnd
diff --git a/test/tint/bug/tint/366037039.wgsl.expected.spvasm b/test/tint/bug/tint/366037039.wgsl.expected.spvasm index 9e6ec20..8ddd53b 100644 --- a/test/tint/bug/tint/366037039.wgsl.expected.spvasm +++ b/test/tint/bug/tint/366037039.wgsl.expected.spvasm
@@ -167,21 +167,21 @@ OpLoopMerge %92 %90 None OpBranch %89 %89 = OpLabel - %95 = OpUGreaterThanEqual %bool %93 %uint_4 - OpSelectionMerge %96 None - OpBranchConditional %95 %97 %96 - %97 = OpLabel + %96 = OpUGreaterThanEqual %bool %93 %uint_4 + OpSelectionMerge %97 None + OpBranchConditional %96 %98 %97 + %98 = OpLabel OpBranch %92 - %96 = OpLabel - %98 = OpAccessChain %_ptr_Function_v3uint %84 %93 - %99 = OpLoad %v3uint %98 None - %100 = OpAccessChain %_ptr_Function_v3uint %86 %93 - OpStore %100 %99 None + %97 = OpLabel + %99 = OpAccessChain %_ptr_Function_v3uint %84 %93 + %100 = OpLoad %v3uint %99 None + %101 = OpAccessChain %_ptr_Function_v3uint %86 %93 + OpStore %101 %100 None OpBranch %90 %90 = OpLabel %94 = OpIAdd %uint %93 %uint_1 OpBranch %91 %92 = OpLabel - %101 = OpLoad %_arr_v3uint_uint_4_0 %86 None - OpReturnValue %101 + %95 = OpLoad %_arr_v3uint_uint_4_0 %86 None + OpReturnValue %95 OpFunctionEnd
diff --git a/test/tint/bug/tint/366314931.wgsl.expected.spvasm b/test/tint/bug/tint/366314931.wgsl.expected.spvasm index 67e9d5e..4a1c236 100644 --- a/test/tint/bug/tint/366314931.wgsl.expected.spvasm +++ b/test/tint/bug/tint/366314931.wgsl.expected.spvasm
@@ -44,13 +44,13 @@ %15 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool -%_ptr_Workgroup_v3uint = OpTypePointer Workgroup %v3uint - %uint_0 = OpConstant %uint 0 - %25 = OpConstantNull %v3uint -%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 +%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint + %uint_0 = OpConstant %uint 0 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint +%_ptr_Workgroup_v3uint = OpTypePointer Workgroup %v3uint + %34 = OpConstantNull %v3uint %38 = OpTypeFunction %void %main_inner = OpFunction %void None %15 %tint_local_index = OpFunctionParameter %uint @@ -59,17 +59,17 @@ OpSelectionMerge %20 None OpBranchConditional %17 %21 %20 %21 = OpLabel - %22 = OpAccessChain %_ptr_Workgroup_v3uint %wgvar %uint_0 - OpStore %22 %25 None - %26 = OpAccessChain %_ptr_Workgroup_uint %wgvar %uint_1 - OpAtomicStore %26 %uint_2 %uint_0 %uint_0 + %32 = OpAccessChain %_ptr_Workgroup_v3uint %wgvar %uint_0 + OpStore %32 %34 None + %35 = OpAccessChain %_ptr_Workgroup_uint %wgvar %uint_1 + OpAtomicStore %35 %uint_2 %uint_0 %uint_0 OpBranch %20 %20 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %32 = OpAccessChain %_ptr_Workgroup_uint %wgvar %uint_1 - %x = OpAtomicLoad %uint %32 %uint_2 %uint_0 - %34 = OpAccessChain %_ptr_StorageBuffer_uint %6 %uint_0 %uint_1 - OpAtomicStore %34 %uint_1 %uint_0 %x + %25 = OpAccessChain %_ptr_Workgroup_uint %wgvar %uint_1 + %x = OpAtomicLoad %uint %25 %uint_2 %uint_0 + %29 = OpAccessChain %_ptr_StorageBuffer_uint %6 %uint_0 %uint_1 + OpAtomicStore %29 %uint_1 %uint_0 %x OpReturn OpFunctionEnd %main = OpFunction %void None %38
diff --git a/test/tint/bug/tint/379127084.wgsl.expected.spvasm b/test/tint/bug/tint/379127084.wgsl.expected.spvasm index 4da2c07..ca49b14 100644 --- a/test/tint/bug/tint/379127084.wgsl.expected.spvasm +++ b/test/tint/bug/tint/379127084.wgsl.expected.spvasm
@@ -43,14 +43,41 @@ OpName %_59_m "_59_m" OpName %_60_n "_60_n" OpName %_61_o "_61_o" + OpName %_skTemp15 "_skTemp15" + OpName %_skTemp16 "_skTemp16" + OpName %_skTemp17 "_skTemp17" + OpName %_84_a "_84_a" + OpName %_85_d "_85_d" + OpName %_94_f "_94_f" + OpName %outColor_0 "outColor_0" OpName %tint_loop_idx "tint_loop_idx" + OpName %_skTemp18 "_skTemp18" + OpName %_86_e "_86_e" + OpName %_skTemp19 "_skTemp19" + OpName %_87_f "_87_f" + OpName %_88_h "_88_h" + OpName %_skTemp20 "_skTemp20" + OpName %_89_i "_89_i" + OpName %_90_j "_90_j" + OpName %_skTemp21 "_skTemp21" + OpName %_skTemp21 "_91_k" + OpName %_skTemp22 "_skTemp22" + OpName %_92_l "_92_l" + OpName %_93_m "_93_m" + OpName %_skTemp23 "_skTemp23" + OpName %_skTemp24 "_skTemp24" + OpName %_95_b "_95_b" + OpName %_96_c "_96_c" + OpName %_skTemp25 "_skTemp25" + OpName %_skTemp26 "_skTemp26" + OpName %_skTemp27 "_skTemp27" + OpName %_skTemp27 "_97_d" + OpName %_skTemp28 "_skTemp28" OpName %_62_f "_62_f" OpName %_skTemp2 "_skTemp2" - OpName %_skTemp3 "_skTemp3" OpName %_63_g "_63_g" OpName %_64_h "_64_h" OpName %_65_i "_65_i" - OpName %_skTemp4 "_skTemp4" OpName %_66_j "_66_j" OpName %_67_p "_67_p" OpName %_skTemp5 "_skTemp5" @@ -59,6 +86,11 @@ OpName %_skTemp6 "_69_e" OpName %_71_g "_71_g" OpName %_72_h "_72_h" + OpName %_83_q "_83_q" + OpName %_skTemp29 "_skTemp29" + OpName %_skTemp30 "_skTemp30" + OpName %_skTemp3 "_skTemp3" + OpName %_skTemp4 "_skTemp4" OpName %tint_loop_idx_0 "tint_loop_idx" OpName %_73_i "_73_i" OpName %_74_j "_74_j" @@ -77,39 +109,7 @@ OpName %_skTemp12 "_skTemp12" OpName %_skTemp12 "_82_r" OpName %_skTemp13 "_skTemp13" - OpName %_83_q "_83_q" OpName %_skTemp14 "_skTemp14" - OpName %_skTemp15 "_skTemp15" - OpName %_skTemp16 "_skTemp16" - OpName %_skTemp17 "_skTemp17" - OpName %_84_a "_84_a" - OpName %_85_d "_85_d" - OpName %_skTemp18 "_skTemp18" - OpName %_86_e "_86_e" - OpName %_skTemp19 "_skTemp19" - OpName %_87_f "_87_f" - OpName %_88_h "_88_h" - OpName %_skTemp20 "_skTemp20" - OpName %_89_i "_89_i" - OpName %_90_j "_90_j" - OpName %_skTemp21 "_skTemp21" - OpName %_skTemp21 "_91_k" - OpName %_skTemp22 "_skTemp22" - OpName %_92_l "_92_l" - OpName %_93_m "_93_m" - OpName %_skTemp23 "_skTemp23" - OpName %_94_f "_94_f" - OpName %_skTemp24 "_skTemp24" - OpName %_95_b "_95_b" - OpName %_96_c "_96_c" - OpName %_skTemp25 "_skTemp25" - OpName %_skTemp26 "_skTemp26" - OpName %_skTemp27 "_skTemp27" - OpName %_skTemp27 "_97_d" - OpName %_skTemp28 "_skTemp28" - OpName %_skTemp29 "_skTemp29" - OpName %_skTemp30 "_skTemp30" - OpName %outColor_0 "outColor_0" OpName %main_inner "main_inner" OpName %_stageIn_0 "_stageIn" OpName %_stageOut "_stageOut" @@ -191,61 +191,61 @@ %float_1 = OpConstant %float 1 %_ptr_Function_int = OpTypePointer Function %int %int_0 = OpConstant %int 0 -%_ptr_Function_v2uint = OpTypePointer Function %v2uint -%uint_4294967295 = OpConstant %uint 4294967295 - %92 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %96 = OpConstantNull %v2uint %bool = OpTypeBool - %v2bool = OpTypeVector %bool 2 - %uint_3 = OpConstant %uint 3 - %126 = OpConstantComposite %v2float %float_1 %float_1 - %uint_4 = OpConstant %uint 4 - %137 = OpConstantNull %int -%float_0_00390625 = OpConstant %float 0.00390625 -%float_n0_474999994 = OpConstant %float -0.474999994 - %float_n16 = OpConstant %float -16 -%float_15_9899998 = OpConstant %float 15.9899998 - %162 = OpTypeSampledImage %20 - %false = OpConstantFalse %bool - %float_255 = OpConstant %float 255 - %183 = OpConstantComposite %v2float %float_255 %float_255 - %186 = OpConstantComposite %v2float %float_0_5 %float_0_5 -%float_0_00392156886 = OpConstant %float 0.00392156886 - %189 = OpConstantComposite %v2float %float_0_00392156886 %float_0_00392156886 - %float_256 = OpConstant %float 256 - %201 = OpConstantComposite %v4float %float_0_00390625 %float_0_00390625 %float_0_00390625 %float_0_00390625 - %206 = OpConstantNull %v2float - %float_2 = OpConstant %float 2 - %211 = OpConstantComposite %v2float %float_2 %float_2 - %float_3 = OpConstant %float 3 - %214 = OpConstantComposite %v2float %float_3 %float_3 - %float_0_25 = OpConstant %float 0.25 -%_ptr_Function_uint = OpTypePointer Function %uint - %int_1 = OpConstant %int 1 - %int_4 = OpConstant %int 4 - %381 = OpConstantComposite %v4float %float_0_5 %float_0_5 %float_0_5 %float_0_5 - %385 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 + %96 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 %v3float = OpTypeVector %float 3 + %uint_3 = OpConstant %uint 3 %float_0_212599993 = OpConstant %float 0.212599993 %float_0_715200007 = OpConstant %float 0.715200007 %float_0_0722000003 = OpConstant %float 0.0722000003 - %397 = OpConstantComposite %v3float %float_0_212599993 %float_0_715200007 %float_0_0722000003 + %109 = OpConstantComposite %v3float %float_0_212599993 %float_0_715200007 %float_0_0722000003 %float_0 = OpConstant %float 0 %uint_7 = OpConstant %uint 7 - %float_n1 = OpConstant %float -1 -%float_0_666666687 = OpConstant %float 0.666666687 -%float_n0_333333343 = OpConstant %float -0.333333343 - %float_6 = OpConstant %float 6 -%float_9_99999975en05 = OpConstant %float 9.99999975e-05 + %126 = OpConstantNull %int %_ptr_StorageBuffer_mat4v4float = OpTypePointer StorageBuffer %mat4v4float %uint_5 = OpConstant %uint 5 %_ptr_StorageBuffer_v4float = OpTypePointer StorageBuffer %v4float %uint_6 = OpConstant %uint 6 +%_ptr_Function_v2uint = OpTypePointer Function %v2uint +%uint_4294967295 = OpConstant %uint 4294967295 + %160 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %164 = OpConstantNull %v2uint + %v2bool = OpTypeVector %bool 2 +%_ptr_Function_uint = OpTypePointer Function %uint + %int_1 = OpConstant %int 1 + %197 = OpConstantComposite %v4float %float_0_5 %float_0_5 %float_0_5 %float_0_5 + %float_6 = OpConstant %float 6 +%float_9_99999975en05 = OpConstant %float 9.99999975e-05 + %float_2 = OpConstant %float 2 +%float_0_666666687 = OpConstant %float 0.666666687 %float_0_333333343 = OpConstant %float 0.333333343 - %538 = OpConstantComposite %v3float %float_0 %float_0_666666687 %float_0_333333343 - %548 = OpConstantNull %v3float - %549 = OpConstantComposite %v3float %float_1 %float_1 %float_1 + %276 = OpConstantComposite %v3float %float_0 %float_0_666666687 %float_0_333333343 + %float_3 = OpConstant %float 3 + %288 = OpConstantNull %v3float + %289 = OpConstantComposite %v3float %float_1 %float_1 %float_1 %uint_8 = OpConstant %uint 8 + %335 = OpConstantComposite %v2float %float_1 %float_1 + %uint_4 = OpConstant %uint 4 +%float_0_00390625 = OpConstant %float 0.00390625 +%float_n0_474999994 = OpConstant %float -0.474999994 + %float_n16 = OpConstant %float -16 +%float_15_9899998 = OpConstant %float 15.9899998 + %361 = OpTypeSampledImage %20 + %false = OpConstantFalse %bool + %float_256 = OpConstant %float 256 + %390 = OpConstantComposite %v4float %float_0_00390625 %float_0_00390625 %float_0_00390625 %float_0_00390625 + %395 = OpConstantNull %v2float + %400 = OpConstantComposite %v2float %float_2 %float_2 + %402 = OpConstantComposite %v2float %float_3 %float_3 + %float_n1 = OpConstant %float -1 +%float_n0_333333343 = OpConstant %float -0.333333343 + %float_255 = OpConstant %float 255 + %463 = OpConstantComposite %v2float %float_255 %float_255 + %466 = OpConstantComposite %v2float %float_0_5 %float_0_5 +%float_0_00392156886 = OpConstant %float 0.00392156886 + %469 = OpConstantComposite %v2float %float_0_00392156886 %float_0_00392156886 + %float_0_25 = OpConstant %float 0.25 + %int_4 = OpConstant %int 4 %594 = OpTypeFunction %FSOut %FSIn %597 = OpConstantNull %FSOut %601 = OpTypeFunction %void @@ -258,21 +258,21 @@ %_59_m = OpVariable %_ptr_Function_v2float Function %_60_n = OpVariable %_ptr_Function_float Function %_61_o = OpVariable %_ptr_Function_int Function + %_84_a = OpVariable %_ptr_Function_v4float Function + %_94_f = OpVariable %_ptr_Function_v4float Function %tint_loop_idx = OpVariable %_ptr_Function_v2uint Function + %_skTemp18 = OpVariable %_ptr_Function_v4float Function %70 + %_skTemp19 = OpVariable %_ptr_Function_v4float Function %70 %_62_f = OpVariable %_ptr_Function_v4float Function %70 %_65_i = OpVariable %_ptr_Function_v2float Function %_66_j = OpVariable %_ptr_Function_v4float Function %_71_g = OpVariable %_ptr_Function_v4float Function %70 %_72_h = OpVariable %_ptr_Function_int Function + %_83_q = OpVariable %_ptr_Function_v4float Function %tint_loop_idx_0 = OpVariable %_ptr_Function_v2uint Function %_78_n = OpVariable %_ptr_Function_v2float Function %_79_o = OpVariable %_ptr_Function_float Function %_80_p = OpVariable %_ptr_Function_float Function - %_83_q = OpVariable %_ptr_Function_v4float Function - %_84_a = OpVariable %_ptr_Function_v4float Function - %_skTemp18 = OpVariable %_ptr_Function_v4float Function %70 - %_skTemp19 = OpVariable %_ptr_Function_v4float Function %70 - %_94_f = OpVariable %_ptr_Function_v4float Function %39 = OpCompositeExtract %uint %_stageIn 0 1 OpStore %shadingSsboIndex %39 None %40 = OpLoad %uint %shadingSsboIndex None @@ -307,541 +307,541 @@ OpStore %_61_o %int_0 OpBranch %85 %85 = OpLabel - OpStore %tint_loop_idx %92 + OpStore %tint_loop_idx %160 OpBranch %88 %88 = OpLabel OpLoopMerge %89 %87 None OpBranch %86 %86 = OpLabel - %94 = OpLoad %v2uint %tint_loop_idx None - %95 = OpIEqual %v2bool %94 %96 - %99 = OpAll %bool %95 - OpSelectionMerge %100 None - OpBranchConditional %99 %101 %100 - %101 = OpLabel + %162 = OpLoad %v2uint %tint_loop_idx None + %163 = OpIEqual %v2bool %162 %164 + %166 = OpAll %bool %163 + OpSelectionMerge %167 None + OpBranchConditional %166 %168 %167 + %168 = OpLabel OpBranch %89 - %100 = OpLabel - %102 = OpLoad %int %_61_o None - %103 = OpLoad %uint %shadingSsboIndex None - %104 = OpAccessChain %_ptr_StorageBuffer__runtimearr_FSUniformData %_storage1 %uint_0 - %105 = OpArrayLength %uint %_storage1 0 - %106 = OpISub %uint %105 %uint_1 - %107 = OpExtInst %uint %48 UMin %103 %106 - %108 = OpAccessChain %_ptr_StorageBuffer_int %_storage1 %uint_0 %107 %uint_3 - %110 = OpLoad %int %108 None - %111 = OpSLessThan %bool %102 %110 - OpSelectionMerge %112 None - OpBranchConditional %111 %113 %114 - %113 = OpLabel - %116 = OpLoad %v2float %_57_k None - %_skTemp2 = OpExtInst %v2float %48 Floor %116 - %118 = OpLoad %v4float %_62_f None - %119 = OpVectorShuffle %v2float %118 %118 2 3 - %120 = OpCompositeConstruct %v4float %_skTemp2 %119 - OpStore %_62_f %120 None - %121 = OpLoad %v4float %_62_f None - %122 = OpVectorShuffle %v2float %121 %121 0 1 - %123 = OpLoad %v4float %_62_f None - %124 = OpVectorShuffle %v2float %123 %123 0 1 - %125 = OpFAdd %v2float %124 %126 - %127 = OpCompositeConstruct %v4float %122 %125 - OpStore %_62_f %127 None - %128 = OpLoad %uint %shadingSsboIndex None - %129 = OpAccessChain %_ptr_StorageBuffer__runtimearr_FSUniformData %_storage1 %uint_0 - %130 = OpArrayLength %uint %_storage1 0 - %131 = OpISub %uint %130 %uint_1 - %132 = OpExtInst %uint %48 UMin %128 %131 - %133 = OpAccessChain %_ptr_StorageBuffer_int %_storage1 %uint_0 %132 %uint_4 - %135 = OpLoad %int %133 None - %136 = OpINotEqual %bool %135 %137 - OpSelectionMerge %138 None - OpBranchConditional %136 %139 %138 - %139 = OpLabel - %140 = OpLoad %v2float %_59_m None - %141 = OpVectorShuffle %v4float %140 %140 0 1 0 1 - %142 = OpLoad %v4float %_62_f None - %_skTemp3 = OpExtInst %v4float %48 Step %141 %142 - %144 = OpLoad %v4float %_62_f None - %145 = OpLoad %v2float %_59_m None - %146 = OpVectorShuffle %v4float %145 %145 0 1 0 1 - %147 = OpFMul %v4float %_skTemp3 %146 - %148 = OpFSub %v4float %144 %147 - OpStore %_62_f %148 None - OpBranch %138 - %138 = OpLabel - %149 = OpLoad %20 %permutationsSampler_1_Texture None - %150 = OpLoad %17 %permutationsSampler_1_Sampler None - %151 = OpAccessChain %_ptr_Function_float %_62_f %uint_0 - %152 = OpLoad %float %151 None - %153 = OpFAdd %float %152 %float_0_5 - %154 = OpFMul %float %153 %float_0_00390625 - %156 = OpCompositeConstruct %v2float %154 %float_0_5 - %157 = OpExtInst %float %48 NClamp %float_n0_474999994 %float_n16 %float_15_9899998 - %161 = OpSampledImage %162 %149 %150 - %163 = OpImageSampleImplicitLod %v4float %161 %156 Bias %157 - %_63_g = OpCompositeExtract %float %163 0 - %165 = OpLoad %20 %permutationsSampler_1_Texture None - %166 = OpLoad %17 %permutationsSampler_1_Sampler None - %167 = OpAccessChain %_ptr_Function_float %_62_f %uint_2 - %168 = OpLoad %float %167 None - %169 = OpFAdd %float %168 %float_0_5 - %170 = OpFMul %float %169 %float_0_00390625 - %171 = OpCompositeConstruct %v2float %170 %float_0_5 - %172 = OpExtInst %float %48 NClamp %float_n0_474999994 %float_n16 %float_15_9899998 - %173 = OpSampledImage %162 %165 %166 - %174 = OpImageSampleImplicitLod %v4float %173 %171 Bias %172 - %_64_h = OpCompositeExtract %float %174 0 - %176 = OpCompositeConstruct %v2float %_63_g %_64_h - OpStore %_65_i %176 + %167 = OpLabel + %169 = OpLoad %int %_61_o None + %170 = OpLoad %uint %shadingSsboIndex None + %171 = OpAccessChain %_ptr_StorageBuffer__runtimearr_FSUniformData %_storage1 %uint_0 + %172 = OpArrayLength %uint %_storage1 0 + %173 = OpISub %uint %172 %uint_1 + %174 = OpExtInst %uint %48 UMin %170 %173 + %175 = OpAccessChain %_ptr_StorageBuffer_int %_storage1 %uint_0 %174 %uint_3 + %176 = OpLoad %int %175 None + %177 = OpSLessThan %bool %169 %176 OpSelectionMerge %178 None - OpBranchConditional %false %179 %178 + OpBranchConditional %177 %179 %180 %179 = OpLabel - %181 = OpLoad %v2float %_65_i None - %182 = OpFMul %v2float %181 %183 - %185 = OpFAdd %v2float %182 %186 - %_skTemp4 = OpExtInst %v2float %48 Floor %185 - %188 = OpFMul %v2float %_skTemp4 %189 - OpStore %_65_i %188 None - OpBranch %178 - %178 = OpLabel - %191 = OpLoad %v2float %_65_i None - %192 = OpVectorShuffle %v4float %191 %191 0 1 0 1 - %193 = OpVectorTimesScalar %v4float %192 %float_256 - %195 = OpLoad %v4float %_62_f None - %196 = OpVectorShuffle %v4float %195 %195 1 1 3 3 - %197 = OpFAdd %v4float %193 %196 - OpStore %_66_j %197 - %199 = OpLoad %v4float %_66_j None - %200 = OpFMul %v4float %199 %201 - OpStore %_66_j %200 None - %_67_p = OpLoad %v4float %_66_j None - %203 = OpLoad %v2float %_57_k None - %_skTemp5 = OpExtInst %v2float %48 Fract %203 - %205 = OpFSub %v2float %_skTemp5 %206 - %207 = OpFSub %v2float %126 %206 - %208 = OpFDiv %v2float %205 %207 - %209 = OpExtInst %v2float %48 NClamp %208 %206 %126 - %210 = OpFMul %v2float %211 %209 - %213 = OpFSub %v2float %214 %210 - %216 = OpFMul %v2float %209 %213 - %_skTemp6 = OpFMul %v2float %209 %216 - OpStore %_72_h %int_0 - OpBranch %220 - %220 = OpLabel - OpStore %tint_loop_idx_0 %92 - OpBranch %223 - %223 = OpLabel - OpLoopMerge %224 %222 None - OpBranch %221 - %221 = OpLabel - %226 = OpLoad %v2uint %tint_loop_idx_0 None - %227 = OpIEqual %v2bool %226 %96 - %228 = OpAll %bool %227 - OpSelectionMerge %229 None - OpBranchConditional %228 %230 %229 - %230 = OpLabel - OpBranch %224 - %229 = OpLabel - %231 = OpLoad %int %_72_h None - %232 = OpConvertSToF %float %231 - %233 = OpFAdd %float %232 %float_0_5 - %_73_i = OpFMul %float %233 %float_0_25 - %236 = OpLoad %20 %noiseSampler_1_Texture None - %237 = OpLoad %17 %noiseSampler_1_Sampler None - %238 = OpCompositeExtract %float %_67_p 0 - %239 = OpCompositeConstruct %v2float %238 %_73_i - %240 = OpExtInst %float %48 NClamp %float_n0_474999994 %float_n16 %float_15_9899998 - %241 = OpSampledImage %162 %236 %237 - %_74_j = OpImageSampleImplicitLod %v4float %241 %239 Bias %240 - %243 = OpLoad %20 %noiseSampler_1_Texture None - %244 = OpLoad %17 %noiseSampler_1_Sampler None - %245 = OpCompositeExtract %float %_67_p 1 - %246 = OpCompositeConstruct %v2float %245 %_73_i - %247 = OpExtInst %float %48 NClamp %float_n0_474999994 %float_n16 %float_15_9899998 - %248 = OpSampledImage %162 %243 %244 - %_75_k = OpImageSampleImplicitLod %v4float %248 %246 Bias %247 - %250 = OpLoad %20 %noiseSampler_1_Texture None - %251 = OpLoad %17 %noiseSampler_1_Sampler None - %252 = OpCompositeExtract %float %_67_p 3 - %253 = OpCompositeConstruct %v2float %252 %_73_i - %254 = OpExtInst %float %48 NClamp %float_n0_474999994 %float_n16 %float_15_9899998 - %255 = OpSampledImage %162 %250 %251 - %_76_l = OpImageSampleImplicitLod %v4float %255 %253 Bias %254 - %257 = OpLoad %20 %noiseSampler_1_Texture None - %258 = OpLoad %17 %noiseSampler_1_Sampler None - %259 = OpCompositeExtract %float %_67_p 2 - %260 = OpCompositeConstruct %v2float %259 %_73_i - %261 = OpExtInst %float %48 NClamp %float_n0_474999994 %float_n16 %float_15_9899998 - %262 = OpSampledImage %162 %257 %258 - %_77_m = OpImageSampleImplicitLod %v4float %262 %260 Bias %261 - OpStore %_78_n %_skTemp5 - %265 = OpVectorShuffle %v2float %_74_j %_74_j 1 3 - %266 = OpVectorShuffle %v2float %_74_j %_74_j 0 2 - %267 = OpVectorTimesScalar %v2float %266 %float_0_00390625 - %268 = OpFAdd %v2float %265 %267 - %269 = OpVectorTimesScalar %v2float %268 %float_2 - %270 = OpCompositeConstruct %v2float %float_1 %float_1 - %271 = OpFSub %v2float %269 %270 - %272 = OpLoad %v2float %_78_n None - %_skTemp7 = OpDot %float %271 %272 - OpStore %_79_o %_skTemp7 - %275 = OpAccessChain %_ptr_Function_float %_78_n %uint_0 - %276 = OpLoad %float %275 None - %277 = OpFSub %float %276 %float_1 - %278 = OpAccessChain %_ptr_Function_float %_78_n %uint_0 - OpStore %278 %277 None - %279 = OpVectorShuffle %v2float %_75_k %_75_k 1 3 - %280 = OpVectorShuffle %v2float %_75_k %_75_k 0 2 - %281 = OpVectorTimesScalar %v2float %280 %float_0_00390625 - %282 = OpFAdd %v2float %279 %281 - %283 = OpVectorTimesScalar %v2float %282 %float_2 - %284 = OpCompositeConstruct %v2float %float_1 %float_1 - %285 = OpFSub %v2float %283 %284 - %286 = OpLoad %v2float %_78_n None - %_skTemp8 = OpDot %float %285 %286 - OpStore %_80_p %_skTemp8 - %289 = OpLoad %float %_79_o None - %290 = OpLoad %float %_80_p None - %291 = OpCompositeExtract %float %_skTemp6 0 - %_skTemp9 = OpExtInst %float %48 FMix %289 %290 %291 - %293 = OpAccessChain %_ptr_Function_float %_78_n %uint_1 - %294 = OpLoad %float %293 None - %295 = OpFSub %float %294 %float_1 - %296 = OpAccessChain %_ptr_Function_float %_78_n %uint_1 - OpStore %296 %295 None - %297 = OpVectorShuffle %v2float %_76_l %_76_l 1 3 - %298 = OpVectorShuffle %v2float %_76_l %_76_l 0 2 - %299 = OpVectorTimesScalar %v2float %298 %float_0_00390625 - %300 = OpFAdd %v2float %297 %299 - %301 = OpVectorTimesScalar %v2float %300 %float_2 - %302 = OpCompositeConstruct %v2float %float_1 %float_1 - %303 = OpFSub %v2float %301 %302 - %304 = OpLoad %v2float %_78_n None - %_skTemp10 = OpDot %float %303 %304 - OpStore %_80_p %_skTemp10 None - %306 = OpAccessChain %_ptr_Function_float %_78_n %uint_0 - %307 = OpLoad %float %306 None - %308 = OpFAdd %float %307 %float_1 - %309 = OpAccessChain %_ptr_Function_float %_78_n %uint_0 - OpStore %309 %308 None - %310 = OpVectorShuffle %v2float %_77_m %_77_m 1 3 - %311 = OpVectorShuffle %v2float %_77_m %_77_m 0 2 - %312 = OpVectorTimesScalar %v2float %311 %float_0_00390625 - %313 = OpFAdd %v2float %310 %312 - %314 = OpVectorTimesScalar %v2float %313 %float_2 - %315 = OpCompositeConstruct %v2float %float_1 %float_1 - %316 = OpFSub %v2float %314 %315 - %317 = OpLoad %v2float %_78_n None - %_skTemp11 = OpDot %float %316 %317 - OpStore %_79_o %_skTemp11 None - %319 = OpLoad %float %_79_o None - %320 = OpLoad %float %_80_p None - %321 = OpCompositeExtract %float %_skTemp6 0 - %_skTemp12 = OpExtInst %float %48 FMix %319 %320 %321 - %323 = OpCompositeExtract %float %_skTemp6 1 - %_skTemp13 = OpExtInst %float %48 FMix %_skTemp9 %_skTemp12 %323 - %325 = OpLoad %int %_72_h None - %326 = OpBitcast %uint %325 - %327 = OpExtInst %uint %48 UMin %326 %uint_3 - %328 = OpAccessChain %_ptr_Function_float %_71_g %327 - OpStore %328 %_skTemp13 None - OpBranch %222 - %222 = OpLabel - %329 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - %331 = OpLoad %uint %329 None - %332 = OpISub %uint %331 %uint_1 - %333 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - OpStore %333 %332 None - %334 = OpIEqual %bool %332 %uint_4294967295 - %335 = OpSelect %uint %334 %uint_1 %uint_0 - %336 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - %337 = OpLoad %uint %336 None - %338 = OpISub %uint %337 %335 - %339 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - OpStore %339 %338 None - %340 = OpLoad %int %_72_h None - %341 = OpIAdd %int %340 %int_1 - OpStore %_72_h %341 None - %343 = OpLoad %int %_72_h None - %344 = OpSGreaterThanEqual %bool %343 %int_4 - OpBranchConditional %344 %224 %223 - %224 = OpLabel - %346 = OpLoad %v4float %_71_g None - OpStore %_83_q %346 - %348 = OpINotEqual %bool %_56_d %int_0 - OpSelectionMerge %349 None - OpBranchConditional %348 %350 %349 - %350 = OpLabel - %351 = OpLoad %v4float %_83_q None - %_skTemp14 = OpExtInst %v4float %48 FAbs %351 - OpStore %_83_q %_skTemp14 None - OpBranch %349 - %349 = OpLabel - %353 = OpLoad %v4float %_58_l None - %354 = OpLoad %v4float %_83_q None - %355 = OpLoad %float %_60_n None - %356 = OpVectorTimesScalar %v4float %354 %355 - %357 = OpFAdd %v4float %353 %356 - OpStore %_58_l %357 None - %358 = OpLoad %v2float %_57_k None - %359 = OpFMul %v2float %358 %211 - OpStore %_57_k %359 None - %360 = OpLoad %float %_60_n None - %361 = OpFMul %float %360 %float_0_5 - OpStore %_60_n %361 None - %362 = OpLoad %v2float %_59_m None - %363 = OpFMul %v2float %362 %211 - OpStore %_59_m %363 None - OpBranch %112 - %114 = OpLabel - OpBranch %89 - %112 = OpLabel - OpBranch %87 - %87 = OpLabel - %364 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %365 = OpLoad %uint %364 None - %366 = OpISub %uint %365 %uint_1 - %367 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %367 %366 None - %368 = OpIEqual %bool %366 %uint_4294967295 - %369 = OpSelect %uint %368 %uint_1 %uint_0 - %370 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %371 = OpLoad %uint %370 None - %372 = OpISub %uint %371 %369 - %373 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %373 %372 None - %374 = OpLoad %int %_61_o None - %375 = OpIAdd %int %374 %int_1 - OpStore %_61_o %375 None - OpBranch %88 - %89 = OpLabel - %376 = OpIEqual %bool %_56_d %int_0 + %325 = OpLoad %v2float %_57_k None + %_skTemp2 = OpExtInst %v2float %48 Floor %325 + %327 = OpLoad %v4float %_62_f None + %328 = OpVectorShuffle %v2float %327 %327 2 3 + %329 = OpCompositeConstruct %v4float %_skTemp2 %328 + OpStore %_62_f %329 None + %330 = OpLoad %v4float %_62_f None + %331 = OpVectorShuffle %v2float %330 %330 0 1 + %332 = OpLoad %v4float %_62_f None + %333 = OpVectorShuffle %v2float %332 %332 0 1 + %334 = OpFAdd %v2float %333 %335 + %336 = OpCompositeConstruct %v4float %331 %334 + OpStore %_62_f %336 None + %337 = OpLoad %uint %shadingSsboIndex None + %338 = OpAccessChain %_ptr_StorageBuffer__runtimearr_FSUniformData %_storage1 %uint_0 + %339 = OpArrayLength %uint %_storage1 0 + %340 = OpISub %uint %339 %uint_1 + %341 = OpExtInst %uint %48 UMin %337 %340 + %342 = OpAccessChain %_ptr_StorageBuffer_int %_storage1 %uint_0 %341 %uint_4 + %344 = OpLoad %int %342 None + %345 = OpINotEqual %bool %344 %126 + OpSelectionMerge %346 None + OpBranchConditional %345 %347 %346 + %347 = OpLabel + %452 = OpLoad %v2float %_59_m None + %453 = OpVectorShuffle %v4float %452 %452 0 1 0 1 + %454 = OpLoad %v4float %_62_f None + %_skTemp3 = OpExtInst %v4float %48 Step %453 %454 + %456 = OpLoad %v4float %_62_f None + %457 = OpLoad %v2float %_59_m None + %458 = OpVectorShuffle %v4float %457 %457 0 1 0 1 + %459 = OpFMul %v4float %_skTemp3 %458 + %460 = OpFSub %v4float %456 %459 + OpStore %_62_f %460 None + OpBranch %346 + %346 = OpLabel + %348 = OpLoad %20 %permutationsSampler_1_Texture None + %349 = OpLoad %17 %permutationsSampler_1_Sampler None + %350 = OpAccessChain %_ptr_Function_float %_62_f %uint_0 + %351 = OpLoad %float %350 None + %352 = OpFAdd %float %351 %float_0_5 + %353 = OpFMul %float %352 %float_0_00390625 + %355 = OpCompositeConstruct %v2float %353 %float_0_5 + %356 = OpExtInst %float %48 NClamp %float_n0_474999994 %float_n16 %float_15_9899998 + %360 = OpSampledImage %361 %348 %349 + %362 = OpImageSampleImplicitLod %v4float %360 %355 Bias %356 + %_63_g = OpCompositeExtract %float %362 0 + %364 = OpLoad %20 %permutationsSampler_1_Texture None + %365 = OpLoad %17 %permutationsSampler_1_Sampler None + %366 = OpAccessChain %_ptr_Function_float %_62_f %uint_2 + %367 = OpLoad %float %366 None + %368 = OpFAdd %float %367 %float_0_5 + %369 = OpFMul %float %368 %float_0_00390625 + %370 = OpCompositeConstruct %v2float %369 %float_0_5 + %371 = OpExtInst %float %48 NClamp %float_n0_474999994 %float_n16 %float_15_9899998 + %372 = OpSampledImage %361 %364 %365 + %373 = OpImageSampleImplicitLod %v4float %372 %370 Bias %371 + %_64_h = OpCompositeExtract %float %373 0 + %375 = OpCompositeConstruct %v2float %_63_g %_64_h + OpStore %_65_i %375 OpSelectionMerge %377 None - OpBranchConditional %376 %378 %377 + OpBranchConditional %false %378 %377 %378 = OpLabel - %379 = OpLoad %v4float %_58_l None - %380 = OpFMul %v4float %379 %381 - %382 = OpFAdd %v4float %380 %381 - OpStore %_58_l %382 None + %461 = OpLoad %v2float %_65_i None + %462 = OpFMul %v2float %461 %463 + %465 = OpFAdd %v2float %462 %466 + %_skTemp4 = OpExtInst %v2float %48 Floor %465 + %468 = OpFMul %v2float %_skTemp4 %469 + OpStore %_65_i %468 None OpBranch %377 %377 = OpLabel - %383 = OpLoad %v4float %_58_l None - %_skTemp15 = OpExtInst %v4float %48 NClamp %383 %70 %385 - OpStore %_58_l %_skTemp15 None - %386 = OpLoad %v4float %_58_l None - %387 = OpVectorShuffle %v3float %386 %386 0 1 2 - %389 = OpAccessChain %_ptr_Function_float %_58_l %uint_3 - %390 = OpLoad %float %389 None - %391 = OpVectorTimesScalar %v3float %387 %390 - %392 = OpAccessChain %_ptr_Function_float %_58_l %uint_3 - %393 = OpLoad %float %392 None - %394 = OpCompositeConstruct %v4float %391 %393 - %395 = OpVectorShuffle %v3float %394 %394 0 1 2 - %_skTemp16 = OpDot %float %397 %395 - %_skTemp17 = OpExtInst %float %48 NClamp %_skTemp16 %float_0 %float_1 - %403 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %_skTemp17 - OpStore %_84_a %403 - %405 = OpLoad %uint %shadingSsboIndex None - %406 = OpAccessChain %_ptr_StorageBuffer__runtimearr_FSUniformData %_storage1 %uint_0 - %407 = OpArrayLength %uint %_storage1 0 - %408 = OpISub %uint %407 %uint_1 - %409 = OpExtInst %uint %48 UMin %405 %408 - %410 = OpAccessChain %_ptr_StorageBuffer_int %_storage1 %uint_0 %409 %uint_7 - %_85_d = OpLoad %int %410 None - %413 = OpINotEqual %bool %_85_d %137 - OpSelectionMerge %414 None - OpBranchConditional %413 %415 %416 + %380 = OpLoad %v2float %_65_i None + %381 = OpVectorShuffle %v4float %380 %380 0 1 0 1 + %382 = OpVectorTimesScalar %v4float %381 %float_256 + %384 = OpLoad %v4float %_62_f None + %385 = OpVectorShuffle %v4float %384 %384 1 1 3 3 + %386 = OpFAdd %v4float %382 %385 + OpStore %_66_j %386 + %388 = OpLoad %v4float %_66_j None + %389 = OpFMul %v4float %388 %390 + OpStore %_66_j %389 None + %_67_p = OpLoad %v4float %_66_j None + %392 = OpLoad %v2float %_57_k None + %_skTemp5 = OpExtInst %v2float %48 Fract %392 + %394 = OpFSub %v2float %_skTemp5 %395 + %396 = OpFSub %v2float %335 %395 + %397 = OpFDiv %v2float %394 %396 + %398 = OpExtInst %v2float %48 NClamp %397 %395 %335 + %399 = OpFMul %v2float %400 %398 + %401 = OpFSub %v2float %402 %399 + %403 = OpFMul %v2float %398 %401 + %_skTemp6 = OpFMul %v2float %398 %403 + OpStore %_72_h %int_0 + OpBranch %407 + %407 = OpLabel + OpStore %tint_loop_idx_0 %160 + OpBranch %410 + %410 = OpLabel + OpLoopMerge %411 %409 None + OpBranch %408 + %408 = OpLabel + %472 = OpLoad %v2uint %tint_loop_idx_0 None + %473 = OpIEqual %v2bool %472 %164 + %474 = OpAll %bool %473 + OpSelectionMerge %475 None + OpBranchConditional %474 %476 %475 + %476 = OpLabel + OpBranch %411 + %475 = OpLabel + %477 = OpLoad %int %_72_h None + %478 = OpConvertSToF %float %477 + %479 = OpFAdd %float %478 %float_0_5 + %_73_i = OpFMul %float %479 %float_0_25 + %482 = OpLoad %20 %noiseSampler_1_Texture None + %483 = OpLoad %17 %noiseSampler_1_Sampler None + %484 = OpCompositeExtract %float %_67_p 0 + %485 = OpCompositeConstruct %v2float %484 %_73_i + %486 = OpExtInst %float %48 NClamp %float_n0_474999994 %float_n16 %float_15_9899998 + %487 = OpSampledImage %361 %482 %483 + %_74_j = OpImageSampleImplicitLod %v4float %487 %485 Bias %486 + %489 = OpLoad %20 %noiseSampler_1_Texture None + %490 = OpLoad %17 %noiseSampler_1_Sampler None + %491 = OpCompositeExtract %float %_67_p 1 + %492 = OpCompositeConstruct %v2float %491 %_73_i + %493 = OpExtInst %float %48 NClamp %float_n0_474999994 %float_n16 %float_15_9899998 + %494 = OpSampledImage %361 %489 %490 + %_75_k = OpImageSampleImplicitLod %v4float %494 %492 Bias %493 + %496 = OpLoad %20 %noiseSampler_1_Texture None + %497 = OpLoad %17 %noiseSampler_1_Sampler None + %498 = OpCompositeExtract %float %_67_p 3 + %499 = OpCompositeConstruct %v2float %498 %_73_i + %500 = OpExtInst %float %48 NClamp %float_n0_474999994 %float_n16 %float_15_9899998 + %501 = OpSampledImage %361 %496 %497 + %_76_l = OpImageSampleImplicitLod %v4float %501 %499 Bias %500 + %503 = OpLoad %20 %noiseSampler_1_Texture None + %504 = OpLoad %17 %noiseSampler_1_Sampler None + %505 = OpCompositeExtract %float %_67_p 2 + %506 = OpCompositeConstruct %v2float %505 %_73_i + %507 = OpExtInst %float %48 NClamp %float_n0_474999994 %float_n16 %float_15_9899998 + %508 = OpSampledImage %361 %503 %504 + %_77_m = OpImageSampleImplicitLod %v4float %508 %506 Bias %507 + OpStore %_78_n %_skTemp5 + %511 = OpVectorShuffle %v2float %_74_j %_74_j 1 3 + %512 = OpVectorShuffle %v2float %_74_j %_74_j 0 2 + %513 = OpVectorTimesScalar %v2float %512 %float_0_00390625 + %514 = OpFAdd %v2float %511 %513 + %515 = OpVectorTimesScalar %v2float %514 %float_2 + %516 = OpCompositeConstruct %v2float %float_1 %float_1 + %517 = OpFSub %v2float %515 %516 + %518 = OpLoad %v2float %_78_n None + %_skTemp7 = OpDot %float %517 %518 + OpStore %_79_o %_skTemp7 + %521 = OpAccessChain %_ptr_Function_float %_78_n %uint_0 + %522 = OpLoad %float %521 None + %523 = OpFSub %float %522 %float_1 + %524 = OpAccessChain %_ptr_Function_float %_78_n %uint_0 + OpStore %524 %523 None + %525 = OpVectorShuffle %v2float %_75_k %_75_k 1 3 + %526 = OpVectorShuffle %v2float %_75_k %_75_k 0 2 + %527 = OpVectorTimesScalar %v2float %526 %float_0_00390625 + %528 = OpFAdd %v2float %525 %527 + %529 = OpVectorTimesScalar %v2float %528 %float_2 + %530 = OpCompositeConstruct %v2float %float_1 %float_1 + %531 = OpFSub %v2float %529 %530 + %532 = OpLoad %v2float %_78_n None + %_skTemp8 = OpDot %float %531 %532 + OpStore %_80_p %_skTemp8 + %535 = OpLoad %float %_79_o None + %536 = OpLoad %float %_80_p None + %537 = OpCompositeExtract %float %_skTemp6 0 + %_skTemp9 = OpExtInst %float %48 FMix %535 %536 %537 + %539 = OpAccessChain %_ptr_Function_float %_78_n %uint_1 + %540 = OpLoad %float %539 None + %541 = OpFSub %float %540 %float_1 + %542 = OpAccessChain %_ptr_Function_float %_78_n %uint_1 + OpStore %542 %541 None + %543 = OpVectorShuffle %v2float %_76_l %_76_l 1 3 + %544 = OpVectorShuffle %v2float %_76_l %_76_l 0 2 + %545 = OpVectorTimesScalar %v2float %544 %float_0_00390625 + %546 = OpFAdd %v2float %543 %545 + %547 = OpVectorTimesScalar %v2float %546 %float_2 + %548 = OpCompositeConstruct %v2float %float_1 %float_1 + %549 = OpFSub %v2float %547 %548 + %550 = OpLoad %v2float %_78_n None + %_skTemp10 = OpDot %float %549 %550 + OpStore %_80_p %_skTemp10 None + %552 = OpAccessChain %_ptr_Function_float %_78_n %uint_0 + %553 = OpLoad %float %552 None + %554 = OpFAdd %float %553 %float_1 + %555 = OpAccessChain %_ptr_Function_float %_78_n %uint_0 + OpStore %555 %554 None + %556 = OpVectorShuffle %v2float %_77_m %_77_m 1 3 + %557 = OpVectorShuffle %v2float %_77_m %_77_m 0 2 + %558 = OpVectorTimesScalar %v2float %557 %float_0_00390625 + %559 = OpFAdd %v2float %556 %558 + %560 = OpVectorTimesScalar %v2float %559 %float_2 + %561 = OpCompositeConstruct %v2float %float_1 %float_1 + %562 = OpFSub %v2float %560 %561 + %563 = OpLoad %v2float %_78_n None + %_skTemp11 = OpDot %float %562 %563 + OpStore %_79_o %_skTemp11 None + %565 = OpLoad %float %_79_o None + %566 = OpLoad %float %_80_p None + %567 = OpCompositeExtract %float %_skTemp6 0 + %_skTemp12 = OpExtInst %float %48 FMix %565 %566 %567 + %569 = OpCompositeExtract %float %_skTemp6 1 + %_skTemp13 = OpExtInst %float %48 FMix %_skTemp9 %_skTemp12 %569 + %571 = OpLoad %int %_72_h None + %572 = OpBitcast %uint %571 + %573 = OpExtInst %uint %48 UMin %572 %uint_3 + %574 = OpAccessChain %_ptr_Function_float %_71_g %573 + OpStore %574 %_skTemp13 None + OpBranch %409 + %409 = OpLabel + %575 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + %576 = OpLoad %uint %575 None + %577 = OpISub %uint %576 %uint_1 + %578 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + OpStore %578 %577 None + %579 = OpIEqual %bool %577 %uint_4294967295 + %580 = OpSelect %uint %579 %uint_1 %uint_0 + %581 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + %582 = OpLoad %uint %581 None + %583 = OpISub %uint %582 %580 + %584 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + OpStore %584 %583 None + %585 = OpLoad %int %_72_h None + %586 = OpIAdd %int %585 %int_1 + OpStore %_72_h %586 None + %587 = OpLoad %int %_72_h None + %588 = OpSGreaterThanEqual %bool %587 %int_4 + OpBranchConditional %588 %411 %410 + %411 = OpLabel + %412 = OpLoad %v4float %_71_g None + OpStore %_83_q %412 + %414 = OpINotEqual %bool %_56_d %int_0 + OpSelectionMerge %415 None + OpBranchConditional %414 %416 %415 + %416 = OpLabel + %590 = OpLoad %v4float %_83_q None + %_skTemp14 = OpExtInst %v4float %48 FAbs %590 + OpStore %_83_q %_skTemp14 None + OpBranch %415 %415 = OpLabel - %418 = OpAccessChain %_ptr_Function_float %_84_a %uint_1 - %419 = OpLoad %float %418 None - %420 = OpAccessChain %_ptr_Function_float %_84_a %uint_2 - %421 = OpLoad %float %420 None - %422 = OpFOrdLessThan %bool %419 %421 - OpSelectionMerge %423 None - OpBranchConditional %422 %424 %425 - %424 = OpLabel - %426 = OpLoad %v4float %_84_a None - %427 = OpVectorShuffle %v2float %426 %426 2 1 - %428 = OpCompositeConstruct %v4float %427 %float_n1 %float_0_666666687 - OpStore %_skTemp18 %428 None - OpBranch %423 - %425 = OpLabel - %431 = OpLoad %v4float %_84_a None - %432 = OpVectorShuffle %v2float %431 %431 1 2 - %433 = OpCompositeConstruct %v4float %432 %float_0 %float_n0_333333343 - OpStore %_skTemp18 %433 None - OpBranch %423 - %423 = OpLabel + %417 = OpLoad %v4float %_58_l None + %418 = OpLoad %v4float %_83_q None + %419 = OpLoad %float %_60_n None + %420 = OpVectorTimesScalar %v4float %418 %419 + %421 = OpFAdd %v4float %417 %420 + OpStore %_58_l %421 None + %422 = OpLoad %v2float %_57_k None + %423 = OpFMul %v2float %422 %400 + OpStore %_57_k %423 None + %424 = OpLoad %float %_60_n None + %425 = OpFMul %float %424 %float_0_5 + OpStore %_60_n %425 None + %426 = OpLoad %v2float %_59_m None + %427 = OpFMul %v2float %426 %400 + OpStore %_59_m %427 None + OpBranch %178 + %180 = OpLabel + OpBranch %89 + %178 = OpLabel + OpBranch %87 + %87 = OpLabel + %181 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %183 = OpLoad %uint %181 None + %184 = OpISub %uint %183 %uint_1 + %185 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %185 %184 None + %186 = OpIEqual %bool %184 %uint_4294967295 + %187 = OpSelect %uint %186 %uint_1 %uint_0 + %188 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %189 = OpLoad %uint %188 None + %190 = OpISub %uint %189 %187 + %191 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %191 %190 None + %192 = OpLoad %int %_61_o None + %193 = OpIAdd %int %192 %int_1 + OpStore %_61_o %193 None + OpBranch %88 + %89 = OpLabel + %90 = OpIEqual %bool %_56_d %int_0 + OpSelectionMerge %92 None + OpBranchConditional %90 %93 %92 + %93 = OpLabel + %195 = OpLoad %v4float %_58_l None + %196 = OpFMul %v4float %195 %197 + %198 = OpFAdd %v4float %196 %197 + OpStore %_58_l %198 None + OpBranch %92 + %92 = OpLabel + %94 = OpLoad %v4float %_58_l None + %_skTemp15 = OpExtInst %v4float %48 NClamp %94 %70 %96 + OpStore %_58_l %_skTemp15 None + %97 = OpLoad %v4float %_58_l None + %98 = OpVectorShuffle %v3float %97 %97 0 1 2 + %100 = OpAccessChain %_ptr_Function_float %_58_l %uint_3 + %102 = OpLoad %float %100 None + %103 = OpVectorTimesScalar %v3float %98 %102 + %104 = OpAccessChain %_ptr_Function_float %_58_l %uint_3 + %105 = OpLoad %float %104 None + %106 = OpCompositeConstruct %v4float %103 %105 + %107 = OpVectorShuffle %v3float %106 %106 0 1 2 + %_skTemp16 = OpDot %float %109 %107 + %_skTemp17 = OpExtInst %float %48 NClamp %_skTemp16 %float_0 %float_1 + %115 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %_skTemp17 + OpStore %_84_a %115 + %117 = OpLoad %uint %shadingSsboIndex None + %118 = OpAccessChain %_ptr_StorageBuffer__runtimearr_FSUniformData %_storage1 %uint_0 + %119 = OpArrayLength %uint %_storage1 0 + %120 = OpISub %uint %119 %uint_1 + %121 = OpExtInst %uint %48 UMin %117 %120 + %122 = OpAccessChain %_ptr_StorageBuffer_int %_storage1 %uint_0 %121 %uint_7 + %_85_d = OpLoad %int %122 None + %125 = OpINotEqual %bool %_85_d %126 + OpSelectionMerge %127 None + OpBranchConditional %125 %128 %129 + %128 = OpLabel + %200 = OpAccessChain %_ptr_Function_float %_84_a %uint_1 + %201 = OpLoad %float %200 None + %202 = OpAccessChain %_ptr_Function_float %_84_a %uint_2 + %203 = OpLoad %float %202 None + %204 = OpFOrdLessThan %bool %201 %203 + OpSelectionMerge %205 None + OpBranchConditional %204 %206 %207 + %206 = OpLabel + %428 = OpLoad %v4float %_84_a None + %429 = OpVectorShuffle %v2float %428 %428 2 1 + %430 = OpCompositeConstruct %v4float %429 %float_n1 %float_0_666666687 + OpStore %_skTemp18 %430 None + OpBranch %205 + %207 = OpLabel + %432 = OpLoad %v4float %_84_a None + %433 = OpVectorShuffle %v2float %432 %432 1 2 + %434 = OpCompositeConstruct %v4float %433 %float_0 %float_n0_333333343 + OpStore %_skTemp18 %434 None + OpBranch %205 + %205 = OpLabel %_86_e = OpLoad %v4float %_skTemp18 None + %210 = OpAccessChain %_ptr_Function_float %_84_a %uint_0 + %211 = OpLoad %float %210 None + %212 = OpCompositeExtract %float %_86_e 0 + %213 = OpFOrdLessThan %bool %211 %212 + OpSelectionMerge %214 None + OpBranchConditional %213 %215 %216 + %215 = OpLabel + %436 = OpCompositeExtract %float %_86_e 0 %437 = OpAccessChain %_ptr_Function_float %_84_a %uint_0 %438 = OpLoad %float %437 None - %439 = OpCompositeExtract %float %_86_e 0 - %440 = OpFOrdLessThan %bool %438 %439 - OpSelectionMerge %441 None - OpBranchConditional %440 %442 %443 - %442 = OpLabel - %444 = OpCompositeExtract %float %_86_e 0 - %445 = OpAccessChain %_ptr_Function_float %_84_a %uint_0 - %446 = OpLoad %float %445 None - %447 = OpVectorShuffle %v2float %_86_e %_86_e 1 3 - %448 = OpCompositeConstruct %v4float %444 %446 %447 - OpStore %_skTemp19 %448 None - OpBranch %441 - %443 = OpLabel - %449 = OpAccessChain %_ptr_Function_float %_84_a %uint_0 - %450 = OpLoad %float %449 None - %451 = OpCompositeExtract %float %_86_e 0 - %452 = OpVectorShuffle %v2float %_86_e %_86_e 1 2 - %453 = OpCompositeConstruct %v4float %450 %451 %452 - OpStore %_skTemp19 %453 None - OpBranch %441 - %441 = OpLabel + %439 = OpVectorShuffle %v2float %_86_e %_86_e 1 3 + %440 = OpCompositeConstruct %v4float %436 %438 %439 + OpStore %_skTemp19 %440 None + OpBranch %214 + %216 = OpLabel + %441 = OpAccessChain %_ptr_Function_float %_84_a %uint_0 + %442 = OpLoad %float %441 None + %443 = OpCompositeExtract %float %_86_e 0 + %444 = OpVectorShuffle %v2float %_86_e %_86_e 1 2 + %445 = OpCompositeConstruct %v4float %442 %443 %444 + OpStore %_skTemp19 %445 None + OpBranch %214 + %214 = OpLabel %_87_f = OpLoad %v4float %_skTemp19 None %_88_h = OpCompositeExtract %float %_87_f 0 - %456 = OpCompositeExtract %float %_87_f 1 - %457 = OpCompositeExtract %float %_87_f 2 - %_skTemp20 = OpExtInst %float %48 FMin %456 %457 + %219 = OpCompositeExtract %float %_87_f 1 + %220 = OpCompositeExtract %float %_87_f 2 + %_skTemp20 = OpExtInst %float %48 FMin %219 %220 %_89_i = OpFSub %float %_88_h %_skTemp20 - %460 = OpFMul %float %_89_i %float_0_5 - %_90_j = OpFSub %float %_88_h %460 - %462 = OpCompositeExtract %float %_87_f 3 - %463 = OpCompositeExtract %float %_87_f 1 - %464 = OpCompositeExtract %float %_87_f 2 - %465 = OpFSub %float %463 %464 - %466 = OpFMul %float %_89_i %float_6 - %468 = OpFAdd %float %466 %float_9_99999975en05 - %470 = OpFDiv %float %465 %468 - %471 = OpFAdd %float %462 %470 - %_skTemp21 = OpExtInst %float %48 FAbs %471 - %473 = OpFMul %float %_90_j %float_2 - %474 = OpAccessChain %_ptr_Function_float %_84_a %uint_3 - %475 = OpLoad %float %474 None - %476 = OpFSub %float %473 %475 - %_skTemp22 = OpExtInst %float %48 FAbs %476 - %478 = OpAccessChain %_ptr_Function_float %_84_a %uint_3 - %479 = OpLoad %float %478 None - %480 = OpFAdd %float %479 %float_9_99999975en05 - %481 = OpFSub %float %480 %_skTemp22 - %_92_l = OpFDiv %float %_89_i %481 - %483 = OpAccessChain %_ptr_Function_float %_84_a %uint_3 - %484 = OpLoad %float %483 None - %485 = OpFAdd %float %484 %float_9_99999975en05 - %_93_m = OpFDiv %float %_90_j %485 - %487 = OpAccessChain %_ptr_Function_float %_84_a %uint_3 - %488 = OpLoad %float %487 None - %489 = OpCompositeConstruct %v4float %_skTemp21 %_92_l %_93_m %488 - OpStore %_84_a %489 None - OpBranch %414 - %416 = OpLabel - %490 = OpAccessChain %_ptr_Function_float %_84_a %uint_3 - %491 = OpLoad %float %490 None - %_skTemp23 = OpExtInst %float %48 FMax %491 %float_9_99999975en05 - %493 = OpLoad %v4float %_84_a None - %494 = OpVectorShuffle %v3float %493 %493 0 1 2 - %495 = OpCompositeConstruct %v3float %_skTemp23 %_skTemp23 %_skTemp23 - %496 = OpFDiv %v3float %494 %495 - %497 = OpAccessChain %_ptr_Function_float %_84_a %uint_3 - %498 = OpLoad %float %497 None - %499 = OpCompositeConstruct %v4float %496 %498 - OpStore %_84_a %499 None - OpBranch %414 - %414 = OpLabel - %500 = OpLoad %uint %shadingSsboIndex None - %501 = OpAccessChain %_ptr_StorageBuffer__runtimearr_FSUniformData %_storage1 %uint_0 - %502 = OpArrayLength %uint %_storage1 0 - %503 = OpISub %uint %502 %uint_1 - %504 = OpExtInst %uint %48 UMin %500 %503 - %505 = OpAccessChain %_ptr_StorageBuffer_mat4v4float %_storage1 %uint_0 %504 %uint_5 - %508 = OpLoad %mat4v4float %505 None - %509 = OpLoad %v4float %_84_a None - %510 = OpMatrixTimesVector %v4float %508 %509 - %511 = OpLoad %uint %shadingSsboIndex None - %512 = OpAccessChain %_ptr_StorageBuffer__runtimearr_FSUniformData %_storage1 %uint_0 - %513 = OpArrayLength %uint %_storage1 0 - %514 = OpISub %uint %513 %uint_1 - %515 = OpExtInst %uint %48 UMin %511 %514 - %516 = OpAccessChain %_ptr_StorageBuffer_v4float %_storage1 %uint_0 %515 %uint_6 - %519 = OpLoad %v4float %516 None - %520 = OpFAdd %v4float %510 %519 - OpStore %_94_f %520 - %522 = OpINotEqual %bool %_85_d %137 - OpSelectionMerge %523 None - OpBranchConditional %522 %524 %525 - %524 = OpLabel - %526 = OpAccessChain %_ptr_Function_float %_94_f %uint_2 - %527 = OpLoad %float %526 None - %528 = OpFMul %float %float_2 %527 - %529 = OpFSub %float %528 %float_1 - %_skTemp24 = OpExtInst %float %48 FAbs %529 - %531 = OpFSub %float %float_1 %_skTemp24 - %532 = OpAccessChain %_ptr_Function_float %_94_f %uint_1 - %533 = OpLoad %float %532 None - %_95_b = OpFMul %float %531 %533 - %535 = OpLoad %v4float %_94_f None - %536 = OpVectorShuffle %v3float %535 %535 0 0 0 - %_96_c = OpFAdd %v3float %536 %538 + %223 = OpFMul %float %_89_i %float_0_5 + %_90_j = OpFSub %float %_88_h %223 + %225 = OpCompositeExtract %float %_87_f 3 + %226 = OpCompositeExtract %float %_87_f 1 + %227 = OpCompositeExtract %float %_87_f 2 + %228 = OpFSub %float %226 %227 + %229 = OpFMul %float %_89_i %float_6 + %231 = OpFAdd %float %229 %float_9_99999975en05 + %233 = OpFDiv %float %228 %231 + %234 = OpFAdd %float %225 %233 + %_skTemp21 = OpExtInst %float %48 FAbs %234 + %236 = OpFMul %float %_90_j %float_2 + %238 = OpAccessChain %_ptr_Function_float %_84_a %uint_3 + %239 = OpLoad %float %238 None + %240 = OpFSub %float %236 %239 + %_skTemp22 = OpExtInst %float %48 FAbs %240 + %242 = OpAccessChain %_ptr_Function_float %_84_a %uint_3 + %243 = OpLoad %float %242 None + %244 = OpFAdd %float %243 %float_9_99999975en05 + %245 = OpFSub %float %244 %_skTemp22 + %_92_l = OpFDiv %float %_89_i %245 + %247 = OpAccessChain %_ptr_Function_float %_84_a %uint_3 + %248 = OpLoad %float %247 None + %249 = OpFAdd %float %248 %float_9_99999975en05 + %_93_m = OpFDiv %float %_90_j %249 + %251 = OpAccessChain %_ptr_Function_float %_84_a %uint_3 + %252 = OpLoad %float %251 None + %253 = OpCompositeConstruct %v4float %_skTemp21 %_92_l %_93_m %252 + OpStore %_84_a %253 None + OpBranch %127 + %129 = OpLabel + %254 = OpAccessChain %_ptr_Function_float %_84_a %uint_3 + %255 = OpLoad %float %254 None + %_skTemp23 = OpExtInst %float %48 FMax %255 %float_9_99999975en05 + %257 = OpLoad %v4float %_84_a None + %258 = OpVectorShuffle %v3float %257 %257 0 1 2 + %259 = OpCompositeConstruct %v3float %_skTemp23 %_skTemp23 %_skTemp23 + %260 = OpFDiv %v3float %258 %259 + %261 = OpAccessChain %_ptr_Function_float %_84_a %uint_3 + %262 = OpLoad %float %261 None + %263 = OpCompositeConstruct %v4float %260 %262 + OpStore %_84_a %263 None + OpBranch %127 + %127 = OpLabel + %130 = OpLoad %uint %shadingSsboIndex None + %131 = OpAccessChain %_ptr_StorageBuffer__runtimearr_FSUniformData %_storage1 %uint_0 + %132 = OpArrayLength %uint %_storage1 0 + %133 = OpISub %uint %132 %uint_1 + %134 = OpExtInst %uint %48 UMin %130 %133 + %135 = OpAccessChain %_ptr_StorageBuffer_mat4v4float %_storage1 %uint_0 %134 %uint_5 + %138 = OpLoad %mat4v4float %135 None + %139 = OpLoad %v4float %_84_a None + %140 = OpMatrixTimesVector %v4float %138 %139 + %141 = OpLoad %uint %shadingSsboIndex None + %142 = OpAccessChain %_ptr_StorageBuffer__runtimearr_FSUniformData %_storage1 %uint_0 + %143 = OpArrayLength %uint %_storage1 0 + %144 = OpISub %uint %143 %uint_1 + %145 = OpExtInst %uint %48 UMin %141 %144 + %146 = OpAccessChain %_ptr_StorageBuffer_v4float %_storage1 %uint_0 %145 %uint_6 + %149 = OpLoad %v4float %146 None + %150 = OpFAdd %v4float %140 %149 + OpStore %_94_f %150 + %152 = OpINotEqual %bool %_85_d %126 + OpSelectionMerge %153 None + OpBranchConditional %152 %154 %155 + %154 = OpLabel + %264 = OpAccessChain %_ptr_Function_float %_94_f %uint_2 + %265 = OpLoad %float %264 None + %266 = OpFMul %float %float_2 %265 + %267 = OpFSub %float %266 %float_1 + %_skTemp24 = OpExtInst %float %48 FAbs %267 + %269 = OpFSub %float %float_1 %_skTemp24 + %270 = OpAccessChain %_ptr_Function_float %_94_f %uint_1 + %271 = OpLoad %float %270 None + %_95_b = OpFMul %float %269 %271 + %273 = OpLoad %v4float %_94_f None + %274 = OpVectorShuffle %v3float %273 %273 0 0 0 + %_96_c = OpFAdd %v3float %274 %276 %_skTemp25 = OpExtInst %v3float %48 Fract %_96_c - %541 = OpVectorTimesScalar %v3float %_skTemp25 %float_6 - %542 = OpCompositeConstruct %v3float %float_3 %float_3 %float_3 - %543 = OpFSub %v3float %541 %542 - %_skTemp26 = OpExtInst %v3float %48 FAbs %543 - %545 = OpCompositeConstruct %v3float %float_1 %float_1 %float_1 - %546 = OpFSub %v3float %_skTemp26 %545 - %_skTemp27 = OpExtInst %v3float %48 NClamp %546 %548 %549 - %550 = OpCompositeConstruct %v3float %float_0_5 %float_0_5 %float_0_5 - %551 = OpFSub %v3float %_skTemp27 %550 - %552 = OpVectorTimesScalar %v3float %551 %_95_b - %553 = OpAccessChain %_ptr_Function_float %_94_f %uint_2 - %554 = OpLoad %float %553 None - %555 = OpCompositeConstruct %v3float %554 %554 %554 - %556 = OpFAdd %v3float %552 %555 - %557 = OpAccessChain %_ptr_Function_float %_94_f %uint_3 - %558 = OpLoad %float %557 None - %559 = OpVectorTimesScalar %v3float %556 %558 - %560 = OpAccessChain %_ptr_Function_float %_94_f %uint_3 - %561 = OpLoad %float %560 None - %562 = OpCompositeConstruct %v4float %559 %561 - %_skTemp28 = OpExtInst %v4float %48 NClamp %562 %70 %385 + %280 = OpVectorTimesScalar %v3float %_skTemp25 %float_6 + %281 = OpCompositeConstruct %v3float %float_3 %float_3 %float_3 + %283 = OpFSub %v3float %280 %281 + %_skTemp26 = OpExtInst %v3float %48 FAbs %283 + %285 = OpCompositeConstruct %v3float %float_1 %float_1 %float_1 + %286 = OpFSub %v3float %_skTemp26 %285 + %_skTemp27 = OpExtInst %v3float %48 NClamp %286 %288 %289 + %290 = OpCompositeConstruct %v3float %float_0_5 %float_0_5 %float_0_5 + %291 = OpFSub %v3float %_skTemp27 %290 + %292 = OpVectorTimesScalar %v3float %291 %_95_b + %293 = OpAccessChain %_ptr_Function_float %_94_f %uint_2 + %294 = OpLoad %float %293 None + %295 = OpCompositeConstruct %v3float %294 %294 %294 + %296 = OpFAdd %v3float %292 %295 + %297 = OpAccessChain %_ptr_Function_float %_94_f %uint_3 + %298 = OpLoad %float %297 None + %299 = OpVectorTimesScalar %v3float %296 %298 + %300 = OpAccessChain %_ptr_Function_float %_94_f %uint_3 + %301 = OpLoad %float %300 None + %302 = OpCompositeConstruct %v4float %299 %301 + %_skTemp28 = OpExtInst %v4float %48 NClamp %302 %70 %96 OpStore %_94_f %_skTemp28 None - OpBranch %523 - %525 = OpLabel - %564 = OpLoad %uint %shadingSsboIndex None - %565 = OpAccessChain %_ptr_StorageBuffer__runtimearr_FSUniformData %_storage1 %uint_0 - %566 = OpArrayLength %uint %_storage1 0 - %567 = OpISub %uint %566 %uint_1 - %568 = OpExtInst %uint %48 UMin %564 %567 - %569 = OpAccessChain %_ptr_StorageBuffer_int %_storage1 %uint_0 %568 %uint_8 - %571 = OpLoad %int %569 None - %572 = OpINotEqual %bool %571 %137 - OpSelectionMerge %573 None - OpBranchConditional %572 %574 %575 - %574 = OpLabel - %576 = OpLoad %v4float %_94_f None - %_skTemp29 = OpExtInst %v4float %48 NClamp %576 %70 %385 + OpBranch %153 + %155 = OpLabel + %304 = OpLoad %uint %shadingSsboIndex None + %305 = OpAccessChain %_ptr_StorageBuffer__runtimearr_FSUniformData %_storage1 %uint_0 + %306 = OpArrayLength %uint %_storage1 0 + %307 = OpISub %uint %306 %uint_1 + %308 = OpExtInst %uint %48 UMin %304 %307 + %309 = OpAccessChain %_ptr_StorageBuffer_int %_storage1 %uint_0 %308 %uint_8 + %311 = OpLoad %int %309 None + %312 = OpINotEqual %bool %311 %126 + OpSelectionMerge %313 None + OpBranchConditional %312 %314 %315 + %314 = OpLabel + %446 = OpLoad %v4float %_94_f None + %_skTemp29 = OpExtInst %v4float %48 NClamp %446 %70 %96 OpStore %_94_f %_skTemp29 None - OpBranch %573 - %575 = OpLabel - %578 = OpAccessChain %_ptr_Function_float %_94_f %uint_3 - %579 = OpLoad %float %578 None - %_skTemp30 = OpExtInst %float %48 NClamp %579 %float_0 %float_1 - %581 = OpAccessChain %_ptr_Function_float %_94_f %uint_3 - OpStore %581 %_skTemp30 None - OpBranch %573 - %573 = OpLabel - %582 = OpLoad %v4float %_94_f None - %583 = OpVectorShuffle %v3float %582 %582 0 1 2 - %584 = OpAccessChain %_ptr_Function_float %_94_f %uint_3 - %585 = OpLoad %float %584 None - %586 = OpVectorTimesScalar %v3float %583 %585 - %587 = OpAccessChain %_ptr_Function_float %_94_f %uint_3 - %588 = OpLoad %float %587 None - %589 = OpCompositeConstruct %v4float %586 %588 - OpStore %_94_f %589 None - OpBranch %523 - %523 = OpLabel + OpBranch %313 + %315 = OpLabel + %448 = OpAccessChain %_ptr_Function_float %_94_f %uint_3 + %449 = OpLoad %float %448 None + %_skTemp30 = OpExtInst %float %48 NClamp %449 %float_0 %float_1 + %451 = OpAccessChain %_ptr_Function_float %_94_f %uint_3 + OpStore %451 %_skTemp30 None + OpBranch %313 + %313 = OpLabel + %316 = OpLoad %v4float %_94_f None + %317 = OpVectorShuffle %v3float %316 %316 0 1 2 + %318 = OpAccessChain %_ptr_Function_float %_94_f %uint_3 + %319 = OpLoad %float %318 None + %320 = OpVectorTimesScalar %v3float %317 %319 + %321 = OpAccessChain %_ptr_Function_float %_94_f %uint_3 + %322 = OpLoad %float %321 None + %323 = OpCompositeConstruct %v4float %320 %322 + OpStore %_94_f %323 None + OpBranch %153 + %153 = OpLabel %outColor_0 = OpLoad %v4float %_94_f None - %591 = OpAccessChain %_ptr_Function_v4float %_stageOut_root %uint_0 - OpStore %591 %outColor_0 None + %157 = OpAccessChain %_ptr_Function_v4float %_stageOut_root %uint_0 + OpStore %157 %outColor_0 None OpReturn OpFunctionEnd %main_inner = OpFunction %FSOut None %594
diff --git a/test/tint/bug/tint/534.wgsl.expected.spvasm b/test/tint/bug/tint/534.wgsl.expected.spvasm index 2e99ae3..9e78556 100644 --- a/test/tint/bug/tint/534.wgsl.expected.spvasm +++ b/test/tint/bug/tint/534.wgsl.expected.spvasm
@@ -5,7 +5,7 @@ ; Schema: 0 OpCapability Shader OpCapability ImageQuery - %61 = OpExtInstImport "GLSL.std.450" + %53 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint GLCompute %main "main" %main_global_invocation_id_Input OpExecutionMode %main LocalSize 1 1 1 @@ -34,11 +34,11 @@ OpName %success "success" OpName %srcColorBits "srcColorBits" OpName %dstColorBits "dstColorBits" + OpName %outputIndex "outputIndex" OpName %tint_loop_idx "tint_loop_idx" OpName %i "i" OpName %tint_low_inc "tint_low_inc" OpName %tint_carry "tint_carry" - OpName %outputIndex "outputIndex" OpName %tint_v4f32_to_v4u32 "tint_v4f32_to_v4u32" OpName %value "value" OpName %main "main" @@ -88,20 +88,20 @@ %_ptr_Function_v2uint = OpTypePointer Function %v2uint %_ptr_Uniform_uint = OpTypePointer Uniform %uint %bool = OpTypeBool -%_ptr_Function_uint = OpTypePointer Function %uint %int = OpTypeInt 32 1 %int_0 = OpConstant %int 0 - %64 = OpConstantComposite %v2uint %uint_1 %uint_1 + %56 = OpConstantComposite %v2uint %uint_1 %uint_1 %v4float = OpTypeVector %float 4 %_ptr_Function_v4float = OpTypePointer Function %v4float %_ptr_Function_bool = OpTypePointer Function %bool %true = OpConstantTrue %bool %v4uint = OpTypeVector %uint 4 %_ptr_Function_v4uint = OpTypePointer Function %v4uint - %87 = OpConstantNull %v4uint + %79 = OpConstantNull %v4uint +%_ptr_Function_uint = OpTypePointer Function %uint %uint_4294967295 = OpConstant %uint 4294967295 - %98 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %103 = OpConstantNull %v2uint + %109 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %114 = OpConstantNull %v2uint %v2bool = OpTypeVector %bool 2 %uint_3 = OpConstant %uint 3 %_ptr_Function_float = OpTypePointer Function %float @@ -129,11 +129,11 @@ %srcColor = OpVariable %_ptr_Function_v4float Function %dstColor = OpVariable %_ptr_Function_v4float Function %success = OpVariable %_ptr_Function_bool Function -%srcColorBits = OpVariable %_ptr_Function_v4uint Function %87 +%srcColorBits = OpVariable %_ptr_Function_v4uint Function %79 %dstColorBits = OpVariable %_ptr_Function_v4uint Function +%outputIndex = OpVariable %_ptr_Function_uint Function %tint_loop_idx = OpVariable %_ptr_Function_v2uint Function %i = OpVariable %_ptr_Function_uint Function -%outputIndex = OpVariable %_ptr_Function_uint Function %28 = OpLoad %3 %src None %29 = OpImageQuerySizeLod %v2uint %28 %uint_0 OpStore %size %29 @@ -147,144 +147,144 @@ OpSelectionMerge %43 None OpBranchConditional %41 %44 %43 %44 = OpLabel - %45 = OpAccessChain %_ptr_Function_uint %size %uint_1 - %47 = OpLoad %uint %45 None - %48 = OpAccessChain %_ptr_Function_uint %dstTexCoord %uint_1 - %49 = OpLoad %uint %48 None - %50 = OpISub %uint %47 %49 - %51 = OpISub %uint %50 %uint_1 - %52 = OpAccessChain %_ptr_Function_uint %srcTexCoord %uint_1 - OpStore %52 %51 None + %101 = OpAccessChain %_ptr_Function_uint %size %uint_1 + %102 = OpLoad %uint %101 None + %103 = OpAccessChain %_ptr_Function_uint %dstTexCoord %uint_1 + %104 = OpLoad %uint %103 None + %105 = OpISub %uint %102 %104 + %106 = OpISub %uint %105 %uint_1 + %107 = OpAccessChain %_ptr_Function_uint %srcTexCoord %uint_1 + OpStore %107 %106 None OpBranch %43 %43 = OpLabel - %53 = OpLoad %3 %src None - %54 = OpLoad %v2uint %srcTexCoord None - %55 = OpImageQueryLevels %uint %53 - %56 = OpISub %uint %55 %uint_1 - %57 = OpBitcast %uint %int_0 - %60 = OpExtInst %uint %61 UMin %57 %56 - %62 = OpImageQuerySizeLod %v2uint %53 %60 - %63 = OpISub %v2uint %62 %64 - %65 = OpExtInst %v2uint %61 UMin %54 %63 - %66 = OpImageFetch %v4float %53 %65 Lod %60 - OpStore %srcColor %66 - %70 = OpLoad %3 %dst None - %71 = OpLoad %v2uint %dstTexCoord None - %72 = OpImageQueryLevels %uint %70 - %73 = OpISub %uint %72 %uint_1 - %74 = OpBitcast %uint %int_0 - %75 = OpExtInst %uint %61 UMin %74 %73 - %76 = OpImageQuerySizeLod %v2uint %70 %75 - %77 = OpISub %v2uint %76 %64 - %78 = OpExtInst %v2uint %61 UMin %71 %77 - %79 = OpImageFetch %v4float %70 %78 Lod %75 - OpStore %dstColor %79 + %45 = OpLoad %3 %src None + %46 = OpLoad %v2uint %srcTexCoord None + %47 = OpImageQueryLevels %uint %45 + %48 = OpISub %uint %47 %uint_1 + %49 = OpBitcast %uint %int_0 + %52 = OpExtInst %uint %53 UMin %49 %48 + %54 = OpImageQuerySizeLod %v2uint %45 %52 + %55 = OpISub %v2uint %54 %56 + %57 = OpExtInst %v2uint %53 UMin %46 %55 + %58 = OpImageFetch %v4float %45 %57 Lod %52 + OpStore %srcColor %58 + %62 = OpLoad %3 %dst None + %63 = OpLoad %v2uint %dstTexCoord None + %64 = OpImageQueryLevels %uint %62 + %65 = OpISub %uint %64 %uint_1 + %66 = OpBitcast %uint %int_0 + %67 = OpExtInst %uint %53 UMin %66 %65 + %68 = OpImageQuerySizeLod %v2uint %62 %67 + %69 = OpISub %v2uint %68 %56 + %70 = OpExtInst %v2uint %53 UMin %63 %69 + %71 = OpImageFetch %v4float %62 %70 Lod %67 + OpStore %dstColor %71 OpStore %success %true - %88 = OpLoad %v4float %dstColor None - %89 = OpFunctionCall %v4uint %tint_v4f32_to_v4u32 %88 - OpStore %dstColorBits %89 - OpBranch %92 - %92 = OpLabel - OpStore %tint_loop_idx %98 + %80 = OpLoad %v4float %dstColor None + %81 = OpFunctionCall %v4uint %tint_v4f32_to_v4u32 %80 + OpStore %dstColorBits %81 + OpBranch %84 + %84 = OpLabel + OpStore %tint_loop_idx %109 OpStore %i %uint_0 - OpBranch %95 - %95 = OpLabel - OpLoopMerge %96 %94 None - OpBranch %93 - %93 = OpLabel - %101 = OpLoad %v2uint %tint_loop_idx None - %102 = OpIEqual %v2bool %101 %103 - %105 = OpAll %bool %102 - OpSelectionMerge %106 None - OpBranchConditional %105 %107 %106 - %107 = OpLabel - OpBranch %96 - %106 = OpLabel - %108 = OpLoad %uint %i None - %109 = OpAccessChain %_ptr_Uniform_uint %11 %uint_0 %uint_3 - %111 = OpLoad %uint %109 None - %112 = OpULessThan %bool %108 %111 - OpSelectionMerge %113 None - OpBranchConditional %112 %113 %114 - %114 = OpLabel - OpBranch %96 - %113 = OpLabel - %115 = OpLoad %uint %i None - %116 = OpLoad %uint %i None - %117 = OpExtInst %uint %61 UMin %116 %uint_3 - %118 = OpAccessChain %_ptr_Function_float %srcColor %117 - %120 = OpLoad %float %118 None - %121 = OpFunctionCall %uint %ConvertToFp16FloatValue %120 - %122 = OpExtInst %uint %61 UMin %115 %uint_3 - %123 = OpAccessChain %_ptr_Function_uint %srcColorBits %122 - OpStore %123 %121 None - %124 = OpLoad %bool %success None - OpSelectionMerge %125 None - OpBranchConditional %124 %126 %127 - %126 = OpLabel - %128 = OpLoad %uint %i None - %129 = OpExtInst %uint %61 UMin %128 %uint_3 - %130 = OpAccessChain %_ptr_Function_uint %srcColorBits %129 - %131 = OpLoad %uint %130 None - %132 = OpLoad %uint %i None - %133 = OpExtInst %uint %61 UMin %132 %uint_3 - %134 = OpAccessChain %_ptr_Function_uint %dstColorBits %133 - %135 = OpLoad %uint %134 None - %136 = OpIEqual %bool %131 %135 - OpBranch %125 - %127 = OpLabel - OpBranch %125 + OpBranch %87 + %87 = OpLabel + OpLoopMerge %88 %86 None + OpBranch %85 + %85 = OpLabel + %112 = OpLoad %v2uint %tint_loop_idx None + %113 = OpIEqual %v2bool %112 %114 + %116 = OpAll %bool %113 + OpSelectionMerge %117 None + OpBranchConditional %116 %118 %117 + %118 = OpLabel + OpBranch %88 + %117 = OpLabel + %119 = OpLoad %uint %i None + %120 = OpAccessChain %_ptr_Uniform_uint %11 %uint_0 %uint_3 + %122 = OpLoad %uint %120 None + %123 = OpULessThan %bool %119 %122 + OpSelectionMerge %124 None + OpBranchConditional %123 %124 %125 %125 = OpLabel - %137 = OpPhi %bool %136 %126 %false %127 - OpStore %success %137 None - OpBranch %94 - %94 = OpLabel - %139 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %140 = OpLoad %uint %139 None -%tint_low_inc = OpISub %uint %140 %uint_1 + OpBranch %88 + %124 = OpLabel + %126 = OpLoad %uint %i None + %127 = OpLoad %uint %i None + %128 = OpExtInst %uint %53 UMin %127 %uint_3 + %129 = OpAccessChain %_ptr_Function_float %srcColor %128 + %131 = OpLoad %float %129 None + %132 = OpFunctionCall %uint %ConvertToFp16FloatValue %131 + %133 = OpExtInst %uint %53 UMin %126 %uint_3 + %134 = OpAccessChain %_ptr_Function_uint %srcColorBits %133 + OpStore %134 %132 None + %135 = OpLoad %bool %success None + OpSelectionMerge %136 None + OpBranchConditional %135 %137 %138 + %137 = OpLabel + %168 = OpLoad %uint %i None + %169 = OpExtInst %uint %53 UMin %168 %uint_3 + %170 = OpAccessChain %_ptr_Function_uint %srcColorBits %169 + %171 = OpLoad %uint %170 None + %172 = OpLoad %uint %i None + %173 = OpExtInst %uint %53 UMin %172 %uint_3 + %174 = OpAccessChain %_ptr_Function_uint %dstColorBits %173 + %175 = OpLoad %uint %174 None + %140 = OpIEqual %bool %171 %175 + OpBranch %136 + %138 = OpLabel + OpBranch %136 + %136 = OpLabel + %139 = OpPhi %bool %140 %137 %false %138 + OpStore %success %139 None + OpBranch %86 + %86 = OpLabel %142 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %142 %tint_low_inc None - %143 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %143 %uint_1 %uint_0 - %145 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %146 = OpLoad %uint %145 None - %147 = OpISub %uint %146 %tint_carry + %143 = OpLoad %uint %142 None +%tint_low_inc = OpISub %uint %143 %uint_1 + %145 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %145 %tint_low_inc None + %146 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %146 %uint_1 %uint_0 %148 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %148 %147 None - %149 = OpLoad %uint %i None - %150 = OpIAdd %uint %149 %uint_1 - OpStore %i %150 None - OpBranch %95 - %96 = OpLabel - %151 = OpCompositeExtract %uint %GlobalInvocationID 1 - %152 = OpAccessChain %_ptr_Function_uint %size %uint_0 - %153 = OpLoad %uint %152 None - %154 = OpIMul %uint %151 %153 - %155 = OpCompositeExtract %uint %GlobalInvocationID 0 - %156 = OpIAdd %uint %154 %155 - OpStore %outputIndex %156 - %158 = OpLoad %bool %success None - OpSelectionMerge %159 None - OpBranchConditional %158 %160 %161 - %160 = OpLabel + %149 = OpLoad %uint %148 None + %150 = OpISub %uint %149 %tint_carry + %151 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %151 %150 None + %152 = OpLoad %uint %i None + %153 = OpIAdd %uint %152 %uint_1 + OpStore %i %153 None + OpBranch %87 + %88 = OpLabel + %89 = OpCompositeExtract %uint %GlobalInvocationID 1 + %90 = OpAccessChain %_ptr_Function_uint %size %uint_0 + %92 = OpLoad %uint %90 None + %93 = OpIMul %uint %89 %92 + %94 = OpCompositeExtract %uint %GlobalInvocationID 0 + %95 = OpIAdd %uint %93 %94 + OpStore %outputIndex %95 + %97 = OpLoad %bool %success None + OpSelectionMerge %98 None + OpBranchConditional %97 %99 %100 + %99 = OpLabel + %154 = OpLoad %uint %outputIndex None + %155 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %output %uint_0 + %157 = OpArrayLength %uint %output 0 + %158 = OpISub %uint %157 %uint_1 + %159 = OpExtInst %uint %53 UMin %154 %158 + %160 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %159 + OpStore %160 %uint_1 None + OpBranch %98 + %100 = OpLabel %162 = OpLoad %uint %outputIndex None %163 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %output %uint_0 - %165 = OpArrayLength %uint %output 0 - %166 = OpISub %uint %165 %uint_1 - %167 = OpExtInst %uint %61 UMin %162 %166 - %168 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %167 - OpStore %168 %uint_1 None - OpBranch %159 - %161 = OpLabel - %170 = OpLoad %uint %outputIndex None - %171 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %output %uint_0 - %172 = OpArrayLength %uint %output 0 - %173 = OpISub %uint %172 %uint_1 - %174 = OpExtInst %uint %61 UMin %170 %173 - %175 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %174 - OpStore %175 %uint_0 None - OpBranch %159 - %159 = OpLabel + %164 = OpArrayLength %uint %output 0 + %165 = OpISub %uint %164 %uint_1 + %166 = OpExtInst %uint %53 UMin %162 %165 + %167 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %166 + OpStore %167 %uint_0 None + OpBranch %98 + %98 = OpLabel OpReturn OpFunctionEnd %tint_v4f32_to_v4u32 = OpFunction %v4uint None %177 @@ -292,7 +292,7 @@ %178 = OpLabel %179 = OpConvertFToU %v4uint %value %180 = OpFOrdGreaterThanEqual %v4bool %value %181 - %183 = OpSelect %v4uint %180 %179 %87 + %183 = OpSelect %v4uint %180 %179 %79 %184 = OpFOrdLessThanEqual %v4bool %value %185 %187 = OpSelect %v4uint %184 %183 %188 OpReturnValue %187
diff --git a/test/tint/bug/tint/744.wgsl.expected.spvasm b/test/tint/bug/tint/744.wgsl.expected.spvasm index 51fad41..4e6d060 100644 --- a/test/tint/bug/tint/744.wgsl.expected.spvasm +++ b/test/tint/bug/tint/744.wgsl.expected.spvasm
@@ -4,7 +4,7 @@ ; Bound: 94 ; Schema: 0 OpCapability Shader - %63 = OpExtInstImport "GLSL.std.450" + %52 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint GLCompute %main "main" %main_global_invocation_id_Input OpExecutionMode %main LocalSize 2 2 1 @@ -26,10 +26,10 @@ OpName %dimInner "dimInner" OpName %dimOutter "dimOutter" OpName %result "result" + OpName %index "index" OpName %i "i" OpName %a "a" OpName %b "b" - OpName %index "index" OpName %main "main" OpDecorate %_runtimearr_uint ArrayStride 4 OpMemberDecorate %Matrix_tint_explicit_layout 0 Offset 0 @@ -76,9 +76,9 @@ %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %_ptr_Function_uint = OpTypePointer Function %uint - %bool = OpTypeBool %_ptr_StorageBuffer__runtimearr_uint = OpTypePointer StorageBuffer %_runtimearr_uint %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint + %bool = OpTypeBool %_ptr_StorageBuffer__runtimearr_uint_0 = OpTypePointer StorageBuffer %_runtimearr_uint %_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint %90 = OpTypeFunction %void @@ -105,55 +105,55 @@ OpLoopMerge %42 %40 None OpBranch %39 %39 = OpLabel - %44 = OpLoad %uint %i None - %45 = OpULessThan %bool %44 %dimInner - OpSelectionMerge %47 None - OpBranchConditional %45 %47 %48 - %48 = OpLabel + %57 = OpLoad %uint %i None + %58 = OpULessThan %bool %57 %dimInner + OpSelectionMerge %60 None + OpBranchConditional %58 %60 %61 + %61 = OpLabel OpBranch %42 - %47 = OpLabel - %49 = OpLoad %uint %i None - %50 = OpCompositeExtract %uint %resultCell 0 - %51 = OpIMul %uint %50 %dimInner - %a = OpIAdd %uint %49 %51 - %53 = OpCompositeExtract %uint %resultCell 1 - %54 = OpLoad %uint %i None - %55 = OpIMul %uint %54 %dimOutter - %b = OpIAdd %uint %53 %55 - %57 = OpLoad %uint %result None - %58 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %firstMatrix %uint_0 - %60 = OpArrayLength %uint %firstMatrix 0 - %61 = OpISub %uint %60 %uint_1 - %62 = OpExtInst %uint %63 UMin %a %61 - %64 = OpAccessChain %_ptr_StorageBuffer_uint %firstMatrix %uint_0 %62 - %66 = OpLoad %uint %64 None - %67 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %secondMatrix %uint_0 - %68 = OpArrayLength %uint %secondMatrix 0 - %69 = OpISub %uint %68 %uint_1 - %70 = OpExtInst %uint %63 UMin %b %69 - %71 = OpAccessChain %_ptr_StorageBuffer_uint %secondMatrix %uint_0 %70 - %72 = OpLoad %uint %71 None - %73 = OpIMul %uint %66 %72 - %74 = OpIAdd %uint %57 %73 - OpStore %result %74 None + %60 = OpLabel + %62 = OpLoad %uint %i None + %63 = OpCompositeExtract %uint %resultCell 0 + %64 = OpIMul %uint %63 %dimInner + %a = OpIAdd %uint %62 %64 + %66 = OpCompositeExtract %uint %resultCell 1 + %67 = OpLoad %uint %i None + %68 = OpIMul %uint %67 %dimOutter + %b = OpIAdd %uint %66 %68 + %70 = OpLoad %uint %result None + %71 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint_0 %firstMatrix %uint_0 + %73 = OpArrayLength %uint %firstMatrix 0 + %74 = OpISub %uint %73 %uint_1 + %75 = OpExtInst %uint %52 UMin %a %74 + %76 = OpAccessChain %_ptr_StorageBuffer_uint_0 %firstMatrix %uint_0 %75 + %78 = OpLoad %uint %76 None + %79 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint_0 %secondMatrix %uint_0 + %80 = OpArrayLength %uint %secondMatrix 0 + %81 = OpISub %uint %80 %uint_1 + %82 = OpExtInst %uint %52 UMin %b %81 + %83 = OpAccessChain %_ptr_StorageBuffer_uint_0 %secondMatrix %uint_0 %82 + %84 = OpLoad %uint %83 None + %85 = OpIMul %uint %78 %84 + %86 = OpIAdd %uint %70 %85 + OpStore %result %86 None OpBranch %40 %40 = OpLabel - %75 = OpLoad %uint %i None - %76 = OpIAdd %uint %75 %uint_1 - OpStore %i %76 None + %87 = OpLoad %uint %i None + %88 = OpIAdd %uint %87 %uint_1 + OpStore %i %88 None OpBranch %41 %42 = OpLabel - %77 = OpCompositeExtract %uint %resultCell 1 - %78 = OpCompositeExtract %uint %resultCell 0 - %79 = OpIMul %uint %78 %dimOutter - %index = OpIAdd %uint %77 %79 - %81 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint_0 %resultMatrix %uint_0 - %83 = OpArrayLength %uint %resultMatrix 0 - %84 = OpISub %uint %83 %uint_1 - %85 = OpExtInst %uint %63 UMin %index %84 - %86 = OpAccessChain %_ptr_StorageBuffer_uint_0 %resultMatrix %uint_0 %85 - %88 = OpLoad %uint %result None - OpStore %86 %88 None + %43 = OpCompositeExtract %uint %resultCell 1 + %44 = OpCompositeExtract %uint %resultCell 0 + %45 = OpIMul %uint %44 %dimOutter + %index = OpIAdd %uint %43 %45 + %47 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %resultMatrix %uint_0 + %49 = OpArrayLength %uint %resultMatrix 0 + %50 = OpISub %uint %49 %uint_1 + %51 = OpExtInst %uint %52 UMin %index %50 + %53 = OpAccessChain %_ptr_StorageBuffer_uint %resultMatrix %uint_0 %51 + %55 = OpLoad %uint %result None + OpStore %53 %55 None OpReturn OpFunctionEnd %main = OpFunction %void None %90
diff --git a/test/tint/bug/tint/913.wgsl.expected.spvasm b/test/tint/bug/tint/913.wgsl.expected.spvasm index d5d9140..5b2fb1c 100644 --- a/test/tint/bug/tint/913.wgsl.expected.spvasm +++ b/test/tint/bug/tint/913.wgsl.expected.spvasm
@@ -33,10 +33,10 @@ OpName %dstTexCoord "dstTexCoord" OpName %nonCoveredColor "nonCoveredColor" OpName %success "success" + OpName %outputIndex "outputIndex" OpName %srcTexCoord "srcTexCoord" OpName %srcColor "srcColor" OpName %dstColor "dstColor" - OpName %outputIndex "outputIndex" OpName %main "main" OpDecorate %src DescriptorSet 0 OpDecorate %src Binding 0 @@ -94,17 +94,17 @@ %_ptr_Uniform_uint = OpTypePointer Uniform %uint %uint_1 = OpConstant %uint 1 %uint_4 = OpConstant %uint 4 - %int = OpTypeInt 32 1 - %v2int = OpTypeVector %int 2 - %int_0 = OpConstant %int 0 - %111 = OpConstantComposite %v2uint %uint_1 %uint_1 - %v4bool = OpTypeVector %bool 4 %false = OpConstantFalse %bool %uint_2 = OpConstant %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint -%_ptr_Function_uint = OpTypePointer Function %uint + %int = OpTypeInt 32 1 + %v2int = OpTypeVector %int 2 + %int_0 = OpConstant %int 0 + %138 = OpConstantComposite %v2uint %uint_1 %uint_1 %_ptr_StorageBuffer__runtimearr_uint = OpTypePointer StorageBuffer %_runtimearr_uint %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint + %v4bool = OpTypeVector %bool 4 +%_ptr_Function_uint = OpTypePointer Function %uint %236 = OpTypeFunction %void %aboutEqual = OpFunction %bool None %23 %value = OpFunctionParameter %float @@ -136,228 +136,228 @@ %57 = OpLabel OpBranch %56 %58 = OpLabel - %59 = OpCompositeExtract %uint %dstTexCoord 1 - %60 = OpAccessChain %_ptr_Uniform_v2uint %11 %uint_0 %uint_3 - %61 = OpAccessChain %_ptr_Uniform_uint %60 %uint_1 - %63 = OpLoad %uint %61 None - %64 = OpULessThan %bool %59 %63 - OpBranch %56 - %56 = OpLabel - %65 = OpPhi %bool %true %57 %64 %58 - OpSelectionMerge %66 None - OpBranchConditional %65 %67 %68 - %67 = OpLabel - OpBranch %66 - %68 = OpLabel - %69 = OpCompositeExtract %uint %dstTexCoord 0 - %70 = OpAccessChain %_ptr_Uniform_v2uint %11 %uint_0 %uint_3 - %71 = OpAccessChain %_ptr_Uniform_uint %70 %uint_0 - %72 = OpLoad %uint %71 None - %73 = OpAccessChain %_ptr_Uniform_v2uint %11 %uint_0 %uint_4 - %75 = OpAccessChain %_ptr_Uniform_uint %73 %uint_0 - %76 = OpLoad %uint %75 None - %77 = OpIAdd %uint %72 %76 - %78 = OpUGreaterThanEqual %bool %69 %77 - OpBranch %66 - %66 = OpLabel - %79 = OpPhi %bool %true %67 %78 %68 - OpSelectionMerge %80 None - OpBranchConditional %79 %81 %82 - %81 = OpLabel - OpBranch %80 - %82 = OpLabel %83 = OpCompositeExtract %uint %dstTexCoord 1 %84 = OpAccessChain %_ptr_Uniform_v2uint %11 %uint_0 %uint_3 %85 = OpAccessChain %_ptr_Uniform_uint %84 %uint_1 - %86 = OpLoad %uint %85 None - %87 = OpAccessChain %_ptr_Uniform_v2uint %11 %uint_0 %uint_4 - %88 = OpAccessChain %_ptr_Uniform_uint %87 %uint_1 - %89 = OpLoad %uint %88 None - %90 = OpIAdd %uint %86 %89 - %91 = OpUGreaterThanEqual %bool %83 %90 - OpBranch %80 - %80 = OpLabel - %92 = OpPhi %bool %true %81 %91 %82 - OpSelectionMerge %93 None - OpBranchConditional %92 %94 %95 - %94 = OpLabel - %96 = OpLoad %bool %success None - OpSelectionMerge %97 None - OpBranchConditional %96 %98 %99 - %98 = OpLabel - %100 = OpLoad %3 %dst None - %103 = OpBitcast %v2int %dstTexCoord - %104 = OpImageQueryLevels %uint %100 - %105 = OpISub %uint %104 %uint_1 - %106 = OpBitcast %uint %int_0 - %108 = OpExtInst %uint %27 UMin %106 %105 - %109 = OpImageQuerySizeLod %v2uint %100 %108 - %110 = OpISub %v2uint %109 %111 - %112 = OpBitcast %v2uint %103 - %113 = OpExtInst %v2uint %27 UMin %112 %110 - %114 = OpImageFetch %v4float %100 %113 Lod %108 - %115 = OpFOrdEqual %v4bool %114 %nonCoveredColor - %117 = OpAll %bool %115 - OpBranch %97 - %99 = OpLabel - OpBranch %97 - %97 = OpLabel - %118 = OpPhi %bool %117 %98 %false %99 - OpStore %success %118 None - OpBranch %93 - %95 = OpLabel - %120 = OpAccessChain %_ptr_Uniform_v2uint %11 %uint_0 %uint_3 - %121 = OpLoad %v2uint %120 None - %122 = OpISub %v2uint %dstTexCoord %121 - %123 = OpAccessChain %_ptr_Uniform_v2uint %11 %uint_0 %uint_2 - %125 = OpLoad %v2uint %123 None - %126 = OpIAdd %v2uint %122 %125 - OpStore %srcTexCoord %126 - %129 = OpAccessChain %_ptr_Uniform_uint %11 %uint_0 %uint_0 - %130 = OpLoad %uint %129 None - %131 = OpIEqual %bool %130 %uint_1 - OpSelectionMerge %132 None - OpBranchConditional %131 %133 %132 - %133 = OpLabel - %134 = OpCompositeExtract %uint %srcSize 1 - %135 = OpAccessChain %_ptr_Function_uint %srcTexCoord %uint_1 - %137 = OpLoad %uint %135 None - %138 = OpISub %uint %134 %137 - %139 = OpISub %uint %138 %uint_1 - %140 = OpAccessChain %_ptr_Function_uint %srcTexCoord %uint_1 - OpStore %140 %139 None - OpBranch %132 - %132 = OpLabel - %141 = OpLoad %3 %src None - %142 = OpLoad %v2uint %srcTexCoord None - %143 = OpBitcast %v2int %142 - %144 = OpImageQueryLevels %uint %141 + %87 = OpLoad %uint %85 None + %60 = OpULessThan %bool %83 %87 + OpBranch %56 + %56 = OpLabel + %59 = OpPhi %bool %true %57 %60 %58 + OpSelectionMerge %61 None + OpBranchConditional %59 %62 %63 + %62 = OpLabel + OpBranch %61 + %63 = OpLabel + %88 = OpCompositeExtract %uint %dstTexCoord 0 + %89 = OpAccessChain %_ptr_Uniform_v2uint %11 %uint_0 %uint_3 + %90 = OpAccessChain %_ptr_Uniform_uint %89 %uint_0 + %91 = OpLoad %uint %90 None + %92 = OpAccessChain %_ptr_Uniform_v2uint %11 %uint_0 %uint_4 + %94 = OpAccessChain %_ptr_Uniform_uint %92 %uint_0 + %95 = OpLoad %uint %94 None + %96 = OpIAdd %uint %91 %95 + %65 = OpUGreaterThanEqual %bool %88 %96 + OpBranch %61 + %61 = OpLabel + %64 = OpPhi %bool %true %62 %65 %63 + OpSelectionMerge %66 None + OpBranchConditional %64 %67 %68 + %67 = OpLabel + OpBranch %66 + %68 = OpLabel + %97 = OpCompositeExtract %uint %dstTexCoord 1 + %98 = OpAccessChain %_ptr_Uniform_v2uint %11 %uint_0 %uint_3 + %99 = OpAccessChain %_ptr_Uniform_uint %98 %uint_1 + %100 = OpLoad %uint %99 None + %101 = OpAccessChain %_ptr_Uniform_v2uint %11 %uint_0 %uint_4 + %102 = OpAccessChain %_ptr_Uniform_uint %101 %uint_1 + %103 = OpLoad %uint %102 None + %104 = OpIAdd %uint %100 %103 + %70 = OpUGreaterThanEqual %bool %97 %104 + OpBranch %66 + %66 = OpLabel + %69 = OpPhi %bool %true %67 %70 %68 + OpSelectionMerge %71 None + OpBranchConditional %69 %72 %73 + %72 = OpLabel + %105 = OpLoad %bool %success None + OpSelectionMerge %106 None + OpBranchConditional %105 %107 %108 + %107 = OpLabel + %171 = OpLoad %3 %dst None + %172 = OpBitcast %v2int %dstTexCoord + %173 = OpImageQueryLevels %uint %171 + %174 = OpISub %uint %173 %uint_1 + %175 = OpBitcast %uint %int_0 + %176 = OpExtInst %uint %27 UMin %175 %174 + %177 = OpImageQuerySizeLod %v2uint %171 %176 + %178 = OpISub %v2uint %177 %138 + %179 = OpBitcast %v2uint %172 + %180 = OpExtInst %v2uint %27 UMin %179 %178 + %181 = OpImageFetch %v4float %171 %180 Lod %176 + %182 = OpFOrdEqual %v4bool %181 %nonCoveredColor + %110 = OpAll %bool %182 + OpBranch %106 + %108 = OpLabel + OpBranch %106 + %106 = OpLabel + %109 = OpPhi %bool %110 %107 %false %108 + OpStore %success %109 None + OpBranch %71 + %73 = OpLabel + %112 = OpAccessChain %_ptr_Uniform_v2uint %11 %uint_0 %uint_3 + %113 = OpLoad %v2uint %112 None + %114 = OpISub %v2uint %dstTexCoord %113 + %115 = OpAccessChain %_ptr_Uniform_v2uint %11 %uint_0 %uint_2 + %117 = OpLoad %v2uint %115 None + %118 = OpIAdd %v2uint %114 %117 + OpStore %srcTexCoord %118 + %121 = OpAccessChain %_ptr_Uniform_uint %11 %uint_0 %uint_0 + %122 = OpLoad %uint %121 None + %123 = OpIEqual %bool %122 %uint_1 + OpSelectionMerge %124 None + OpBranchConditional %123 %125 %124 + %125 = OpLabel + %184 = OpCompositeExtract %uint %srcSize 1 + %185 = OpAccessChain %_ptr_Function_uint %srcTexCoord %uint_1 + %187 = OpLoad %uint %185 None + %188 = OpISub %uint %184 %187 + %189 = OpISub %uint %188 %uint_1 + %190 = OpAccessChain %_ptr_Function_uint %srcTexCoord %uint_1 + OpStore %190 %189 None + OpBranch %124 + %124 = OpLabel + %126 = OpLoad %3 %src None + %127 = OpLoad %v2uint %srcTexCoord None + %130 = OpBitcast %v2int %127 + %131 = OpImageQueryLevels %uint %126 + %132 = OpISub %uint %131 %uint_1 + %133 = OpBitcast %uint %int_0 + %135 = OpExtInst %uint %27 UMin %133 %132 + %136 = OpImageQuerySizeLod %v2uint %126 %135 + %137 = OpISub %v2uint %136 %138 + %139 = OpBitcast %v2uint %130 + %140 = OpExtInst %v2uint %27 UMin %139 %137 + %srcColor = OpImageFetch %v4float %126 %140 Lod %135 + %142 = OpLoad %3 %dst None + %143 = OpBitcast %v2int %dstTexCoord + %144 = OpImageQueryLevels %uint %142 %145 = OpISub %uint %144 %uint_1 %146 = OpBitcast %uint %int_0 %147 = OpExtInst %uint %27 UMin %146 %145 - %148 = OpImageQuerySizeLod %v2uint %141 %147 - %149 = OpISub %v2uint %148 %111 + %148 = OpImageQuerySizeLod %v2uint %142 %147 + %149 = OpISub %v2uint %148 %138 %150 = OpBitcast %v2uint %143 %151 = OpExtInst %v2uint %27 UMin %150 %149 - %srcColor = OpImageFetch %v4float %141 %151 Lod %147 - %153 = OpLoad %3 %dst None - %154 = OpBitcast %v2int %dstTexCoord - %155 = OpImageQueryLevels %uint %153 - %156 = OpISub %uint %155 %uint_1 - %157 = OpBitcast %uint %int_0 - %158 = OpExtInst %uint %27 UMin %157 %156 - %159 = OpImageQuerySizeLod %v2uint %153 %158 - %160 = OpISub %v2uint %159 %111 - %161 = OpBitcast %v2uint %154 - %162 = OpExtInst %v2uint %27 UMin %161 %160 - %dstColor = OpImageFetch %v4float %153 %162 Lod %158 - %164 = OpAccessChain %_ptr_Uniform_uint %11 %uint_0 %uint_1 - %165 = OpLoad %uint %164 None - %166 = OpIEqual %bool %165 %uint_2 - OpSelectionMerge %167 None - OpBranchConditional %166 %168 %169 - %168 = OpLabel - %170 = OpLoad %bool %success None - OpSelectionMerge %171 None - OpBranchConditional %170 %172 %173 - %172 = OpLabel - %174 = OpCompositeExtract %float %dstColor 0 - %175 = OpCompositeExtract %float %srcColor 0 - %176 = OpFunctionCall %bool %aboutEqual %174 %175 - OpBranch %171 - %173 = OpLabel - OpBranch %171 - %171 = OpLabel - %177 = OpPhi %bool %176 %172 %false %173 - OpSelectionMerge %178 None - OpBranchConditional %177 %179 %180 - %179 = OpLabel - %181 = OpCompositeExtract %float %dstColor 1 - %182 = OpCompositeExtract %float %srcColor 1 - %183 = OpFunctionCall %bool %aboutEqual %181 %182 - OpBranch %178 - %180 = OpLabel - OpBranch %178 - %178 = OpLabel - %184 = OpPhi %bool %183 %179 %false %180 - OpStore %success %184 None - OpBranch %167 - %169 = OpLabel - %185 = OpLoad %bool %success None - OpSelectionMerge %186 None - OpBranchConditional %185 %187 %188 - %187 = OpLabel - %189 = OpCompositeExtract %float %dstColor 0 - %190 = OpCompositeExtract %float %srcColor 0 - %191 = OpFunctionCall %bool %aboutEqual %189 %190 - OpBranch %186 - %188 = OpLabel - OpBranch %186 - %186 = OpLabel - %192 = OpPhi %bool %191 %187 %false %188 - OpSelectionMerge %193 None - OpBranchConditional %192 %194 %195 - %194 = OpLabel - %196 = OpCompositeExtract %float %dstColor 1 - %197 = OpCompositeExtract %float %srcColor 1 - %198 = OpFunctionCall %bool %aboutEqual %196 %197 - OpBranch %193 - %195 = OpLabel - OpBranch %193 + %dstColor = OpImageFetch %v4float %142 %151 Lod %147 + %153 = OpAccessChain %_ptr_Uniform_uint %11 %uint_0 %uint_1 + %154 = OpLoad %uint %153 None + %155 = OpIEqual %bool %154 %uint_2 + OpSelectionMerge %156 None + OpBranchConditional %155 %157 %158 + %157 = OpLabel + %191 = OpLoad %bool %success None + OpSelectionMerge %192 None + OpBranchConditional %191 %193 %194 %193 = OpLabel - %199 = OpPhi %bool %198 %194 %false %195 - OpSelectionMerge %200 None - OpBranchConditional %199 %201 %202 - %201 = OpLabel - %203 = OpCompositeExtract %float %dstColor 2 - %204 = OpCompositeExtract %float %srcColor 2 - %205 = OpFunctionCall %bool %aboutEqual %203 %204 - OpBranch %200 - %202 = OpLabel - OpBranch %200 - %200 = OpLabel - %206 = OpPhi %bool %205 %201 %false %202 - OpSelectionMerge %207 None - OpBranchConditional %206 %208 %209 - %208 = OpLabel - %210 = OpCompositeExtract %float %dstColor 3 - %211 = OpCompositeExtract %float %srcColor 3 - %212 = OpFunctionCall %bool %aboutEqual %210 %211 - OpBranch %207 + %223 = OpCompositeExtract %float %dstColor 0 + %224 = OpCompositeExtract %float %srcColor 0 + %196 = OpFunctionCall %bool %aboutEqual %223 %224 + OpBranch %192 + %194 = OpLabel + OpBranch %192 + %192 = OpLabel + %195 = OpPhi %bool %196 %193 %false %194 + OpSelectionMerge %197 None + OpBranchConditional %195 %198 %199 + %198 = OpLabel + %225 = OpCompositeExtract %float %dstColor 1 + %226 = OpCompositeExtract %float %srcColor 1 + %201 = OpFunctionCall %bool %aboutEqual %225 %226 + OpBranch %197 + %199 = OpLabel + OpBranch %197 + %197 = OpLabel + %200 = OpPhi %bool %201 %198 %false %199 + OpStore %success %200 None + OpBranch %156 + %158 = OpLabel + %202 = OpLoad %bool %success None + OpSelectionMerge %203 None + OpBranchConditional %202 %204 %205 + %204 = OpLabel + %227 = OpCompositeExtract %float %dstColor 0 + %228 = OpCompositeExtract %float %srcColor 0 + %207 = OpFunctionCall %bool %aboutEqual %227 %228 + OpBranch %203 + %205 = OpLabel + OpBranch %203 + %203 = OpLabel + %206 = OpPhi %bool %207 %204 %false %205 + OpSelectionMerge %208 None + OpBranchConditional %206 %209 %210 %209 = OpLabel - OpBranch %207 - %207 = OpLabel - %213 = OpPhi %bool %212 %208 %false %209 - OpStore %success %213 None - OpBranch %167 - %167 = OpLabel - OpBranch %93 - %93 = OpLabel - %214 = OpCompositeExtract %uint %GlobalInvocationID 1 - %215 = OpCompositeExtract %uint %dstSize 0 - %216 = OpIMul %uint %214 %215 - %217 = OpCompositeExtract %uint %GlobalInvocationID 0 -%outputIndex = OpIAdd %uint %216 %217 - %219 = OpLoad %bool %success None - OpSelectionMerge %220 None - OpBranchConditional %219 %221 %222 - %221 = OpLabel - %223 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %output %uint_0 - %225 = OpArrayLength %uint %output 0 - %226 = OpISub %uint %225 %uint_1 - %227 = OpExtInst %uint %27 UMin %outputIndex %226 - %228 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %227 - OpStore %228 %uint_1 None - OpBranch %220 - %222 = OpLabel - %230 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %output %uint_0 - %231 = OpArrayLength %uint %output 0 - %232 = OpISub %uint %231 %uint_1 - %233 = OpExtInst %uint %27 UMin %outputIndex %232 - %234 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %233 - OpStore %234 %uint_0 None - OpBranch %220 + %229 = OpCompositeExtract %float %dstColor 1 + %230 = OpCompositeExtract %float %srcColor 1 + %212 = OpFunctionCall %bool %aboutEqual %229 %230 + OpBranch %208 + %210 = OpLabel + OpBranch %208 + %208 = OpLabel + %211 = OpPhi %bool %212 %209 %false %210 + OpSelectionMerge %213 None + OpBranchConditional %211 %214 %215 + %214 = OpLabel + %231 = OpCompositeExtract %float %dstColor 2 + %232 = OpCompositeExtract %float %srcColor 2 + %217 = OpFunctionCall %bool %aboutEqual %231 %232 + OpBranch %213 + %215 = OpLabel + OpBranch %213 + %213 = OpLabel + %216 = OpPhi %bool %217 %214 %false %215 + OpSelectionMerge %218 None + OpBranchConditional %216 %219 %220 + %219 = OpLabel + %233 = OpCompositeExtract %float %dstColor 3 + %234 = OpCompositeExtract %float %srcColor 3 + %222 = OpFunctionCall %bool %aboutEqual %233 %234 + OpBranch %218 %220 = OpLabel + OpBranch %218 + %218 = OpLabel + %221 = OpPhi %bool %222 %219 %false %220 + OpStore %success %221 None + OpBranch %156 + %156 = OpLabel + OpBranch %71 + %71 = OpLabel + %74 = OpCompositeExtract %uint %GlobalInvocationID 1 + %75 = OpCompositeExtract %uint %dstSize 0 + %76 = OpIMul %uint %74 %75 + %77 = OpCompositeExtract %uint %GlobalInvocationID 0 +%outputIndex = OpIAdd %uint %76 %77 + %79 = OpLoad %bool %success None + OpSelectionMerge %80 None + OpBranchConditional %79 %81 %82 + %81 = OpLabel + %159 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %output %uint_0 + %161 = OpArrayLength %uint %output 0 + %162 = OpISub %uint %161 %uint_1 + %163 = OpExtInst %uint %27 UMin %outputIndex %162 + %164 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %163 + OpStore %164 %uint_1 None + OpBranch %80 + %82 = OpLabel + %166 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %output %uint_0 + %167 = OpArrayLength %uint %output 0 + %168 = OpISub %uint %167 %uint_1 + %169 = OpExtInst %uint %27 UMin %outputIndex %168 + %170 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %169 + OpStore %170 %uint_0 None + OpBranch %80 + %80 = OpLabel OpReturn OpFunctionEnd %main = OpFunction %void None %236
diff --git a/test/tint/bug/tint/914.wgsl.expected.spvasm b/test/tint/bug/tint/914.wgsl.expected.spvasm index 0bd2beb..4037c18 100644 --- a/test/tint/bug/tint/914.wgsl.expected.spvasm +++ b/test/tint/bug/tint/914.wgsl.expected.spvasm
@@ -4,7 +4,7 @@ ; Bound: 430 ; Schema: 0 OpCapability Shader - %63 = OpExtInstImport "GLSL.std.450" + %67 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint GLCompute %main "main" %main_local_invocation_id_Input %main_global_invocation_id_Input %main_local_invocation_index_Input OpExecutionMode %main LocalSize 16 16 1 @@ -53,25 +53,25 @@ OpName %acc "acc" OpName %ACached "ACached" OpName %BCached "BCached" - OpName %index_0 "index" OpName %ColPerThreadA "ColPerThreadA" OpName %tileColA "tileColA" OpName %ColPerThreadA "RowPerThreadB" OpName %tileRowB "tileRowB" + OpName %index_0 "index" OpName %t "t" OpName %innerRow "innerRow" + OpName %innerRow_0 "innerRow" + OpName %innerRow_1 "innerRow" + OpName %k "k" OpName %innerCol "innerCol" + OpName %index_1 "index" + OpName %innerCol_0 "innerCol" OpName %inputRow "inputRow" OpName %inputCol "inputCol" - OpName %innerRow_0 "innerRow" - OpName %innerCol_0 "innerCol" + OpName %innerCol_1 "innerCol" OpName %inputRow_0 "inputRow" OpName %inputCol_0 "inputCol" - OpName %k "k" OpName %inner "inner" - OpName %innerRow_1 "innerRow" - OpName %innerCol_1 "innerCol" - OpName %index_1 "index" OpName %innerRow_2 "innerRow" OpName %innerCol_2 "innerCol" OpName %index_2 "index" @@ -135,8 +135,8 @@ %true = OpConstantTrue %bool %_ptr_Uniform_uint = OpTypePointer Uniform %uint %uint_0 = OpConstant %uint 0 - %uint_1 = OpConstant %uint 1 %false = OpConstantFalse %bool + %uint_1 = OpConstant %uint 1 %_ptr_StorageBuffer__runtimearr_float = OpTypePointer StorageBuffer %_runtimearr_float %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %float_0 = OpConstant %float 0 @@ -146,18 +146,18 @@ %_ptr_StorageBuffer__runtimearr_float_0 = OpTypePointer StorageBuffer %_runtimearr_float %_ptr_StorageBuffer_float_0 = OpTypePointer StorageBuffer %float %139 = OpTypeFunction %void %v3uint %v3uint %uint - %uint_4096 = OpConstant %uint 4096 -%_ptr_Workgroup_float = OpTypePointer Workgroup %float - %uint_256 = OpConstant %uint 256 %uint_264 = OpConstant %uint 264 %ColPerThreadA = OpConstant %uint 4 %uint_16 = OpConstant %uint 16 %_arr_float_uint_16 = OpTypeArray %float %uint_16 %_ptr_Function__arr_float_uint_16 = OpTypePointer Function %_arr_float_uint_16 - %181 = OpConstantNull %_arr_float_uint_16 + %169 = OpConstantNull %_arr_float_uint_16 %_arr_float_ColPerThreadA = OpTypeArray %float %ColPerThreadA %_ptr_Function__arr_float_ColPerThreadA = OpTypePointer Function %_arr_float_ColPerThreadA - %186 = OpConstantNull %_arr_float_ColPerThreadA + %174 = OpConstantNull %_arr_float_ColPerThreadA + %uint_4096 = OpConstant %uint 4096 +%_ptr_Workgroup_float = OpTypePointer Workgroup %float + %uint_256 = OpConstant %uint 256 %_ptr_Function_uint = OpTypePointer Function %uint %uint_15 = OpConstant %uint 15 %uint_63 = OpConstant %uint 63 @@ -177,40 +177,40 @@ OpSelectionMerge %43 None OpBranchConditional %42 %44 %45 %44 = OpLabel - %46 = OpAccessChain %_ptr_Uniform_uint %9 %uint_0 %uint_1 - %48 = OpLoad %uint %46 None - %49 = OpULessThan %bool %col %48 + %55 = OpAccessChain %_ptr_Uniform_uint %9 %uint_0 %uint_1 + %57 = OpLoad %uint %55 None + %47 = OpULessThan %bool %col %57 OpBranch %43 %45 = OpLabel OpBranch %43 %43 = OpLabel - %50 = OpPhi %bool %49 %44 %false %45 - OpSelectionMerge %52 None - OpBranchConditional %50 %53 %52 - %53 = OpLabel - %54 = OpAccessChain %_ptr_Uniform_uint %9 %uint_0 %uint_1 - %55 = OpLoad %uint %54 None - %56 = OpIMul %uint %row %55 - %57 = OpIAdd %uint %56 %col - %58 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %firstMatrix %uint_0 - %60 = OpArrayLength %uint %firstMatrix 0 - %61 = OpISub %uint %60 %uint_1 - %62 = OpExtInst %uint %63 UMin %57 %61 - %64 = OpAccessChain %_ptr_StorageBuffer_float %firstMatrix %uint_0 %62 - %result = OpLoad %float %64 None + %46 = OpPhi %bool %47 %44 %false %45 + OpSelectionMerge %49 None + OpBranchConditional %46 %50 %49 + %50 = OpLabel + %58 = OpAccessChain %_ptr_Uniform_uint %9 %uint_0 %uint_1 + %59 = OpLoad %uint %58 None + %60 = OpIMul %uint %row %59 + %61 = OpIAdd %uint %60 %col + %62 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %firstMatrix %uint_0 + %64 = OpArrayLength %uint %firstMatrix 0 + %65 = OpISub %uint %64 %uint_1 + %66 = OpExtInst %uint %67 UMin %61 %65 + %68 = OpAccessChain %_ptr_StorageBuffer_float %firstMatrix %uint_0 %66 + %result = OpLoad %float %68 None OpStore %continue_execution %false None OpStore %return_value %result None + OpBranch %49 + %49 = OpLabel + %51 = OpLoad %bool %continue_execution None + OpSelectionMerge %52 None + OpBranchConditional %51 %53 %52 + %53 = OpLabel + OpStore %return_value %float_0 None OpBranch %52 %52 = OpLabel - %67 = OpLoad %bool %continue_execution None - OpSelectionMerge %68 None - OpBranchConditional %67 %69 %68 - %69 = OpLabel - OpStore %return_value %float_0 None - OpBranch %68 - %68 = OpLabel - %71 = OpLoad %float %return_value None - OpReturnValue %71 + %54 = OpLoad %float %return_value None + OpReturnValue %54 OpFunctionEnd %mm_readB = OpFunction %float None %29 %row_0 = OpFunctionParameter %uint @@ -225,40 +225,40 @@ OpSelectionMerge %81 None OpBranchConditional %80 %82 %83 %82 = OpLabel - %84 = OpAccessChain %_ptr_Uniform_uint %9 %uint_0 %uint_2 - %86 = OpLoad %uint %84 None - %87 = OpULessThan %bool %col_0 %86 + %92 = OpAccessChain %_ptr_Uniform_uint %9 %uint_0 %uint_2 + %94 = OpLoad %uint %92 None + %85 = OpULessThan %bool %col_0 %94 OpBranch %81 %83 = OpLabel OpBranch %81 %81 = OpLabel - %88 = OpPhi %bool %87 %82 %false %83 + %84 = OpPhi %bool %85 %82 %false %83 + OpSelectionMerge %86 None + OpBranchConditional %84 %87 %86 + %87 = OpLabel + %95 = OpAccessChain %_ptr_Uniform_uint %9 %uint_0 %uint_2 + %96 = OpLoad %uint %95 None + %97 = OpIMul %uint %row_0 %96 + %98 = OpIAdd %uint %97 %col_0 + %99 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %secondMatrix %uint_0 + %100 = OpArrayLength %uint %secondMatrix 0 + %101 = OpISub %uint %100 %uint_1 + %102 = OpExtInst %uint %67 UMin %98 %101 + %103 = OpAccessChain %_ptr_StorageBuffer_float %secondMatrix %uint_0 %102 + %result_0 = OpLoad %float %103 None + OpStore %continue_execution_0 %false None + OpStore %return_value_0 %result_0 None + OpBranch %86 + %86 = OpLabel + %88 = OpLoad %bool %continue_execution_0 None OpSelectionMerge %89 None OpBranchConditional %88 %90 %89 %90 = OpLabel - %91 = OpAccessChain %_ptr_Uniform_uint %9 %uint_0 %uint_2 - %92 = OpLoad %uint %91 None - %93 = OpIMul %uint %row_0 %92 - %94 = OpIAdd %uint %93 %col_0 - %95 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %secondMatrix %uint_0 - %96 = OpArrayLength %uint %secondMatrix 0 - %97 = OpISub %uint %96 %uint_1 - %98 = OpExtInst %uint %63 UMin %94 %97 - %99 = OpAccessChain %_ptr_StorageBuffer_float %secondMatrix %uint_0 %98 - %result_0 = OpLoad %float %99 None - OpStore %continue_execution_0 %false None - OpStore %return_value_0 %result_0 None + OpStore %return_value_0 %float_0 None OpBranch %89 %89 = OpLabel - %101 = OpLoad %bool %continue_execution_0 None - OpSelectionMerge %102 None - OpBranchConditional %101 %103 %102 - %103 = OpLabel - OpStore %return_value_0 %float_0 None - OpBranch %102 - %102 = OpLabel - %104 = OpLoad %float %return_value_0 None - OpReturnValue %104 + %91 = OpLoad %float %return_value_0 None + OpReturnValue %91 OpFunctionEnd %mm_write = OpFunction %void None %110 %row_1 = OpFunctionParameter %uint @@ -271,17 +271,17 @@ OpSelectionMerge %115 None OpBranchConditional %114 %116 %117 %116 = OpLabel - %118 = OpAccessChain %_ptr_Uniform_uint %9 %uint_0 %uint_2 - %119 = OpLoad %uint %118 None - %120 = OpULessThan %bool %col_1 %119 + %122 = OpAccessChain %_ptr_Uniform_uint %9 %uint_0 %uint_2 + %123 = OpLoad %uint %122 None + %119 = OpULessThan %bool %col_1 %123 OpBranch %115 %117 = OpLabel OpBranch %115 %115 = OpLabel - %121 = OpPhi %bool %120 %116 %false %117 - OpSelectionMerge %122 None - OpBranchConditional %121 %123 %122 - %123 = OpLabel + %118 = OpPhi %bool %119 %116 %false %117 + OpSelectionMerge %120 None + OpBranchConditional %118 %121 %120 + %121 = OpLabel %124 = OpAccessChain %_ptr_Uniform_uint %9 %uint_0 %uint_2 %125 = OpLoad %uint %124 None %126 = OpIMul %uint %row_1 %125 @@ -289,11 +289,11 @@ %128 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float_0 %resultMatrix %uint_0 %130 = OpArrayLength %uint %resultMatrix 0 %131 = OpISub %uint %130 %uint_1 - %132 = OpExtInst %uint %63 UMin %index %131 + %132 = OpExtInst %uint %67 UMin %index %131 %133 = OpAccessChain %_ptr_StorageBuffer_float_0 %resultMatrix %uint_0 %132 OpStore %133 %value None - OpBranch %122 - %122 = OpLabel + OpBranch %120 + %120 = OpLabel OpReturn OpFunctionEnd %main_inner = OpFunction %void None %139 @@ -301,19 +301,19 @@ %global_id = OpFunctionParameter %v3uint %tint_local_index = OpFunctionParameter %uint %140 = OpLabel - %acc = OpVariable %_ptr_Function__arr_float_uint_16 Function %181 + %acc = OpVariable %_ptr_Function__arr_float_uint_16 Function %169 %ACached = OpVariable %_ptr_Function_float Function %33 - %BCached = OpVariable %_ptr_Function__arr_float_ColPerThreadA Function %186 + %BCached = OpVariable %_ptr_Function__arr_float_ColPerThreadA Function %174 %index_0 = OpVariable %_ptr_Function_uint Function %t = OpVariable %_ptr_Function_uint Function %innerRow = OpVariable %_ptr_Function_uint Function - %innerCol = OpVariable %_ptr_Function_uint Function %innerRow_0 = OpVariable %_ptr_Function_uint Function - %innerCol_0 = OpVariable %_ptr_Function_uint Function - %k = OpVariable %_ptr_Function_uint Function - %inner = OpVariable %_ptr_Function_uint Function %innerRow_1 = OpVariable %_ptr_Function_uint Function + %k = OpVariable %_ptr_Function_uint Function + %innerCol = OpVariable %_ptr_Function_uint Function + %innerCol_0 = OpVariable %_ptr_Function_uint Function %innerCol_1 = OpVariable %_ptr_Function_uint Function + %inner = OpVariable %_ptr_Function_uint Function %innerRow_2 = OpVariable %_ptr_Function_uint Function %innerCol_2 = OpVariable %_ptr_Function_uint Function OpBranch %141 @@ -324,390 +324,390 @@ OpLoopMerge %145 %143 None OpBranch %142 %142 = OpLabel - %148 = OpUGreaterThanEqual %bool %146 %uint_4096 - OpSelectionMerge %150 None - OpBranchConditional %148 %151 %150 - %151 = OpLabel + %194 = OpUGreaterThanEqual %bool %146 %uint_4096 + OpSelectionMerge %196 None + OpBranchConditional %194 %197 %196 + %197 = OpLabel OpBranch %145 - %150 = OpLabel - %152 = OpUMod %uint %146 %uint_64 - %153 = OpUDiv %uint %146 %uint_64 - %154 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %153 %152 - OpStore %154 %float_0 None - %156 = OpUMod %uint %146 %uint_64 - %157 = OpUDiv %uint %146 %uint_64 - %158 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %157 %156 - OpStore %158 %float_0 None + %196 = OpLabel + %198 = OpUMod %uint %146 %uint_64 + %199 = OpUDiv %uint %146 %uint_64 + %200 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %199 %198 + OpStore %200 %float_0 None + %202 = OpUMod %uint %146 %uint_64 + %203 = OpUDiv %uint %146 %uint_64 + %204 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %203 %202 + OpStore %204 %float_0 None OpBranch %143 %143 = OpLabel %147 = OpIAdd %uint %146 %uint_256 OpBranch %144 %145 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %162 = OpCompositeExtract %uint %local_id 1 - %tileRow = OpIMul %uint %162 %ColPerThreadA - %165 = OpCompositeExtract %uint %local_id 0 - %tileCol = OpIMul %uint %165 %ColPerThreadA - %167 = OpCompositeExtract %uint %global_id 1 - %globalRow = OpIMul %uint %167 %ColPerThreadA - %169 = OpCompositeExtract %uint %global_id 0 - %globalCol = OpIMul %uint %169 %ColPerThreadA - %171 = OpAccessChain %_ptr_Uniform_uint %9 %uint_0 %uint_1 - %172 = OpLoad %uint %171 None - %173 = OpISub %uint %172 %uint_1 - %174 = OpFunctionCall %uint %tint_div_u32 %173 %uint_64 - %numTiles = OpIAdd %uint %174 %uint_1 + %150 = OpCompositeExtract %uint %local_id 1 + %tileRow = OpIMul %uint %150 %ColPerThreadA + %153 = OpCompositeExtract %uint %local_id 0 + %tileCol = OpIMul %uint %153 %ColPerThreadA + %155 = OpCompositeExtract %uint %global_id 1 + %globalRow = OpIMul %uint %155 %ColPerThreadA + %157 = OpCompositeExtract %uint %global_id 0 + %globalCol = OpIMul %uint %157 %ColPerThreadA + %159 = OpAccessChain %_ptr_Uniform_uint %9 %uint_0 %uint_1 + %160 = OpLoad %uint %159 None + %161 = OpISub %uint %160 %uint_1 + %162 = OpFunctionCall %uint %tint_div_u32 %161 %uint_64 + %numTiles = OpIAdd %uint %162 %uint_1 + OpBranch %175 + %175 = OpLabel + OpStore %index_0 %uint_0 + OpBranch %178 + %178 = OpLabel + OpLoopMerge %179 %177 None + OpBranch %176 + %176 = OpLabel + %208 = OpLoad %uint %index_0 None + %209 = OpULessThan %bool %208 %uint_16 + OpSelectionMerge %210 None + OpBranchConditional %209 %210 %211 + %211 = OpLabel + OpBranch %179 + %210 = OpLabel + %212 = OpLoad %uint %index_0 None + %213 = OpExtInst %uint %67 UMin %212 %uint_15 + %215 = OpAccessChain %_ptr_Function_float %acc %213 + OpStore %215 %float_0 None + OpBranch %177 + %177 = OpLabel + %216 = OpLoad %uint %index_0 None + %217 = OpIAdd %uint %216 %uint_1 + OpStore %index_0 %217 None + OpBranch %178 + %179 = OpLabel + %180 = OpCompositeExtract %uint %local_id 0 + %tileColA = OpIMul %uint %180 %ColPerThreadA + %182 = OpCompositeExtract %uint %local_id 1 + %tileRowB = OpIMul %uint %182 %ColPerThreadA + OpBranch %184 + %184 = OpLabel + OpStore %t %uint_0 OpBranch %187 %187 = OpLabel - OpStore %index_0 %uint_0 - OpBranch %190 - %190 = OpLabel - OpLoopMerge %191 %189 None + OpLoopMerge %188 %186 None + OpBranch %185 + %185 = OpLabel + %219 = OpLoad %uint %t None + %220 = OpULessThan %bool %219 %numTiles + OpSelectionMerge %221 None + OpBranchConditional %220 %221 %222 + %222 = OpLabel OpBranch %188 - %188 = OpLabel - %194 = OpLoad %uint %index_0 None - %195 = OpULessThan %bool %194 %uint_16 - OpSelectionMerge %196 None - OpBranchConditional %195 %196 %197 - %197 = OpLabel - OpBranch %191 - %196 = OpLabel - %198 = OpLoad %uint %index_0 None - %199 = OpExtInst %uint %63 UMin %198 %uint_15 - %201 = OpAccessChain %_ptr_Function_float %acc %199 - OpStore %201 %float_0 None - OpBranch %189 - %189 = OpLabel - %202 = OpLoad %uint %index_0 None - %203 = OpIAdd %uint %202 %uint_1 - OpStore %index_0 %203 None - OpBranch %190 - %191 = OpLabel - %204 = OpCompositeExtract %uint %local_id 0 - %tileColA = OpIMul %uint %204 %ColPerThreadA - %206 = OpCompositeExtract %uint %local_id 1 - %tileRowB = OpIMul %uint %206 %ColPerThreadA - OpBranch %208 - %208 = OpLabel - OpStore %t %uint_0 - OpBranch %211 - %211 = OpLabel - OpLoopMerge %212 %210 None - OpBranch %209 - %209 = OpLabel - %214 = OpLoad %uint %t None - %215 = OpULessThan %bool %214 %numTiles - OpSelectionMerge %216 None - OpBranchConditional %215 %216 %217 - %217 = OpLabel - OpBranch %212 - %216 = OpLabel - OpBranch %218 - %218 = OpLabel - OpStore %innerRow %uint_0 - OpBranch %221 %221 = OpLabel - OpLoopMerge %222 %220 None - OpBranch %219 - %219 = OpLabel - %224 = OpLoad %uint %innerRow None - %225 = OpULessThan %bool %224 %ColPerThreadA - OpSelectionMerge %226 None - OpBranchConditional %225 %226 %227 - %227 = OpLabel - OpBranch %222 + OpBranch %223 + %223 = OpLabel + OpStore %innerRow_0 %uint_0 + OpBranch %226 %226 = OpLabel + OpLoopMerge %227 %225 None + OpBranch %224 + %224 = OpLabel + %255 = OpLoad %uint %innerRow_0 None + %256 = OpULessThan %bool %255 %ColPerThreadA + OpSelectionMerge %257 None + OpBranchConditional %256 %257 %258 + %258 = OpLabel + OpBranch %227 + %257 = OpLabel + OpBranch %259 + %259 = OpLabel + OpStore %innerCol_0 %uint_0 + OpBranch %262 + %262 = OpLabel + OpLoopMerge %263 %261 None + OpBranch %260 + %260 = OpLabel + %315 = OpLoad %uint %innerCol_0 None + %316 = OpULessThan %bool %315 %ColPerThreadA + OpSelectionMerge %317 None + OpBranchConditional %316 %317 %318 + %318 = OpLabel + OpBranch %263 + %317 = OpLabel + %319 = OpLoad %uint %innerRow_0 None + %inputRow = OpIAdd %uint %tileRow %319 + %321 = OpLoad %uint %innerCol_0 None + %inputCol = OpIAdd %uint %tileColA %321 + %323 = OpExtInst %uint %67 UMin %inputRow %uint_63 + %325 = OpExtInst %uint %67 UMin %inputCol %uint_63 + %326 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %323 %325 + %327 = OpLoad %uint %innerRow_0 None + %328 = OpIAdd %uint %globalRow %327 + %329 = OpLoad %uint %t None + %330 = OpIMul %uint %329 %uint_64 + %331 = OpIAdd %uint %330 %inputCol + %332 = OpFunctionCall %float %mm_readA %328 %331 + OpStore %326 %332 None + OpBranch %261 + %261 = OpLabel + %333 = OpLoad %uint %innerCol_0 None + %334 = OpIAdd %uint %333 %uint_1 + OpStore %innerCol_0 %334 None + OpBranch %262 + %263 = OpLabel + OpBranch %225 + %225 = OpLabel + %264 = OpLoad %uint %innerRow_0 None + %265 = OpIAdd %uint %264 %uint_1 + OpStore %innerRow_0 %265 None + OpBranch %226 + %227 = OpLabel OpBranch %228 %228 = OpLabel - OpStore %innerCol %uint_0 + OpStore %innerRow_1 %uint_0 OpBranch %231 %231 = OpLabel OpLoopMerge %232 %230 None OpBranch %229 %229 = OpLabel - %234 = OpLoad %uint %innerCol None - %235 = OpULessThan %bool %234 %ColPerThreadA - OpSelectionMerge %236 None - OpBranchConditional %235 %236 %237 - %237 = OpLabel + %267 = OpLoad %uint %innerRow_1 None + %268 = OpULessThan %bool %267 %ColPerThreadA + OpSelectionMerge %269 None + OpBranchConditional %268 %269 %270 + %270 = OpLabel OpBranch %232 - %236 = OpLabel - %238 = OpLoad %uint %innerRow None - %inputRow = OpIAdd %uint %tileRow %238 - %240 = OpLoad %uint %innerCol None - %inputCol = OpIAdd %uint %tileColA %240 - %242 = OpExtInst %uint %63 UMin %inputRow %uint_63 - %244 = OpExtInst %uint %63 UMin %inputCol %uint_63 - %245 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %242 %244 - %246 = OpLoad %uint %innerRow None - %247 = OpIAdd %uint %globalRow %246 - %248 = OpLoad %uint %t None - %249 = OpIMul %uint %248 %uint_64 - %250 = OpIAdd %uint %249 %inputCol - %251 = OpFunctionCall %float %mm_readA %247 %250 - OpStore %245 %251 None + %269 = OpLabel + OpBranch %271 + %271 = OpLabel + OpStore %innerCol_1 %uint_0 + OpBranch %274 + %274 = OpLabel + OpLoopMerge %275 %273 None + OpBranch %272 + %272 = OpLabel + %336 = OpLoad %uint %innerCol_1 None + %337 = OpULessThan %bool %336 %ColPerThreadA + OpSelectionMerge %338 None + OpBranchConditional %337 %338 %339 + %339 = OpLabel + OpBranch %275 + %338 = OpLabel + %340 = OpLoad %uint %innerRow_1 None + %inputRow_0 = OpIAdd %uint %tileRowB %340 + %342 = OpLoad %uint %innerCol_1 None + %inputCol_0 = OpIAdd %uint %tileCol %342 + %344 = OpLoad %uint %innerCol_1 None + %345 = OpExtInst %uint %67 UMin %344 %uint_63 + %346 = OpExtInst %uint %67 UMin %inputCol_0 %uint_63 + %347 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %345 %346 + %348 = OpLoad %uint %t None + %349 = OpIMul %uint %348 %uint_64 + %350 = OpIAdd %uint %349 %inputRow_0 + %351 = OpLoad %uint %innerCol_1 None + %352 = OpIAdd %uint %globalCol %351 + %353 = OpFunctionCall %float %mm_readB %350 %352 + OpStore %347 %353 None + OpBranch %273 + %273 = OpLabel + %354 = OpLoad %uint %innerCol_1 None + %355 = OpIAdd %uint %354 %uint_1 + OpStore %innerCol_1 %355 None + OpBranch %274 + %275 = OpLabel OpBranch %230 %230 = OpLabel - %252 = OpLoad %uint %innerCol None - %253 = OpIAdd %uint %252 %uint_1 - OpStore %innerCol %253 None + %276 = OpLoad %uint %innerRow_1 None + %277 = OpIAdd %uint %276 %uint_1 + OpStore %innerRow_1 %277 None OpBranch %231 %232 = OpLabel - OpBranch %220 - %220 = OpLabel - %254 = OpLoad %uint %innerRow None - %255 = OpIAdd %uint %254 %uint_1 - OpStore %innerRow %255 None - OpBranch %221 - %222 = OpLabel - OpBranch %256 - %256 = OpLabel - OpStore %innerRow_0 %uint_0 - OpBranch %259 - %259 = OpLabel - OpLoopMerge %260 %258 None - OpBranch %257 - %257 = OpLabel - %262 = OpLoad %uint %innerRow_0 None - %263 = OpULessThan %bool %262 %ColPerThreadA - OpSelectionMerge %264 None - OpBranchConditional %263 %264 %265 - %265 = OpLabel - OpBranch %260 - %264 = OpLabel - OpBranch %266 - %266 = OpLabel - OpStore %innerCol_0 %uint_0 - OpBranch %269 - %269 = OpLabel - OpLoopMerge %270 %268 None - OpBranch %267 - %267 = OpLabel - %272 = OpLoad %uint %innerCol_0 None - %273 = OpULessThan %bool %272 %ColPerThreadA - OpSelectionMerge %274 None - OpBranchConditional %273 %274 %275 - %275 = OpLabel - OpBranch %270 - %274 = OpLabel - %276 = OpLoad %uint %innerRow_0 None - %inputRow_0 = OpIAdd %uint %tileRowB %276 - %278 = OpLoad %uint %innerCol_0 None - %inputCol_0 = OpIAdd %uint %tileCol %278 - %280 = OpLoad %uint %innerCol_0 None - %281 = OpExtInst %uint %63 UMin %280 %uint_63 - %282 = OpExtInst %uint %63 UMin %inputCol_0 %uint_63 - %283 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %281 %282 - %284 = OpLoad %uint %t None - %285 = OpIMul %uint %284 %uint_64 - %286 = OpIAdd %uint %285 %inputRow_0 - %287 = OpLoad %uint %innerCol_0 None - %288 = OpIAdd %uint %globalCol %287 - %289 = OpFunctionCall %float %mm_readB %286 %288 - OpStore %283 %289 None - OpBranch %268 - %268 = OpLabel - %290 = OpLoad %uint %innerCol_0 None - %291 = OpIAdd %uint %290 %uint_1 - OpStore %innerCol_0 %291 None - OpBranch %269 - %270 = OpLabel - OpBranch %258 - %258 = OpLabel - %292 = OpLoad %uint %innerRow_0 None - %293 = OpIAdd %uint %292 %uint_1 - OpStore %innerRow_0 %293 None - OpBranch %259 - %260 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - OpBranch %295 - %295 = OpLabel + OpBranch %234 + %234 = OpLabel OpStore %k %uint_0 - OpBranch %298 - %298 = OpLabel - OpLoopMerge %299 %297 None - OpBranch %296 - %296 = OpLabel - %301 = OpLoad %uint %k None - %302 = OpULessThan %bool %301 %uint_64 - OpSelectionMerge %303 None - OpBranchConditional %302 %303 %304 - %304 = OpLabel - OpBranch %299 - %303 = OpLabel - OpBranch %305 - %305 = OpLabel + OpBranch %237 + %237 = OpLabel + OpLoopMerge %238 %236 None + OpBranch %235 + %235 = OpLabel + %279 = OpLoad %uint %k None + %280 = OpULessThan %bool %279 %uint_64 + OpSelectionMerge %281 None + OpBranchConditional %280 %281 %282 + %282 = OpLabel + OpBranch %238 + %281 = OpLabel + OpBranch %283 + %283 = OpLabel OpStore %inner %uint_0 - OpBranch %308 - %308 = OpLabel - OpLoopMerge %309 %307 None - OpBranch %306 - %306 = OpLabel - %311 = OpLoad %uint %inner None - %312 = OpULessThan %bool %311 %ColPerThreadA - OpSelectionMerge %313 None - OpBranchConditional %312 %313 %314 - %314 = OpLabel - OpBranch %309 - %313 = OpLabel - %315 = OpLoad %uint %inner None - %316 = OpExtInst %uint %63 UMin %315 %uint_3 - %318 = OpAccessChain %_ptr_Function_float %BCached %316 - %319 = OpLoad %uint %k None - %320 = OpLoad %uint %inner None - %321 = OpIAdd %uint %tileCol %320 - %322 = OpExtInst %uint %63 UMin %319 %uint_63 - %323 = OpExtInst %uint %63 UMin %321 %uint_63 - %324 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %322 %323 - %325 = OpLoad %float %324 None - OpStore %318 %325 None - OpBranch %307 - %307 = OpLabel - %326 = OpLoad %uint %inner None - %327 = OpIAdd %uint %326 %uint_1 - OpStore %inner %327 None - OpBranch %308 - %309 = OpLabel - OpBranch %328 - %328 = OpLabel - OpStore %innerRow_1 %uint_0 - OpBranch %331 - %331 = OpLabel - OpLoopMerge %332 %330 None - OpBranch %329 - %329 = OpLabel - %334 = OpLoad %uint %innerRow_1 None - %335 = OpULessThan %bool %334 %ColPerThreadA - OpSelectionMerge %336 None - OpBranchConditional %335 %336 %337 - %337 = OpLabel - OpBranch %332 - %336 = OpLabel - %338 = OpLoad %uint %innerRow_1 None - %339 = OpIAdd %uint %tileRow %338 - %340 = OpLoad %uint %k None - %341 = OpExtInst %uint %63 UMin %339 %uint_63 - %342 = OpExtInst %uint %63 UMin %340 %uint_63 - %343 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %341 %342 - %344 = OpLoad %float %343 None - OpStore %ACached %344 None - OpBranch %345 - %345 = OpLabel - OpStore %innerCol_1 %uint_0 - OpBranch %348 - %348 = OpLabel - OpLoopMerge %349 %347 None - OpBranch %346 - %346 = OpLabel - %351 = OpLoad %uint %innerCol_1 None - %352 = OpULessThan %bool %351 %ColPerThreadA - OpSelectionMerge %353 None - OpBranchConditional %352 %353 %354 - %354 = OpLabel - OpBranch %349 - %353 = OpLabel - %355 = OpLoad %uint %innerRow_1 None - %356 = OpIMul %uint %355 %ColPerThreadA - %357 = OpLoad %uint %innerCol_1 None - %index_1 = OpIAdd %uint %356 %357 - %359 = OpExtInst %uint %63 UMin %index_1 %uint_15 - %360 = OpAccessChain %_ptr_Function_float %acc %359 - %361 = OpExtInst %uint %63 UMin %index_1 %uint_15 - %362 = OpAccessChain %_ptr_Function_float %acc %361 - %363 = OpLoad %float %362 None - %364 = OpLoad %float %ACached None - %365 = OpLoad %uint %innerCol_1 None - %366 = OpExtInst %uint %63 UMin %365 %uint_3 - %367 = OpAccessChain %_ptr_Function_float %BCached %366 - %368 = OpLoad %float %367 None - %369 = OpFMul %float %364 %368 - %370 = OpFAdd %float %363 %369 - OpStore %360 %370 None - OpBranch %347 - %347 = OpLabel - %371 = OpLoad %uint %innerCol_1 None - %372 = OpIAdd %uint %371 %uint_1 - OpStore %innerCol_1 %372 None - OpBranch %348 - %349 = OpLabel - OpBranch %330 - %330 = OpLabel - %373 = OpLoad %uint %innerRow_1 None - %374 = OpIAdd %uint %373 %uint_1 - OpStore %innerRow_1 %374 None - OpBranch %331 - %332 = OpLabel - OpBranch %297 - %297 = OpLabel - %375 = OpLoad %uint %k None - %376 = OpIAdd %uint %375 %uint_1 - OpStore %k %376 None - OpBranch %298 - %299 = OpLabel - OpControlBarrier %uint_2 %uint_2 %uint_264 - OpBranch %210 - %210 = OpLabel - %378 = OpLoad %uint %t None - %379 = OpIAdd %uint %378 %uint_1 - OpStore %t %379 None - OpBranch %211 - %212 = OpLabel - OpBranch %380 - %380 = OpLabel + OpBranch %286 + %286 = OpLabel + OpLoopMerge %287 %285 None + OpBranch %284 + %284 = OpLabel + %357 = OpLoad %uint %inner None + %358 = OpULessThan %bool %357 %ColPerThreadA + OpSelectionMerge %359 None + OpBranchConditional %358 %359 %360 + %360 = OpLabel + OpBranch %287 + %359 = OpLabel + %361 = OpLoad %uint %inner None + %362 = OpExtInst %uint %67 UMin %361 %uint_3 + %364 = OpAccessChain %_ptr_Function_float %BCached %362 + %365 = OpLoad %uint %k None + %366 = OpLoad %uint %inner None + %367 = OpIAdd %uint %tileCol %366 + %368 = OpExtInst %uint %67 UMin %365 %uint_63 + %369 = OpExtInst %uint %67 UMin %367 %uint_63 + %370 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %368 %369 + %371 = OpLoad %float %370 None + OpStore %364 %371 None + OpBranch %285 + %285 = OpLabel + %372 = OpLoad %uint %inner None + %373 = OpIAdd %uint %372 %uint_1 + OpStore %inner %373 None + OpBranch %286 + %287 = OpLabel + OpBranch %288 + %288 = OpLabel OpStore %innerRow_2 %uint_0 - OpBranch %383 - %383 = OpLabel - OpLoopMerge %384 %382 None - OpBranch %381 - %381 = OpLabel - %386 = OpLoad %uint %innerRow_2 None - %387 = OpULessThan %bool %386 %ColPerThreadA - OpSelectionMerge %388 None - OpBranchConditional %387 %388 %389 - %389 = OpLabel - OpBranch %384 - %388 = OpLabel - OpBranch %390 - %390 = OpLabel + OpBranch %291 + %291 = OpLabel + OpLoopMerge %292 %290 None + OpBranch %289 + %289 = OpLabel + %375 = OpLoad %uint %innerRow_2 None + %376 = OpULessThan %bool %375 %ColPerThreadA + OpSelectionMerge %377 None + OpBranchConditional %376 %377 %378 + %378 = OpLabel + OpBranch %292 + %377 = OpLabel + %379 = OpLoad %uint %innerRow_2 None + %380 = OpIAdd %uint %tileRow %379 + %381 = OpLoad %uint %k None + %382 = OpExtInst %uint %67 UMin %380 %uint_63 + %383 = OpExtInst %uint %67 UMin %381 %uint_63 + %384 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %382 %383 + %385 = OpLoad %float %384 None + OpStore %ACached %385 None + OpBranch %386 + %386 = OpLabel OpStore %innerCol_2 %uint_0 - OpBranch %393 - %393 = OpLabel - OpLoopMerge %394 %392 None - OpBranch %391 - %391 = OpLabel - %396 = OpLoad %uint %innerCol_2 None - %397 = OpULessThan %bool %396 %ColPerThreadA - OpSelectionMerge %398 None - OpBranchConditional %397 %398 %399 - %399 = OpLabel - OpBranch %394 - %398 = OpLabel - %400 = OpLoad %uint %innerRow_2 None - %401 = OpIMul %uint %400 %ColPerThreadA - %402 = OpLoad %uint %innerCol_2 None - %index_2 = OpIAdd %uint %401 %402 - %404 = OpLoad %uint %innerRow_2 None - %405 = OpIAdd %uint %globalRow %404 - %406 = OpLoad %uint %innerCol_2 None - %407 = OpIAdd %uint %globalCol %406 - %408 = OpExtInst %uint %63 UMin %index_2 %uint_15 - %409 = OpAccessChain %_ptr_Function_float %acc %408 - %410 = OpLoad %float %409 None - %411 = OpFunctionCall %void %mm_write %405 %407 %410 - OpBranch %392 - %392 = OpLabel - %412 = OpLoad %uint %innerCol_2 None - %413 = OpIAdd %uint %412 %uint_1 - OpStore %innerCol_2 %413 None - OpBranch %393 - %394 = OpLabel - OpBranch %382 - %382 = OpLabel - %414 = OpLoad %uint %innerRow_2 None + OpBranch %389 + %389 = OpLabel + OpLoopMerge %390 %388 None + OpBranch %387 + %387 = OpLabel + %394 = OpLoad %uint %innerCol_2 None + %395 = OpULessThan %bool %394 %ColPerThreadA + OpSelectionMerge %396 None + OpBranchConditional %395 %396 %397 + %397 = OpLabel + OpBranch %390 + %396 = OpLabel + %398 = OpLoad %uint %innerRow_2 None + %399 = OpIMul %uint %398 %ColPerThreadA + %400 = OpLoad %uint %innerCol_2 None + %index_2 = OpIAdd %uint %399 %400 + %402 = OpExtInst %uint %67 UMin %index_2 %uint_15 + %403 = OpAccessChain %_ptr_Function_float %acc %402 + %404 = OpExtInst %uint %67 UMin %index_2 %uint_15 + %405 = OpAccessChain %_ptr_Function_float %acc %404 + %406 = OpLoad %float %405 None + %407 = OpLoad %float %ACached None + %408 = OpLoad %uint %innerCol_2 None + %409 = OpExtInst %uint %67 UMin %408 %uint_3 + %410 = OpAccessChain %_ptr_Function_float %BCached %409 + %411 = OpLoad %float %410 None + %412 = OpFMul %float %407 %411 + %413 = OpFAdd %float %406 %412 + OpStore %403 %413 None + OpBranch %388 + %388 = OpLabel + %414 = OpLoad %uint %innerCol_2 None %415 = OpIAdd %uint %414 %uint_1 - OpStore %innerRow_2 %415 None - OpBranch %383 - %384 = OpLabel + OpStore %innerCol_2 %415 None + OpBranch %389 + %390 = OpLabel + OpBranch %290 + %290 = OpLabel + %391 = OpLoad %uint %innerRow_2 None + %392 = OpIAdd %uint %391 %uint_1 + OpStore %innerRow_2 %392 None + OpBranch %291 + %292 = OpLabel + OpBranch %236 + %236 = OpLabel + %293 = OpLoad %uint %k None + %294 = OpIAdd %uint %293 %uint_1 + OpStore %k %294 None + OpBranch %237 + %238 = OpLabel + OpControlBarrier %uint_2 %uint_2 %uint_264 + OpBranch %186 + %186 = OpLabel + %240 = OpLoad %uint %t None + %241 = OpIAdd %uint %240 %uint_1 + OpStore %t %241 None + OpBranch %187 + %188 = OpLabel + OpBranch %189 + %189 = OpLabel + OpStore %innerRow %uint_0 + OpBranch %192 + %192 = OpLabel + OpLoopMerge %193 %191 None + OpBranch %190 + %190 = OpLabel + %243 = OpLoad %uint %innerRow None + %244 = OpULessThan %bool %243 %ColPerThreadA + OpSelectionMerge %245 None + OpBranchConditional %244 %245 %246 + %246 = OpLabel + OpBranch %193 + %245 = OpLabel + OpBranch %247 + %247 = OpLabel + OpStore %innerCol %uint_0 + OpBranch %250 + %250 = OpLabel + OpLoopMerge %251 %249 None + OpBranch %248 + %248 = OpLabel + %296 = OpLoad %uint %innerCol None + %297 = OpULessThan %bool %296 %ColPerThreadA + OpSelectionMerge %298 None + OpBranchConditional %297 %298 %299 + %299 = OpLabel + OpBranch %251 + %298 = OpLabel + %300 = OpLoad %uint %innerRow None + %301 = OpIMul %uint %300 %ColPerThreadA + %302 = OpLoad %uint %innerCol None + %index_1 = OpIAdd %uint %301 %302 + %304 = OpLoad %uint %innerRow None + %305 = OpIAdd %uint %globalRow %304 + %306 = OpLoad %uint %innerCol None + %307 = OpIAdd %uint %globalCol %306 + %308 = OpExtInst %uint %67 UMin %index_1 %uint_15 + %309 = OpAccessChain %_ptr_Function_float %acc %308 + %310 = OpLoad %float %309 None + %311 = OpFunctionCall %void %mm_write %305 %307 %310 + OpBranch %249 + %249 = OpLabel + %312 = OpLoad %uint %innerCol None + %313 = OpIAdd %uint %312 %uint_1 + OpStore %innerCol %313 None + OpBranch %250 + %251 = OpLabel + OpBranch %191 + %191 = OpLabel + %252 = OpLoad %uint %innerRow None + %253 = OpIAdd %uint %252 %uint_1 + OpStore %innerRow %253 None + OpBranch %192 + %193 = OpLabel OpReturn OpFunctionEnd %tint_div_u32 = OpFunction %uint None %418
diff --git a/test/tint/bug/tint/942.wgsl.expected.spvasm b/test/tint/bug/tint/942.wgsl.expected.spvasm index 4780c3d..754c779 100644 --- a/test/tint/bug/tint/942.wgsl.expected.spvasm +++ b/test/tint/bug/tint/942.wgsl.expected.spvasm
@@ -5,7 +5,7 @@ ; Schema: 0 OpCapability Shader OpCapability ImageQuery - %76 = OpExtInstImport "GLSL.std.450" + %65 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint GLCompute %main "main" %main_workgroup_id_Input %main_local_invocation_id_Input %main_local_invocation_index_Input OpExecutionMode %main LocalSize 64 1 1 @@ -33,9 +33,9 @@ OpName %dims "dims" OpName %baseIndex "baseIndex" OpName %r "r" + OpName %r_0 "r" OpName %c "c" OpName %loadIndex "loadIndex" - OpName %r_0 "r" OpName %c_0 "c" OpName %writeIndex "writeIndex" OpName %center "center" @@ -106,11 +106,6 @@ %main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %38 = OpTypeFunction %void %v3uint %v3uint %uint - %uint_1024 = OpConstant %uint 1024 - %bool = OpTypeBool -%_ptr_Workgroup_v3float = OpTypePointer Workgroup %v3float - %56 = OpConstantNull %v3float - %uint_64 = OpConstant %uint 64 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Uniform_uint = OpTypePointer Uniform %uint @@ -119,24 +114,29 @@ %int = OpTypeInt 32 1 %int_0 = OpConstant %int 0 %v2uint = OpTypeVector %uint 2 - %86 = OpConstantComposite %v2uint %uint_4 %uint_1 + %75 = OpConstantComposite %v2uint %uint_4 %uint_1 + %uint_1024 = OpConstant %uint 1024 + %bool = OpTypeBool +%_ptr_Workgroup_v3float = OpTypePointer Workgroup %v3float + %99 = OpConstantNull %v3float + %uint_64 = OpConstant %uint 64 %_ptr_Function_uint = OpTypePointer Function %uint %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_3 = OpConstant %uint 3 %uint_255 = OpConstant %uint 255 %v2float = OpTypeVector %float 2 %float_0_25 = OpConstant %float 0.25 - %140 = OpConstantComposite %v2float %float_0_25 %float_0_25 - %145 = OpTypeSampledImage %11 + %158 = OpConstantComposite %v2float %float_0_25 %float_0_25 + %163 = OpTypeSampledImage %11 %v4float = OpTypeVector %float 4 %float_0 = OpConstant %float 0 %false = OpConstantFalse %bool %v2bool = OpTypeVector %bool 2 %_ptr_Function_v3float = OpTypePointer Function %v3float -%uint_4294967295 = OpConstant %uint 4294967295 - %217 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %222 = OpConstantNull %v2uint %float_1 = OpConstant %float 1 +%uint_4294967295 = OpConstant %uint 4294967295 + %227 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %232 = OpConstantNull %v2uint %273 = OpTypeFunction %uint %uint %uint %279 = OpTypeFunction %void %main_inner = OpFunction %void None %38 @@ -145,9 +145,9 @@ %tint_local_index = OpFunctionParameter %uint %39 = OpLabel %r = OpVariable %_ptr_Function_uint Function + %r_0 = OpVariable %_ptr_Function_uint Function %c = OpVariable %_ptr_Function_uint Function %loadIndex = OpVariable %_ptr_Function_v2uint Function - %r_0 = OpVariable %_ptr_Function_uint Function %c_0 = OpVariable %_ptr_Function_uint Function %writeIndex = OpVariable %_ptr_Function_v2uint Function %acc = OpVariable %_ptr_Function_v3float Function @@ -162,151 +162,151 @@ OpLoopMerge %44 %42 None OpBranch %41 %41 = OpLabel - %47 = OpUGreaterThanEqual %bool %45 %uint_1024 - OpSelectionMerge %50 None - OpBranchConditional %47 %51 %50 - %51 = OpLabel + %90 = OpUGreaterThanEqual %bool %45 %uint_1024 + OpSelectionMerge %93 None + OpBranchConditional %90 %94 %93 + %94 = OpLabel OpBranch %44 - %50 = OpLabel - %52 = OpUMod %uint %45 %uint_256 - %53 = OpUDiv %uint %45 %uint_256 - %54 = OpAccessChain %_ptr_Workgroup_v3float %tile %53 %52 - OpStore %54 %56 None + %93 = OpLabel + %95 = OpUMod %uint %45 %uint_256 + %96 = OpUDiv %uint %45 %uint_256 + %97 = OpAccessChain %_ptr_Workgroup_v3float %tile %96 %95 + OpStore %97 %99 None OpBranch %42 %42 = OpLabel %46 = OpIAdd %uint %45 %uint_64 OpBranch %43 %44 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %61 = OpAccessChain %_ptr_Uniform_uint %4 %uint_0 %uint_0 - %64 = OpLoad %uint %61 None - %65 = OpISub %uint %64 %uint_1 -%filterOffset = OpFunctionCall %uint %tint_div_u32 %65 %uint_2 - %69 = OpLoad %11 %inputTex None - %70 = OpImageQueryLevels %uint %69 - %71 = OpISub %uint %70 %uint_1 - %72 = OpBitcast %uint %int_0 - %75 = OpExtInst %uint %76 UMin %72 %71 - %dims = OpImageQuerySizeLod %v2uint %69 %75 - %79 = OpVectorShuffle %v2uint %WorkGroupID %WorkGroupID 0 1 - %80 = OpAccessChain %_ptr_Uniform_uint %4 %uint_0 %uint_1 - %81 = OpLoad %uint %80 None - %82 = OpCompositeConstruct %v2uint %81 %uint_4 - %83 = OpIMul %v2uint %79 %82 - %84 = OpVectorShuffle %v2uint %LocalInvocationID %LocalInvocationID 0 1 - %85 = OpIMul %v2uint %84 %86 - %87 = OpIAdd %v2uint %83 %85 - %88 = OpCompositeConstruct %v2uint %filterOffset %uint_0 - %baseIndex = OpISub %v2uint %87 %88 - OpBranch %90 - %90 = OpLabel + %50 = OpAccessChain %_ptr_Uniform_uint %4 %uint_0 %uint_0 + %53 = OpLoad %uint %50 None + %54 = OpISub %uint %53 %uint_1 +%filterOffset = OpFunctionCall %uint %tint_div_u32 %54 %uint_2 + %58 = OpLoad %11 %inputTex None + %59 = OpImageQueryLevels %uint %58 + %60 = OpISub %uint %59 %uint_1 + %61 = OpBitcast %uint %int_0 + %64 = OpExtInst %uint %65 UMin %61 %60 + %dims = OpImageQuerySizeLod %v2uint %58 %64 + %68 = OpVectorShuffle %v2uint %WorkGroupID %WorkGroupID 0 1 + %69 = OpAccessChain %_ptr_Uniform_uint %4 %uint_0 %uint_1 + %70 = OpLoad %uint %69 None + %71 = OpCompositeConstruct %v2uint %70 %uint_4 + %72 = OpIMul %v2uint %68 %71 + %73 = OpVectorShuffle %v2uint %LocalInvocationID %LocalInvocationID 0 1 + %74 = OpIMul %v2uint %73 %75 + %76 = OpIAdd %v2uint %72 %74 + %77 = OpCompositeConstruct %v2uint %filterOffset %uint_0 + %baseIndex = OpISub %v2uint %76 %77 + OpBranch %79 + %79 = OpLabel OpStore %r %uint_0 - OpBranch %93 - %93 = OpLabel - OpLoopMerge %94 %92 None - OpBranch %91 - %91 = OpLabel - %97 = OpLoad %uint %r None - %98 = OpULessThan %bool %97 %uint_4 - OpSelectionMerge %99 None - OpBranchConditional %98 %99 %100 - %100 = OpLabel - OpBranch %94 - %99 = OpLabel - OpBranch %101 - %101 = OpLabel + OpBranch %82 + %82 = OpLabel + OpLoopMerge %83 %81 None + OpBranch %80 + %80 = OpLabel + %103 = OpLoad %uint %r None + %104 = OpULessThan %bool %103 %uint_4 + OpSelectionMerge %105 None + OpBranchConditional %104 %105 %106 + %106 = OpLabel + OpBranch %83 + %105 = OpLabel + OpBranch %107 + %107 = OpLabel OpStore %c %uint_0 - OpBranch %104 - %104 = OpLabel - OpLoopMerge %105 %103 None - OpBranch %102 - %102 = OpLabel - %107 = OpLoad %uint %c None - %108 = OpULessThan %bool %107 %uint_4 - OpSelectionMerge %109 None - OpBranchConditional %108 %109 %110 + OpBranch %110 %110 = OpLabel - OpBranch %105 + OpLoopMerge %111 %109 None + OpBranch %108 + %108 = OpLabel + %127 = OpLoad %uint %c None + %128 = OpULessThan %bool %127 %uint_4 + OpSelectionMerge %129 None + OpBranchConditional %128 %129 %130 + %130 = OpLabel + OpBranch %111 + %129 = OpLabel + %131 = OpLoad %uint %c None + %132 = OpLoad %uint %r None + %133 = OpCompositeConstruct %v2uint %131 %132 + %134 = OpIAdd %v2uint %baseIndex %133 + OpStore %loadIndex %134 + %137 = OpAccessChain %_ptr_Uniform_uint %16 %uint_0 %uint_0 + %138 = OpLoad %uint %137 None + %139 = OpINotEqual %bool %138 %uint_0 + OpSelectionMerge %140 None + OpBranchConditional %139 %141 %140 + %141 = OpLabel + %205 = OpLoad %v2uint %loadIndex None + %206 = OpVectorShuffle %v2uint %205 %205 1 0 + OpStore %loadIndex %206 None + OpBranch %140 + %140 = OpLabel + %142 = OpLoad %uint %r None + %143 = OpCompositeExtract %uint %LocalInvocationID 0 + %144 = OpIMul %uint %uint_4 %143 + %145 = OpLoad %uint %c None + %146 = OpIAdd %uint %144 %145 + %147 = OpExtInst %uint %65 UMin %142 %uint_3 + %149 = OpExtInst %uint %65 UMin %146 %uint_255 + %151 = OpAccessChain %_ptr_Workgroup_v3float %tile %147 %149 + %152 = OpLoad %11 %inputTex None + %153 = OpLoad %3 %samp None + %154 = OpLoad %v2uint %loadIndex None + %156 = OpConvertUToF %v2float %154 + %157 = OpFAdd %v2float %156 %158 + %160 = OpConvertUToF %v2float %dims + %161 = OpFDiv %v2float %157 %160 + %162 = OpSampledImage %163 %152 %153 + %164 = OpImageSampleExplicitLod %v4float %162 %161 Lod %float_0 + %167 = OpVectorShuffle %v3float %164 %164 0 1 2 + OpStore %151 %167 None + OpBranch %109 %109 = OpLabel - %111 = OpLoad %uint %c None + %168 = OpLoad %uint %c None + %169 = OpIAdd %uint %168 %uint_1 + OpStore %c %169 None + OpBranch %110 + %111 = OpLabel + OpBranch %81 + %81 = OpLabel %112 = OpLoad %uint %r None - %113 = OpCompositeConstruct %v2uint %111 %112 - %114 = OpIAdd %v2uint %baseIndex %113 - OpStore %loadIndex %114 - %117 = OpAccessChain %_ptr_Uniform_uint %16 %uint_0 %uint_0 - %118 = OpLoad %uint %117 None - %119 = OpINotEqual %bool %118 %uint_0 - OpSelectionMerge %120 None - OpBranchConditional %119 %121 %120 - %121 = OpLabel - %122 = OpLoad %v2uint %loadIndex None - %123 = OpVectorShuffle %v2uint %122 %122 1 0 - OpStore %loadIndex %123 None + %113 = OpIAdd %uint %112 %uint_1 + OpStore %r %113 None + OpBranch %82 + %83 = OpLabel + OpControlBarrier %uint_2 %uint_2 %uint_264 + OpBranch %85 + %85 = OpLabel + OpStore %r_0 %uint_0 + OpBranch %88 + %88 = OpLabel + OpLoopMerge %89 %87 None + OpBranch %86 + %86 = OpLabel + %115 = OpLoad %uint %r_0 None + %116 = OpULessThan %bool %115 %uint_4 + OpSelectionMerge %117 None + OpBranchConditional %116 %117 %118 + %118 = OpLabel + OpBranch %89 + %117 = OpLabel + OpBranch %119 + %119 = OpLabel + OpStore %c_0 %uint_0 + OpBranch %122 + %122 = OpLabel + OpLoopMerge %123 %121 None OpBranch %120 %120 = OpLabel - %124 = OpLoad %uint %r None - %125 = OpCompositeExtract %uint %LocalInvocationID 0 - %126 = OpIMul %uint %uint_4 %125 - %127 = OpLoad %uint %c None - %128 = OpIAdd %uint %126 %127 - %129 = OpExtInst %uint %76 UMin %124 %uint_3 - %131 = OpExtInst %uint %76 UMin %128 %uint_255 - %133 = OpAccessChain %_ptr_Workgroup_v3float %tile %129 %131 - %134 = OpLoad %11 %inputTex None - %135 = OpLoad %3 %samp None - %136 = OpLoad %v2uint %loadIndex None - %138 = OpConvertUToF %v2float %136 - %139 = OpFAdd %v2float %138 %140 - %142 = OpConvertUToF %v2float %dims - %143 = OpFDiv %v2float %139 %142 - %144 = OpSampledImage %145 %134 %135 - %146 = OpImageSampleExplicitLod %v4float %144 %143 Lod %float_0 - %149 = OpVectorShuffle %v3float %146 %146 0 1 2 - OpStore %133 %149 None - OpBranch %103 - %103 = OpLabel - %150 = OpLoad %uint %c None - %151 = OpIAdd %uint %150 %uint_1 - OpStore %c %151 None - OpBranch %104 - %105 = OpLabel - OpBranch %92 - %92 = OpLabel - %152 = OpLoad %uint %r None - %153 = OpIAdd %uint %152 %uint_1 - OpStore %r %153 None - OpBranch %93 - %94 = OpLabel - OpControlBarrier %uint_2 %uint_2 %uint_264 - OpBranch %155 - %155 = OpLabel - OpStore %r_0 %uint_0 - OpBranch %158 - %158 = OpLabel - OpLoopMerge %159 %157 None - OpBranch %156 - %156 = OpLabel - %161 = OpLoad %uint %r_0 None - %162 = OpULessThan %bool %161 %uint_4 - OpSelectionMerge %163 None - OpBranchConditional %162 %163 %164 - %164 = OpLabel - OpBranch %159 - %163 = OpLabel - OpBranch %165 - %165 = OpLabel - OpStore %c_0 %uint_0 - OpBranch %168 - %168 = OpLabel - OpLoopMerge %169 %167 None - OpBranch %166 - %166 = OpLabel %171 = OpLoad %uint %c_0 None %172 = OpULessThan %bool %171 %uint_4 OpSelectionMerge %173 None OpBranchConditional %172 %173 %174 %174 = OpLabel - OpBranch %169 + OpBranch %123 %173 = OpLabel %175 = OpLoad %uint %c_0 None %176 = OpLoad %uint %r_0 None @@ -319,125 +319,125 @@ OpSelectionMerge %183 None OpBranchConditional %182 %184 %183 %184 = OpLabel - %185 = OpLoad %v2uint %writeIndex None - %186 = OpVectorShuffle %v2uint %185 %185 1 0 - OpStore %writeIndex %186 None + %207 = OpLoad %v2uint %writeIndex None + %208 = OpVectorShuffle %v2uint %207 %207 1 0 + OpStore %writeIndex %208 None OpBranch %183 %183 = OpLabel - %187 = OpCompositeExtract %uint %LocalInvocationID 0 - %188 = OpIMul %uint %uint_4 %187 - %189 = OpLoad %uint %c_0 None - %center = OpIAdd %uint %188 %189 - %191 = OpUGreaterThanEqual %bool %center %filterOffset - OpSelectionMerge %192 None - OpBranchConditional %191 %193 %194 - %193 = OpLabel - %195 = OpISub %uint %uint_256 %filterOffset - %196 = OpULessThan %bool %center %195 - OpBranch %192 - %194 = OpLabel - OpBranch %192 + %185 = OpCompositeExtract %uint %LocalInvocationID 0 + %186 = OpIMul %uint %uint_4 %185 + %187 = OpLoad %uint %c_0 None + %center = OpIAdd %uint %186 %187 + %189 = OpUGreaterThanEqual %bool %center %filterOffset + OpSelectionMerge %190 None + OpBranchConditional %189 %191 %192 + %191 = OpLabel + %209 = OpISub %uint %uint_256 %filterOffset + %194 = OpULessThan %bool %center %209 + OpBranch %190 %192 = OpLabel - %197 = OpPhi %bool %196 %193 %false %194 - OpSelectionMerge %199 None - OpBranchConditional %197 %200 %201 - %200 = OpLabel - %202 = OpLoad %v2uint %writeIndex None - %203 = OpULessThan %v2bool %202 %dims - %205 = OpAll %bool %203 - OpBranch %199 - %201 = OpLabel - OpBranch %199 - %199 = OpLabel - %206 = OpPhi %bool %205 %200 %false %201 - OpSelectionMerge %207 None - OpBranchConditional %206 %208 %207 - %208 = OpLabel - OpStore %acc %56 - OpBranch %211 - %211 = OpLabel - OpStore %tint_loop_idx %217 + OpBranch %190 + %190 = OpLabel + %193 = OpPhi %bool %194 %191 %false %192 + OpSelectionMerge %196 None + OpBranchConditional %193 %197 %198 + %197 = OpLabel + %210 = OpLoad %v2uint %writeIndex None + %211 = OpULessThan %v2bool %210 %dims + %200 = OpAll %bool %211 + OpBranch %196 + %198 = OpLabel + OpBranch %196 + %196 = OpLabel + %199 = OpPhi %bool %200 %197 %false %198 + OpSelectionMerge %201 None + OpBranchConditional %199 %202 %201 + %202 = OpLabel + OpStore %acc %99 + OpBranch %215 + %215 = OpLabel + OpStore %tint_loop_idx %227 OpStore %f %uint_0 - OpBranch %214 - %214 = OpLabel - OpLoopMerge %215 %213 None - OpBranch %212 - %212 = OpLabel - %220 = OpLoad %v2uint %tint_loop_idx None - %221 = OpIEqual %v2bool %220 %222 - %223 = OpAll %bool %221 - OpSelectionMerge %224 None - OpBranchConditional %223 %225 %224 - %225 = OpLabel - OpBranch %215 - %224 = OpLabel - %226 = OpLoad %uint %f None - %227 = OpAccessChain %_ptr_Uniform_uint %4 %uint_0 %uint_0 - %228 = OpLoad %uint %227 None - %229 = OpULessThan %bool %226 %228 - OpSelectionMerge %230 None - OpBranchConditional %229 %230 %231 - %231 = OpLabel - OpBranch %215 - %230 = OpLabel - %232 = OpLoad %uint %f None - %233 = OpIAdd %uint %center %232 - %234 = OpISub %uint %233 %filterOffset - OpStore %i %234 - %236 = OpLoad %v3float %acc None + OpBranch %218 + %218 = OpLabel + OpLoopMerge %219 %217 None + OpBranch %216 + %216 = OpLabel + %230 = OpLoad %v2uint %tint_loop_idx None + %231 = OpIEqual %v2bool %230 %232 + %233 = OpAll %bool %231 + OpSelectionMerge %234 None + OpBranchConditional %233 %235 %234 + %235 = OpLabel + OpBranch %219 + %234 = OpLabel + %236 = OpLoad %uint %f None %237 = OpAccessChain %_ptr_Uniform_uint %4 %uint_0 %uint_0 %238 = OpLoad %uint %237 None - %239 = OpConvertUToF %float %238 - %240 = OpFDiv %float %float_1 %239 - %242 = OpLoad %uint %r_0 None - %243 = OpLoad %uint %i None - %244 = OpExtInst %uint %76 UMin %242 %uint_3 - %245 = OpExtInst %uint %76 UMin %243 %uint_255 - %246 = OpAccessChain %_ptr_Workgroup_v3float %tile %244 %245 - %247 = OpLoad %v3float %246 None - %248 = OpVectorTimesScalar %v3float %247 %240 - %249 = OpFAdd %v3float %236 %248 - OpStore %acc %249 None - OpBranch %213 - %213 = OpLabel - %250 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %251 = OpLoad %uint %250 None -%tint_low_inc = OpISub %uint %251 %uint_1 - %253 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %253 %tint_low_inc None - %254 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %254 %uint_1 %uint_0 - %256 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %257 = OpLoad %uint %256 None - %258 = OpISub %uint %257 %tint_carry - %259 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %259 %258 None - %260 = OpLoad %uint %f None - %261 = OpIAdd %uint %260 %uint_1 - OpStore %f %261 None - OpBranch %214 - %215 = OpLabel - %262 = OpLoad %15 %outputTex None - %263 = OpLoad %v2uint %writeIndex None - %264 = OpLoad %v3float %acc None - %265 = OpCompositeConstruct %v4float %264 %float_1 - OpImageWrite %262 %263 %265 None - OpBranch %207 - %207 = OpLabel - OpBranch %167 - %167 = OpLabel - %267 = OpLoad %uint %c_0 None - %268 = OpIAdd %uint %267 %uint_1 - OpStore %c_0 %268 None - OpBranch %168 - %169 = OpLabel - OpBranch %157 - %157 = OpLabel - %269 = OpLoad %uint %r_0 None + %239 = OpULessThan %bool %236 %238 + OpSelectionMerge %240 None + OpBranchConditional %239 %240 %241 + %241 = OpLabel + OpBranch %219 + %240 = OpLabel + %242 = OpLoad %uint %f None + %243 = OpIAdd %uint %center %242 + %244 = OpISub %uint %243 %filterOffset + OpStore %i %244 + %246 = OpLoad %v3float %acc None + %247 = OpAccessChain %_ptr_Uniform_uint %4 %uint_0 %uint_0 + %248 = OpLoad %uint %247 None + %249 = OpConvertUToF %float %248 + %250 = OpFDiv %float %float_1 %249 + %251 = OpLoad %uint %r_0 None + %252 = OpLoad %uint %i None + %253 = OpExtInst %uint %65 UMin %251 %uint_3 + %254 = OpExtInst %uint %65 UMin %252 %uint_255 + %255 = OpAccessChain %_ptr_Workgroup_v3float %tile %253 %254 + %256 = OpLoad %v3float %255 None + %257 = OpVectorTimesScalar %v3float %256 %250 + %258 = OpFAdd %v3float %246 %257 + OpStore %acc %258 None + OpBranch %217 + %217 = OpLabel + %259 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %260 = OpLoad %uint %259 None +%tint_low_inc = OpISub %uint %260 %uint_1 + %262 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %262 %tint_low_inc None + %263 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %263 %uint_1 %uint_0 + %265 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %266 = OpLoad %uint %265 None + %267 = OpISub %uint %266 %tint_carry + %268 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %268 %267 None + %269 = OpLoad %uint %f None %270 = OpIAdd %uint %269 %uint_1 - OpStore %r_0 %270 None - OpBranch %158 - %159 = OpLabel + OpStore %f %270 None + OpBranch %218 + %219 = OpLabel + %220 = OpLoad %15 %outputTex None + %221 = OpLoad %v2uint %writeIndex None + %222 = OpLoad %v3float %acc None + %223 = OpCompositeConstruct %v4float %222 %float_1 + OpImageWrite %220 %221 %223 None + OpBranch %201 + %201 = OpLabel + OpBranch %121 + %121 = OpLabel + %203 = OpLoad %uint %c_0 None + %204 = OpIAdd %uint %203 %uint_1 + OpStore %c_0 %204 None + OpBranch %122 + %123 = OpLabel + OpBranch %87 + %87 = OpLabel + %124 = OpLoad %uint %r_0 None + %125 = OpIAdd %uint %124 %uint_1 + OpStore %r_0 %125 None + OpBranch %88 + %89 = OpLabel OpReturn OpFunctionEnd %tint_div_u32 = OpFunction %uint None %273
diff --git a/test/tint/bug/tint/948.wgsl.expected.spvasm b/test/tint/bug/tint/948.wgsl.expected.spvasm index 0ae9320..5951626 100644 --- a/test/tint/bug/tint/948.wgsl.expected.spvasm +++ b/test/tint/bug/tint/948.wgsl.expected.spvasm
@@ -80,33 +80,18 @@ OpName %x_101 "x_101" OpName %x_106 "x_106" OpName %x_111 "x_111" + OpName %x_310 "x_310" + OpName %x_311 "x_311" + OpName %x_313 "x_313" + OpName %x_314 "x_314" + OpName %x_318 "x_318" OpName %tint_loop_idx "tint_loop_idx" OpName %x_122 "x_122" OpName %x_126 "x_126" - OpName %x_150 "x_150" - OpName %x_154 "x_154" - OpName %x_156 "x_156" - OpName %x_136 "x_136" - OpName %x_140 "x_140" - OpName %x_142 "x_142" OpName %x_166 "x_166" OpName %x_169 "x_169" OpName %x_172 "x_172" OpName %x_174 "x_174" - OpName %x_181 "x_181" - OpName %x_184 "x_184" - OpName %tint_loop_idx_0 "tint_loop_idx" - OpName %x_193 "x_193" - OpName %x_197 "x_197" - OpName %x_198 "x_198" - OpName %x_203 "x_203" - OpName %x_208 "x_208" - OpName %x_211 "x_211" - OpName %x_214 "x_214" - OpName %x_217 "x_217" - OpName %tint_low_inc_1 "tint_low_inc_1" - OpName %tint_carry_1 "tint_carry_1" - OpName %x_218 "x_218" OpName %x_222 "x_222" OpName %x_225 "x_225" OpName %x_228 "x_228" @@ -116,8 +101,19 @@ OpName %x_241 "x_241" OpName %x_244 "x_244" OpName %x_248 "x_248" - OpName %x_252 "x_252" OpName %x_254 "x_254" + OpName %tint_low_inc "tint_low_inc" + OpName %tint_carry "tint_carry" + OpName %x_304 "x_304" + OpName %x_150 "x_150" + OpName %x_154 "x_154" + OpName %x_156 "x_156" + OpName %x_136 "x_136" + OpName %x_140 "x_140" + OpName %x_142 "x_142" + OpName %x_181 "x_181" + OpName %x_184 "x_184" + OpName %x_252 "x_252" OpName %x_263 "x_263" OpName %x_264 "x_264" OpName %x_266 "x_266" @@ -133,14 +129,18 @@ OpName %x_295 "x_295" OpName %x_298 "x_298" OpName %x_299 "x_299" - OpName %tint_low_inc "tint_low_inc" - OpName %tint_carry "tint_carry" - OpName %x_304 "x_304" - OpName %x_310 "x_310" - OpName %x_311 "x_311" - OpName %x_313 "x_313" - OpName %x_314 "x_314" - OpName %x_318 "x_318" + OpName %tint_loop_idx_0 "tint_loop_idx" + OpName %x_193 "x_193" + OpName %x_197 "x_197" + OpName %x_198 "x_198" + OpName %x_208 "x_208" + OpName %x_211 "x_211" + OpName %x_214 "x_214" + OpName %x_217 "x_217" + OpName %tint_low_inc_1 "tint_low_inc_1" + OpName %tint_carry_1 "tint_carry_1" + OpName %x_218 "x_218" + OpName %x_203 "x_203" OpName %main_inner "main_inner" OpMemberName %main_out 0 "glFragColor_1" OpName %main_out "main_out" @@ -269,22 +269,22 @@ %152 = OpConstantComposite %v2float %float_1 %float_1 %uint_4 = OpConstant %uint 4 %int_0 = OpConstant %int 0 +%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float + %uint_8 = OpConstant %uint 8 %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %169 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %173 = OpConstantNull %v2uint + %186 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %190 = OpConstantNull %v2uint %bool = OpTypeBool %v2bool = OpTypeVector %bool 2 %int_2 = OpConstant %int 2 - %195 = OpConstantComposite %v2float %float_0_5 %float_0_5 %uint_2 = OpConstant %uint 2 - %float_8 = OpConstant %float 8 %_ptr_Function_uint = OpTypePointer Function %uint - %uint_3 = OpConstant %uint 3 %int_1 = OpConstant %int 1 -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float - %uint_8 = OpConstant %uint 8 + %283 = OpConstantComposite %v2float %float_0_5 %float_0_5 + %uint_3 = OpConstant %uint 3 + %float_8 = OpConstant %float 8 %main_out = OpTypeStruct %v4float %403 = OpTypeFunction %main_out %v2float %v2float %v2float %v2float %v3float %v2float %getFrameData_f1_ = OpFunction %mat4v4float None %53 @@ -384,288 +384,288 @@ OpStore %i %int_0 None OpBranch %161 %161 = OpLabel - OpStore %tint_loop_idx %169 + OpStore %tint_loop_idx %186 OpBranch %164 %164 = OpLabel OpLoopMerge %165 %163 None OpBranch %162 %162 = OpLabel - %171 = OpLoad %v2uint %tint_loop_idx None - %172 = OpIEqual %v2bool %171 %173 - %176 = OpAll %bool %172 - OpSelectionMerge %177 None - OpBranchConditional %176 %178 %177 - %178 = OpLabel + %188 = OpLoad %v2uint %tint_loop_idx None + %189 = OpIEqual %v2bool %188 %190 + %193 = OpAll %bool %189 + OpSelectionMerge %194 None + OpBranchConditional %193 %195 %194 + %195 = OpLabel OpBranch %165 - %177 = OpLabel + %194 = OpLabel %x_122 = OpLoad %int %i None - %180 = OpSLessThan %bool %x_122 %int_2 - OpSelectionMerge %182 None - OpBranchConditional %180 %182 %183 - %183 = OpLabel + %197 = OpSLessThan %bool %x_122 %int_2 + OpSelectionMerge %199 None + OpBranchConditional %197 %199 %200 + %200 = OpLabel OpBranch %165 - %182 = OpLabel + %199 = OpLabel %x_126 = OpLoad %int %i None - OpSelectionMerge %188 None - OpSwitch %x_126 %185 1 %186 0 %187 - %186 = OpLabel + OpSelectionMerge %205 None + OpSwitch %x_126 %202 1 %203 0 %204 + %202 = OpLabel + OpBranch %205 + %203 = OpLabel %x_150 = OpLoad %v2float %tileID None - %190 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_4 - %x_154 = OpLoad %v2float %190 None - %192 = OpLoad %13 %tileMapsTexture1 None - %193 = OpLoad %16 %tileMapsSampler None - %194 = OpFAdd %v2float %x_150 %195 - %196 = OpFDiv %v2float %194 %x_154 - %197 = OpExtInst %float %69 NClamp %float_0 %float_n16 %float_15_9899998 - %198 = OpSampledImage %73 %192 %193 - %x_156 = OpImageSampleImplicitLod %v4float %198 %196 Bias %197 - %200 = OpCompositeExtract %float %x_156 0 - OpStore %frameID_1 %200 None - OpBranch %188 - %187 = OpLabel + %278 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_4 + %x_154 = OpLoad %v2float %278 None + %280 = OpLoad %13 %tileMapsTexture1 None + %281 = OpLoad %16 %tileMapsSampler None + %282 = OpFAdd %v2float %x_150 %283 + %284 = OpFDiv %v2float %282 %x_154 + %285 = OpExtInst %float %69 NClamp %float_0 %float_n16 %float_15_9899998 + %286 = OpSampledImage %73 %280 %281 + %x_156 = OpImageSampleImplicitLod %v4float %286 %284 Bias %285 + %288 = OpCompositeExtract %float %x_156 0 + OpStore %frameID_1 %288 None + OpBranch %205 + %204 = OpLabel %x_136 = OpLoad %v2float %tileID None - %202 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_4 - %x_140 = OpLoad %v2float %202 None - %204 = OpLoad %13 %tileMapsTexture0 None - %205 = OpLoad %16 %tileMapsSampler None - %206 = OpFAdd %v2float %x_136 %195 - %207 = OpFDiv %v2float %206 %x_140 - %208 = OpExtInst %float %69 NClamp %float_0 %float_n16 %float_15_9899998 - %209 = OpSampledImage %73 %204 %205 - %x_142 = OpImageSampleImplicitLod %v4float %209 %207 Bias %208 - %211 = OpCompositeExtract %float %x_142 0 - OpStore %frameID_1 %211 None - OpBranch %188 - %185 = OpLabel - OpBranch %188 - %188 = OpLabel + %290 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_4 + %x_140 = OpLoad %v2float %290 None + %292 = OpLoad %13 %tileMapsTexture0 None + %293 = OpLoad %16 %tileMapsSampler None + %294 = OpFAdd %v2float %x_136 %283 + %295 = OpFDiv %v2float %294 %x_140 + %296 = OpExtInst %float %69 NClamp %float_0 %float_n16 %float_15_9899998 + %297 = OpSampledImage %73 %292 %293 + %x_142 = OpImageSampleImplicitLod %v4float %297 %295 Bias %296 + %299 = OpCompositeExtract %float %x_142 0 + OpStore %frameID_1 %299 None + OpBranch %205 + %205 = OpLabel %x_166 = OpLoad %float %frameID_1 None - %213 = OpAccessChain %_ptr_Uniform_float %1 %uint_0 %uint_7 - %x_169 = OpLoad %float %213 None - %215 = OpLoad %13 %animationMapTexture None - %216 = OpLoad %16 %animationMapSampler None - %217 = OpFAdd %float %x_166 %float_0_5 - %218 = OpFDiv %float %217 %x_169 - %219 = OpCompositeConstruct %v2float %218 %float_0 - %220 = OpExtInst %float %69 NClamp %float_0 %float_n16 %float_15_9899998 - %221 = OpSampledImage %73 %215 %216 - %x_172 = OpImageSampleImplicitLod %v4float %221 %219 Bias %220 + %207 = OpAccessChain %_ptr_Uniform_float %1 %uint_0 %uint_7 + %x_169 = OpLoad %float %207 None + %209 = OpLoad %13 %animationMapTexture None + %210 = OpLoad %16 %animationMapSampler None + %211 = OpFAdd %float %x_166 %float_0_5 + %212 = OpFDiv %float %211 %x_169 + %213 = OpCompositeConstruct %v2float %212 %float_0 + %214 = OpExtInst %float %69 NClamp %float_0 %float_n16 %float_15_9899998 + %215 = OpSampledImage %73 %209 %210 + %x_172 = OpImageSampleImplicitLod %v4float %215 %213 Bias %214 OpStore %animationData %x_172 None - %223 = OpAccessChain %_ptr_Function_float %animationData %uint_1 - %x_174 = OpLoad %float %223 None - %225 = OpFOrdGreaterThan %bool %x_174 %float_0 - OpSelectionMerge %226 None - OpBranchConditional %225 %227 %226 - %227 = OpLabel - %228 = OpAccessChain %_ptr_Uniform_float %1 %uint_0 %uint_0 - %x_181 = OpLoad %float %228 None - %230 = OpAccessChain %_ptr_Function_float %animationData %uint_2 - %x_184 = OpLoad %float %230 None - %233 = OpFMul %float %x_181 %x_184 - %234 = OpFRem %float %233 %float_1 - OpStore %mt %234 None + %217 = OpAccessChain %_ptr_Function_float %animationData %uint_1 + %x_174 = OpLoad %float %217 None + %219 = OpFOrdGreaterThan %bool %x_174 %float_0 + OpSelectionMerge %220 None + OpBranchConditional %219 %221 %220 + %221 = OpLabel + %300 = OpAccessChain %_ptr_Uniform_float %1 %uint_0 %uint_0 + %x_181 = OpLoad %float %300 None + %302 = OpAccessChain %_ptr_Function_float %animationData %uint_2 + %x_184 = OpLoad %float %302 None + %304 = OpFMul %float %x_181 %x_184 + %305 = OpFRem %float %304 %float_1 + OpStore %mt %305 None OpStore %f %float_0 None - OpBranch %235 - %235 = OpLabel - OpStore %tint_loop_idx_0 %169 - OpBranch %238 - %238 = OpLabel - OpLoopMerge %239 %237 None - OpBranch %236 - %236 = OpLabel - %241 = OpLoad %v2uint %tint_loop_idx_0 None - %242 = OpIEqual %v2bool %241 %173 - %243 = OpAll %bool %242 - OpSelectionMerge %244 None - OpBranchConditional %243 %245 %244 - %245 = OpLabel - OpBranch %239 - %244 = OpLabel + OpBranch %306 + %306 = OpLabel + OpStore %tint_loop_idx_0 %186 + OpBranch %309 + %309 = OpLabel + OpLoopMerge %310 %308 None + OpBranch %307 + %307 = OpLabel + %361 = OpLoad %v2uint %tint_loop_idx_0 None + %362 = OpIEqual %v2bool %361 %190 + %363 = OpAll %bool %362 + OpSelectionMerge %364 None + OpBranchConditional %363 %365 %364 + %365 = OpLabel + OpBranch %310 + %364 = OpLabel %x_193 = OpLoad %float %f None - %247 = OpFOrdLessThan %bool %x_193 %float_8 - OpSelectionMerge %249 None - OpBranchConditional %247 %249 %250 - %250 = OpLabel - OpBranch %239 - %249 = OpLabel - %251 = OpAccessChain %_ptr_Function_float %animationData %uint_1 - %x_197 = OpLoad %float %251 None + %367 = OpFOrdLessThan %bool %x_193 %float_8 + OpSelectionMerge %369 None + OpBranchConditional %367 %369 %370 + %370 = OpLabel + OpBranch %310 + %369 = OpLabel + %371 = OpAccessChain %_ptr_Function_float %animationData %uint_1 + %x_197 = OpLoad %float %371 None %x_198 = OpLoad %float %mt None - %254 = OpFOrdGreaterThan %bool %x_197 %x_198 - OpSelectionMerge %255 None - OpBranchConditional %254 %256 %255 - %256 = OpLabel - %257 = OpAccessChain %_ptr_Function_float %animationData %uint_0 - %x_203 = OpLoad %float %257 None + %374 = OpFOrdGreaterThan %bool %x_197 %x_198 + OpSelectionMerge %375 None + OpBranchConditional %374 %376 %375 + %376 = OpLabel + %393 = OpAccessChain %_ptr_Function_float %animationData %uint_0 + %x_203 = OpLoad %float %393 None OpStore %frameID_1 %x_203 None - OpBranch %239 - %255 = OpLabel + OpBranch %310 + %375 = OpLabel %x_208 = OpLoad %float %frameID_1 None - %260 = OpAccessChain %_ptr_Uniform_float %1 %uint_0 %uint_7 - %x_211 = OpLoad %float %260 None + %378 = OpAccessChain %_ptr_Uniform_float %1 %uint_0 %uint_7 + %x_211 = OpLoad %float %378 None %x_214 = OpLoad %float %f None OpStore %animationData %x_217 None - OpBranch %237 - %237 = OpLabel - %263 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - %265 = OpLoad %uint %263 None -%tint_low_inc_1 = OpISub %uint %265 %uint_1 - %267 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - OpStore %267 %tint_low_inc_1 None - %268 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 -%tint_carry_1 = OpSelect %uint %268 %uint_1 %uint_0 - %270 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - %271 = OpLoad %uint %270 None - %272 = OpISub %uint %271 %tint_carry_1 - %273 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - OpStore %273 %272 None + OpBranch %308 + %308 = OpLabel + %381 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + %382 = OpLoad %uint %381 None +%tint_low_inc_1 = OpISub %uint %382 %uint_1 + %384 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + OpStore %384 %tint_low_inc_1 None + %385 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 +%tint_carry_1 = OpSelect %uint %385 %uint_1 %uint_0 + %387 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + %388 = OpLoad %uint %387 None + %389 = OpISub %uint %388 %tint_carry_1 + %390 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + OpStore %390 %389 None %x_218 = OpLoad %float %f None - %275 = OpFAdd %float %x_218 %float_1 - OpStore %f %275 None - OpBranch %238 - %239 = OpLabel - OpBranch %226 - %226 = OpLabel + %392 = OpFAdd %float %x_218 %float_1 + OpStore %f %392 None + OpBranch %309 + %310 = OpLabel + OpBranch %220 + %220 = OpLabel %x_222 = OpLoad %float %frameID_1 None - %277 = OpFAdd %float %x_222 %float_0_5 - OpStore %param %277 None + %223 = OpFAdd %float %x_222 %float_0_5 + OpStore %param %223 None %x_225 = OpFunctionCall %mat4v4float %getFrameData_f1_ %param OpStore %frameData %x_225 None - %279 = OpAccessChain %_ptr_Function_v4float %frameData %uint_0 - %x_228 = OpLoad %v4float %279 None - %281 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_5 - %x_231 = OpLoad %v2float %281 None - %283 = OpCompositeExtract %float %x_228 3 - %284 = OpCompositeExtract %float %x_228 2 - %285 = OpCompositeConstruct %v2float %283 %284 - %286 = OpFDiv %v2float %285 %x_231 - OpStore %frameSize %286 None - %287 = OpAccessChain %_ptr_Function_v4float %frameData %uint_0 - %x_235 = OpLoad %v4float %287 None + %225 = OpAccessChain %_ptr_Function_v4float %frameData %uint_0 + %x_228 = OpLoad %v4float %225 None + %227 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_5 + %x_231 = OpLoad %v2float %227 None + %229 = OpCompositeExtract %float %x_228 3 + %230 = OpCompositeExtract %float %x_228 2 + %231 = OpCompositeConstruct %v2float %229 %230 + %232 = OpFDiv %v2float %231 %x_231 + OpStore %frameSize %232 None + %233 = OpAccessChain %_ptr_Function_v4float %frameData %uint_0 + %x_235 = OpLoad %v4float %233 None %x_237 = OpLoad %v2float %sheetUnits None - %290 = OpCompositeExtract %float %x_235 0 - %291 = OpCompositeExtract %float %x_235 1 - %292 = OpCompositeConstruct %v2float %290 %291 - %293 = OpFMul %v2float %292 %x_237 - OpStore %offset_1 %293 None - %294 = OpAccessChain %_ptr_Function_v4float %frameData %uint_2 - %x_241 = OpLoad %v4float %294 None - %296 = OpAccessChain %_ptr_Function_v4float %frameData %uint_0 - %x_244 = OpLoad %v4float %296 None - %298 = OpCompositeExtract %float %x_241 0 - %299 = OpCompositeExtract %float %x_241 1 - %300 = OpCompositeConstruct %v2float %298 %299 - %301 = OpCompositeExtract %float %x_244 3 - %302 = OpCompositeExtract %float %x_244 2 - %303 = OpCompositeConstruct %v2float %301 %302 - %304 = OpFDiv %v2float %300 %303 - OpStore %ratio %304 None - %305 = OpAccessChain %_ptr_Function_v4float %frameData %uint_2 - %306 = OpAccessChain %_ptr_Function_float %305 %uint_2 - %x_248 = OpLoad %float %306 None - %308 = OpFOrdEqual %bool %x_248 %float_1 - OpSelectionMerge %309 None - OpBranchConditional %308 %310 %309 - %310 = OpLabel + %236 = OpCompositeExtract %float %x_235 0 + %237 = OpCompositeExtract %float %x_235 1 + %238 = OpCompositeConstruct %v2float %236 %237 + %239 = OpFMul %v2float %238 %x_237 + OpStore %offset_1 %239 None + %240 = OpAccessChain %_ptr_Function_v4float %frameData %uint_2 + %x_241 = OpLoad %v4float %240 None + %243 = OpAccessChain %_ptr_Function_v4float %frameData %uint_0 + %x_244 = OpLoad %v4float %243 None + %245 = OpCompositeExtract %float %x_241 0 + %246 = OpCompositeExtract %float %x_241 1 + %247 = OpCompositeConstruct %v2float %245 %246 + %248 = OpCompositeExtract %float %x_244 3 + %249 = OpCompositeExtract %float %x_244 2 + %250 = OpCompositeConstruct %v2float %248 %249 + %251 = OpFDiv %v2float %247 %250 + OpStore %ratio %251 None + %252 = OpAccessChain %_ptr_Function_v4float %frameData %uint_2 + %253 = OpAccessChain %_ptr_Function_float %252 %uint_2 + %x_248 = OpLoad %float %253 None + %255 = OpFOrdEqual %bool %x_248 %float_1 + OpSelectionMerge %256 None + OpBranchConditional %255 %257 %256 + %257 = OpLabel %x_252 = OpLoad %v2float %tileUV None %312 = OpCompositeExtract %float %x_252 1 %313 = OpCompositeExtract %float %x_252 0 %314 = OpCompositeConstruct %v2float %312 %313 OpStore %tileUV %314 None - OpBranch %309 - %309 = OpLabel + OpBranch %256 + %256 = OpLabel %x_254 = OpLoad %int %i None - %316 = OpIEqual %bool %x_254 %int_0 - OpSelectionMerge %317 None - OpBranchConditional %316 %318 %319 - %318 = OpLabel + %259 = OpIEqual %bool %x_254 %int_0 + OpSelectionMerge %260 None + OpBranchConditional %259 %261 %262 + %261 = OpLabel %x_263 = OpLoad %v2float %tileUV None %x_264 = OpLoad %v2float %frameSize None %x_266 = OpLoad %v2float %offset_1 None - %323 = OpLoad %13 %spriteSheetTexture None - %324 = OpLoad %16 %spriteSheetSampler None - %325 = OpFMul %v2float %x_263 %x_264 - %326 = OpFAdd %v2float %325 %x_266 - %327 = OpSampledImage %73 %323 %324 - %x_268 = OpImageSampleImplicitLod %v4float %327 %326 None + %318 = OpLoad %13 %spriteSheetTexture None + %319 = OpLoad %16 %spriteSheetSampler None + %320 = OpFMul %v2float %x_263 %x_264 + %321 = OpFAdd %v2float %320 %x_266 + %322 = OpSampledImage %73 %318 %319 + %x_268 = OpImageSampleImplicitLod %v4float %322 %321 None OpStore %color %x_268 None - OpBranch %317 - %319 = OpLabel + OpBranch %260 + %262 = OpLabel %x_274 = OpLoad %v2float %tileUV None %x_275 = OpLoad %v2float %frameSize None %x_277 = OpLoad %v2float %offset_1 None - %332 = OpLoad %13 %spriteSheetTexture None - %333 = OpLoad %16 %spriteSheetSampler None - %334 = OpFMul %v2float %x_274 %x_275 - %335 = OpFAdd %v2float %334 %x_277 - %336 = OpSampledImage %73 %332 %333 - %x_279 = OpImageSampleImplicitLod %v4float %336 %335 None + %327 = OpLoad %13 %spriteSheetTexture None + %328 = OpLoad %16 %spriteSheetSampler None + %329 = OpFMul %v2float %x_274 %x_275 + %330 = OpFAdd %v2float %329 %x_277 + %331 = OpSampledImage %73 %327 %328 + %x_279 = OpImageSampleImplicitLod %v4float %331 %330 None OpStore %nc %x_279 None - %338 = OpAccessChain %_ptr_Function_float %color %uint_3 - %x_283 = OpLoad %float %338 None - %341 = OpAccessChain %_ptr_Function_float %nc %uint_3 - %x_285 = OpLoad %float %341 None - %343 = OpFAdd %float %x_283 %x_285 - %344 = OpExtInst %float %69 FMin %343 %float_1 - OpStore %alpha %344 None + %333 = OpAccessChain %_ptr_Function_float %color %uint_3 + %x_283 = OpLoad %float %333 None + %336 = OpAccessChain %_ptr_Function_float %nc %uint_3 + %x_285 = OpLoad %float %336 None + %338 = OpFAdd %float %x_283 %x_285 + %339 = OpExtInst %float %69 FMin %338 %float_1 + OpStore %alpha %339 None %x_290 = OpLoad %v4float %color None %x_292 = OpLoad %v4float %nc None - %347 = OpAccessChain %_ptr_Function_float %nc %uint_3 - %x_295 = OpLoad %float %347 None - %349 = OpCompositeExtract %float %x_290 0 - %350 = OpCompositeExtract %float %x_290 1 - %351 = OpCompositeExtract %float %x_290 2 - %352 = OpCompositeConstruct %v3float %349 %350 %351 - %353 = OpCompositeExtract %float %x_292 0 - %354 = OpCompositeExtract %float %x_292 1 - %355 = OpCompositeExtract %float %x_292 2 - %356 = OpCompositeConstruct %v3float %353 %354 %355 - %357 = OpCompositeConstruct %v3float %x_295 %x_295 %x_295 - %358 = OpExtInst %v3float %69 FMix %352 %356 %357 - OpStore %mixed %358 None + %342 = OpAccessChain %_ptr_Function_float %nc %uint_3 + %x_295 = OpLoad %float %342 None + %344 = OpCompositeExtract %float %x_290 0 + %345 = OpCompositeExtract %float %x_290 1 + %346 = OpCompositeExtract %float %x_290 2 + %347 = OpCompositeConstruct %v3float %344 %345 %346 + %348 = OpCompositeExtract %float %x_292 0 + %349 = OpCompositeExtract %float %x_292 1 + %350 = OpCompositeExtract %float %x_292 2 + %351 = OpCompositeConstruct %v3float %348 %349 %350 + %352 = OpCompositeConstruct %v3float %x_295 %x_295 %x_295 + %353 = OpExtInst %v3float %69 FMix %347 %351 %352 + OpStore %mixed %353 None %x_298 = OpLoad %v3float %mixed None %x_299 = OpLoad %float %alpha None - %361 = OpCompositeExtract %float %x_298 0 - %362 = OpCompositeExtract %float %x_298 1 - %363 = OpCompositeExtract %float %x_298 2 - %364 = OpCompositeConstruct %v4float %361 %362 %363 %x_299 - OpStore %color %364 None - OpBranch %317 - %317 = OpLabel + %356 = OpCompositeExtract %float %x_298 0 + %357 = OpCompositeExtract %float %x_298 1 + %358 = OpCompositeExtract %float %x_298 2 + %359 = OpCompositeConstruct %v4float %356 %357 %358 %x_299 + OpStore %color %359 None + OpBranch %260 + %260 = OpLabel OpBranch %163 %163 = OpLabel - %365 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %366 = OpLoad %uint %365 None -%tint_low_inc = OpISub %uint %366 %uint_1 - %368 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %368 %tint_low_inc None - %369 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %369 %uint_1 %uint_0 - %371 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %372 = OpLoad %uint %371 None - %373 = OpISub %uint %372 %tint_carry - %374 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %374 %373 None + %263 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %265 = OpLoad %uint %263 None +%tint_low_inc = OpISub %uint %265 %uint_1 + %267 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %267 %tint_low_inc None + %268 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %268 %uint_1 %uint_0 + %270 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %271 = OpLoad %uint %270 None + %272 = OpISub %uint %271 %tint_carry + %273 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %273 %272 None %x_304 = OpLoad %int %i None - %376 = OpIAdd %int %x_304 %int_1 - OpStore %i %376 None + %275 = OpIAdd %int %x_304 %int_1 + OpStore %i %275 None OpBranch %164 %165 = OpLabel - %378 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_8 - %x_310 = OpLoad %v3float %378 None + %166 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_8 + %x_310 = OpLoad %v3float %166 None %x_311 = OpLoad %v4float %color None - %383 = OpCompositeExtract %float %x_311 0 - %384 = OpCompositeExtract %float %x_311 1 - %385 = OpCompositeExtract %float %x_311 2 - %386 = OpCompositeConstruct %v3float %383 %384 %385 - %x_313 = OpFMul %v3float %386 %x_310 + %171 = OpCompositeExtract %float %x_311 0 + %172 = OpCompositeExtract %float %x_311 1 + %173 = OpCompositeExtract %float %x_311 2 + %174 = OpCompositeConstruct %v3float %171 %172 %173 + %x_313 = OpFMul %v3float %174 %x_310 %x_314 = OpLoad %v4float %color None - %389 = OpCompositeExtract %float %x_313 0 - %390 = OpCompositeExtract %float %x_313 1 - %391 = OpCompositeExtract %float %x_313 2 - %392 = OpCompositeExtract %float %x_314 3 - %393 = OpCompositeConstruct %v4float %389 %390 %391 %392 - OpStore %color %393 None + %177 = OpCompositeExtract %float %x_313 0 + %178 = OpCompositeExtract %float %x_313 1 + %179 = OpCompositeExtract %float %x_313 2 + %180 = OpCompositeExtract %float %x_314 3 + %181 = OpCompositeConstruct %v4float %177 %178 %179 %180 + OpStore %color %181 None %x_318 = OpLoad %v4float %color None OpStore %glFragColor %x_318 None OpReturn
diff --git a/test/tint/bug/tint/949.wgsl.expected.spvasm b/test/tint/bug/tint/949.wgsl.expected.spvasm index 704bffc..877a9bd 100644 --- a/test/tint/bug/tint/949.wgsl.expected.spvasm +++ b/test/tint/bug/tint/949.wgsl.expected.spvasm
@@ -223,8 +223,6 @@ OpName %x_282 "x_282" OpName %x_292 "x_292" OpName %x_298 "x_298" - OpName %x_303 "x_303" - OpName %x_305 "x_305" OpName %x_307 "x_307" OpName %x_310 "x_310" OpName %x_312 "x_312" @@ -251,35 +249,6 @@ OpName %x_365 "x_365" OpName %x_366 "x_366" OpName %x_374 "x_374" - OpName %tint_loop_idx "tint_loop_idx" - OpName %x_388 "x_388" - OpName %x_394 "x_394" - OpName %x_395 "x_395" - OpName %x_397 "x_397" - OpName %x_400 "x_400" - OpName %x_401 "x_401" - OpName %x_406 "x_406" - OpName %x_407 "x_407" - OpName %x_410 "x_410" - OpName %x_411 "x_411" - OpName %x_413 "x_413" - OpName %x_416 "x_416" - OpName %x_417 "x_417" - OpName %x_418 "x_418" - OpName %x_421 "x_421" - OpName %x_422 "x_422" - OpName %x_424 "x_424" - OpName %x_426 "x_426" - OpName %x_431 "x_431" - OpName %x_432 "x_432" - OpName %x_434 "x_434" - OpName %x_435 "x_435" - OpName %x_436 "x_436" - OpName %x_438 "x_438" - OpName %x_440 "x_440" - OpName %tint_low_inc "tint_low_inc" - OpName %tint_carry "tint_carry" - OpName %x_441 "x_441" OpName %x_444 "x_444" OpName %x_445 "x_445" OpName %x_449 "x_449" @@ -319,6 +288,37 @@ OpName %x_543 "x_543" OpName %x_544 "x_544" OpName %x_548 "x_548" + OpName %x_303 "x_303" + OpName %x_305 "x_305" + OpName %tint_loop_idx "tint_loop_idx" + OpName %x_388 "x_388" + OpName %x_394 "x_394" + OpName %x_395 "x_395" + OpName %x_397 "x_397" + OpName %x_400 "x_400" + OpName %x_401 "x_401" + OpName %tint_low_inc "tint_low_inc" + OpName %tint_carry "tint_carry" + OpName %x_441 "x_441" + OpName %x_406 "x_406" + OpName %x_407 "x_407" + OpName %x_410 "x_410" + OpName %x_411 "x_411" + OpName %x_413 "x_413" + OpName %x_416 "x_416" + OpName %x_417 "x_417" + OpName %x_418 "x_418" + OpName %x_421 "x_421" + OpName %x_422 "x_422" + OpName %x_424 "x_424" + OpName %x_426 "x_426" + OpName %x_431 "x_431" + OpName %x_432 "x_432" + OpName %x_434 "x_434" + OpName %x_435 "x_435" + OpName %x_436 "x_436" + OpName %x_438 "x_438" + OpName %x_440 "x_440" OpName %main_inner "main_inner" OpMemberName %main_out 0 "glFragColor_1" OpName %main_out "main_out" @@ -463,17 +463,17 @@ %float_n11 = OpConstant %float -11 %float_15 = OpConstant %float 15 %int_0 = OpConstant %int 0 +%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float + %uint_3 = OpConstant %uint 3 %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %455 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %459 = OpConstantNull %v2uint + %556 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %560 = OpConstantNull %v2uint %v2bool = OpTypeVector %bool 2 %int_15 = OpConstant %int 15 %_ptr_Function_uint = OpTypePointer Function %uint %int_1 = OpConstant %int 1 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %uint_3 = OpConstant %uint 3 %main_out = OpTypeStruct %v4float %631 = OpTypeFunction %main_out %v2float %v4float %bool %v2float %v4float %cotangent_frame_vf3_vf3_vf2_vf2_ = OpFunction %mat3v3float None %60 @@ -811,30 +811,30 @@ OpBranch %371 %373 = OpLabel %x_305 = OpLoad %v2float %v_uv None - %376 = OpFNegate %v2float %x_305 - OpStore %x_299 %376 None + %552 = OpFNegate %v2float %x_305 + OpStore %x_299 %552 None OpBranch %371 %371 = OpLabel %x_307 = OpLoad %v2float %x_299 None OpStore %TBNUV %x_307 None %x_310 = OpLoad %v4float %v_output2 None %x_312 = OpLoad %float %normalScale None - %380 = OpCompositeExtract %float %x_310 0 - %381 = OpCompositeExtract %float %x_310 1 - %382 = OpCompositeExtract %float %x_310 2 - %383 = OpCompositeConstruct %v3float %380 %381 %382 - %384 = OpVectorTimesScalar %v3float %383 %x_312 - OpStore %param_3 %384 None + %377 = OpCompositeExtract %float %x_310 0 + %378 = OpCompositeExtract %float %x_310 1 + %379 = OpCompositeExtract %float %x_310 2 + %380 = OpCompositeConstruct %v3float %377 %378 %379 + %381 = OpVectorTimesScalar %v3float %380 %x_312 + OpStore %param_3 %381 None %x_317 = OpLoad %v4float %v_output1 None - %386 = OpCompositeExtract %float %x_317 0 - %387 = OpCompositeExtract %float %x_317 1 - %388 = OpCompositeExtract %float %x_317 2 - %389 = OpCompositeConstruct %v3float %386 %387 %388 - OpStore %param_4 %389 None + %383 = OpCompositeExtract %float %x_317 0 + %384 = OpCompositeExtract %float %x_317 1 + %385 = OpCompositeExtract %float %x_317 2 + %386 = OpCompositeConstruct %v3float %383 %384 %385 + OpStore %param_4 %386 None %x_320 = OpLoad %v2float %TBNUV None OpStore %param_5 %x_320 None - %391 = OpAccessChain %_ptr_Uniform_v2float %19 %uint_0 %uint_8 - %x_324 = OpLoad %v2float %391 None + %388 = OpAccessChain %_ptr_Uniform_v2float %19 %uint_0 %uint_8 + %x_324 = OpLoad %v2float %388 None OpStore %param_6 %x_324 None %x_325 = OpFunctionCall %mat3v3float %cotangent_frame_vf3_vf3_vf2_vf2_ %param_3 %param_4 %param_5 %param_6 OpStore %TBN %x_325 None @@ -844,285 +844,285 @@ OpStore %invTBN %x_329 None %x_331 = OpLoad %mat3v3float %invTBN None %x_332 = OpLoad %v3float %output5 None - %400 = OpFNegate %v3float %x_332 - %x_334 = OpMatrixTimesVector %v3float %x_331 %400 + %397 = OpFNegate %v3float %x_332 + %x_334 = OpMatrixTimesVector %v3float %x_331 %397 %x_337 = OpLoad %mat3v3float %invTBN None %x_338 = OpLoad %v3float %output5 None - %404 = OpCompositeExtract %float %x_334 0 - %405 = OpCompositeExtract %float %x_334 1 - %406 = OpCompositeConstruct %v2float %404 %405 - %407 = OpExtInst %float %83 Length %406 - %408 = OpFNegate %v3float %x_338 - %409 = OpMatrixTimesVector %v3float %x_337 %408 - %410 = OpCompositeExtract %float %409 2 - %411 = OpFDiv %float %407 %410 - OpStore %parallaxLimit %411 None - %412 = OpAccessChain %_ptr_Uniform_float %19 %uint_0 %uint_5 - %x_345 = OpLoad %float %412 None + %401 = OpCompositeExtract %float %x_334 0 + %402 = OpCompositeExtract %float %x_334 1 + %403 = OpCompositeConstruct %v2float %401 %402 + %404 = OpExtInst %float %83 Length %403 + %405 = OpFNegate %v3float %x_338 + %406 = OpMatrixTimesVector %v3float %x_337 %405 + %407 = OpCompositeExtract %float %406 2 + %408 = OpFDiv %float %404 %407 + OpStore %parallaxLimit %408 None + %409 = OpAccessChain %_ptr_Uniform_float %19 %uint_0 %uint_5 + %x_345 = OpLoad %float %409 None %x_346 = OpLoad %float %parallaxLimit None - %416 = OpFMul %float %x_346 %x_345 - OpStore %parallaxLimit %416 None + %413 = OpFMul %float %x_346 %x_345 + OpStore %parallaxLimit %413 None %x_349 = OpLoad %mat3v3float %invTBN None %x_350 = OpLoad %v3float %output5 None - %419 = OpFNegate %v3float %x_350 - %x_352 = OpMatrixTimesVector %v3float %x_349 %419 - %421 = OpCompositeExtract %float %x_352 0 - %422 = OpCompositeExtract %float %x_352 1 - %423 = OpCompositeConstruct %v2float %421 %422 - %424 = OpExtInst %v2float %83 Normalize %423 - OpStore %vOffsetDir %424 None + %416 = OpFNegate %v3float %x_350 + %x_352 = OpMatrixTimesVector %v3float %x_349 %416 + %418 = OpCompositeExtract %float %x_352 0 + %419 = OpCompositeExtract %float %x_352 1 + %420 = OpCompositeConstruct %v2float %418 %419 + %421 = OpExtInst %v2float %83 Normalize %420 + OpStore %vOffsetDir %421 None %x_356 = OpLoad %v2float %vOffsetDir None %x_357 = OpLoad %float %parallaxLimit None - %427 = OpVectorTimesScalar %v2float %x_356 %x_357 - OpStore %vMaxOffset %427 None + %424 = OpVectorTimesScalar %v2float %x_356 %x_357 + OpStore %vMaxOffset %424 None %x_361 = OpLoad %mat3v3float %invTBN None %x_362 = OpLoad %v3float %output5 None %x_365 = OpLoad %mat3v3float %invTBN None %x_366 = OpLoad %v4float %v_output2 None - %432 = OpFNegate %v3float %x_362 - %433 = OpMatrixTimesVector %v3float %x_361 %432 - %434 = OpCompositeExtract %float %x_366 0 - %435 = OpCompositeExtract %float %x_366 1 - %436 = OpCompositeExtract %float %x_366 2 - %437 = OpCompositeConstruct %v3float %434 %435 %436 - %438 = OpMatrixTimesVector %v3float %x_365 %437 - %439 = OpDot %float %433 %438 - %440 = OpFMul %float %439 %float_n11 - %442 = OpFAdd %float %float_15 %440 - OpStore %numSamples %442 None + %429 = OpFNegate %v3float %x_362 + %430 = OpMatrixTimesVector %v3float %x_361 %429 + %431 = OpCompositeExtract %float %x_366 0 + %432 = OpCompositeExtract %float %x_366 1 + %433 = OpCompositeExtract %float %x_366 2 + %434 = OpCompositeConstruct %v3float %431 %432 %433 + %435 = OpMatrixTimesVector %v3float %x_365 %434 + %436 = OpDot %float %430 %435 + %437 = OpFMul %float %436 %float_n11 + %439 = OpFAdd %float %float_15 %437 + OpStore %numSamples %439 None %x_374 = OpLoad %float %numSamples None - %445 = OpFDiv %float %float_1 %x_374 - OpStore %stepSize %445 None + %442 = OpFDiv %float %float_1 %x_374 + OpStore %stepSize %442 None OpStore %currRayHeight %float_1 None OpStore %vCurrOffset %18 None OpStore %vLastOffset %18 None OpStore %lastSampledHeight %float_1 None OpStore %currSampledHeight %float_1 None OpStore %i %int_0 None + OpBranch %444 + %444 = OpLabel + OpStore %tint_loop_idx %556 OpBranch %447 %447 = OpLabel - OpStore %tint_loop_idx %455 - OpBranch %450 - %450 = OpLabel - OpLoopMerge %451 %449 None + OpLoopMerge %448 %446 None + OpBranch %445 + %445 = OpLabel + %558 = OpLoad %v2uint %tint_loop_idx None + %559 = OpIEqual %v2bool %558 %560 + %562 = OpAll %bool %559 + OpSelectionMerge %563 None + OpBranchConditional %562 %564 %563 + %564 = OpLabel OpBranch %448 - %448 = OpLabel - %457 = OpLoad %v2uint %tint_loop_idx None - %458 = OpIEqual %v2bool %457 %459 - %461 = OpAll %bool %458 - OpSelectionMerge %462 None - OpBranchConditional %461 %463 %462 - %463 = OpLabel - OpBranch %451 - %462 = OpLabel + %563 = OpLabel %x_388 = OpLoad %int %i None - %465 = OpSLessThan %bool %x_388 %int_15 - OpSelectionMerge %467 None - OpBranchConditional %465 %467 %468 - %468 = OpLabel - OpBranch %451 - %467 = OpLabel + %566 = OpSLessThan %bool %x_388 %int_15 + OpSelectionMerge %568 None + OpBranchConditional %566 %568 %569 + %569 = OpLabel + OpBranch %448 + %568 = OpLabel %x_394 = OpLoad %v2float %v_uv None %x_395 = OpLoad %v2float %vCurrOffset None - %471 = OpCompositeExtract %float %x_397 3 - OpStore %currSampledHeight %471 None + %572 = OpCompositeExtract %float %x_397 3 + OpStore %currSampledHeight %572 None %x_400 = OpLoad %float %currSampledHeight None %x_401 = OpLoad %float %currRayHeight None - %474 = OpFOrdGreaterThan %bool %x_400 %x_401 - OpSelectionMerge %475 None - OpBranchConditional %474 %476 %477 - %476 = OpLabel + %575 = OpFOrdGreaterThan %bool %x_400 %x_401 + OpSelectionMerge %576 None + OpBranchConditional %575 %577 %578 + %577 = OpLabel %x_406 = OpLoad %float %currSampledHeight None %x_407 = OpLoad %float %currRayHeight None - %480 = OpFSub %float %x_406 %x_407 - OpStore %delta1 %480 None + %595 = OpFSub %float %x_406 %x_407 + OpStore %delta1 %595 None %x_410 = OpLoad %float %currRayHeight None %x_411 = OpLoad %float %stepSize None %x_413 = OpLoad %float %lastSampledHeight None - %484 = OpFAdd %float %x_410 %x_411 - %485 = OpFSub %float %484 %x_413 - OpStore %delta2 %485 None + %599 = OpFAdd %float %x_410 %x_411 + %600 = OpFSub %float %599 %x_413 + OpStore %delta2 %600 None %x_416 = OpLoad %float %delta1 None %x_417 = OpLoad %float %delta1 None %x_418 = OpLoad %float %delta2 None - %489 = OpFAdd %float %x_417 %x_418 - %490 = OpFDiv %float %x_416 %489 - OpStore %ratio %490 None + %604 = OpFAdd %float %x_417 %x_418 + %605 = OpFDiv %float %x_416 %604 + OpStore %ratio %605 None %x_421 = OpLoad %float %ratio None %x_422 = OpLoad %v2float %vLastOffset None %x_424 = OpLoad %float %ratio None %x_426 = OpLoad %v2float %vCurrOffset None - %495 = OpVectorTimesScalar %v2float %x_422 %x_421 - %496 = OpFSub %float %float_1 %x_424 - %497 = OpVectorTimesScalar %v2float %x_426 %496 - %498 = OpFAdd %v2float %495 %497 - OpStore %vCurrOffset %498 None - OpBranch %451 - %477 = OpLabel + %610 = OpVectorTimesScalar %v2float %x_422 %x_421 + %611 = OpFSub %float %float_1 %x_424 + %612 = OpVectorTimesScalar %v2float %x_426 %611 + %613 = OpFAdd %v2float %610 %612 + OpStore %vCurrOffset %613 None + OpBranch %448 + %578 = OpLabel %x_431 = OpLoad %float %stepSize None %x_432 = OpLoad %float %currRayHeight None - %501 = OpFSub %float %x_432 %x_431 - OpStore %currRayHeight %501 None + %616 = OpFSub %float %x_432 %x_431 + OpStore %currRayHeight %616 None %x_434 = OpLoad %v2float %vCurrOffset None OpStore %vLastOffset %x_434 None %x_435 = OpLoad %float %stepSize None %x_436 = OpLoad %v2float %vMaxOffset None %x_438 = OpLoad %v2float %vCurrOffset None - %506 = OpVectorTimesScalar %v2float %x_436 %x_435 - %507 = OpFAdd %v2float %x_438 %506 - OpStore %vCurrOffset %507 None + %621 = OpVectorTimesScalar %v2float %x_436 %x_435 + %622 = OpFAdd %v2float %x_438 %621 + OpStore %vCurrOffset %622 None %x_440 = OpLoad %float %currSampledHeight None OpStore %lastSampledHeight %x_440 None - OpBranch %475 - %475 = OpLabel - OpBranch %449 - %449 = OpLabel - %509 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %511 = OpLoad %uint %509 None -%tint_low_inc = OpISub %uint %511 %uint_1 - %513 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %513 %tint_low_inc None - %514 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %514 %uint_1 %uint_0 - %516 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %517 = OpLoad %uint %516 None - %518 = OpISub %uint %517 %tint_carry - %519 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %519 %518 None + OpBranch %576 + %576 = OpLabel + OpBranch %446 + %446 = OpLabel + %579 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %581 = OpLoad %uint %579 None +%tint_low_inc = OpISub %uint %581 %uint_1 + %583 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %583 %tint_low_inc None + %584 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %584 %uint_1 %uint_0 + %586 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %587 = OpLoad %uint %586 None + %588 = OpISub %uint %587 %tint_carry + %589 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %589 %588 None %x_441 = OpLoad %int %i None - %521 = OpIAdd %int %x_441 %int_1 - OpStore %i %521 None - OpBranch %450 - %451 = OpLabel + %591 = OpIAdd %int %x_441 %int_1 + OpStore %i %591 None + OpBranch %447 + %448 = OpLabel %x_444 = OpLoad %v2float %vCurrOffset None OpStore %parallaxOcclusion_0 %x_444 None %x_445 = OpLoad %v2float %parallaxOcclusion_0 None OpStore %uvOffset %x_445 None %x_449 = OpLoad %v2float %v_uv None %x_450 = OpLoad %v2float %uvOffset None - %527 = OpLoad %11 %TextureSamplerTexture None - %528 = OpLoad %14 %TextureSamplerSampler None - %529 = OpFAdd %v2float %x_449 %x_450 - %530 = OpSampledImage %344 %527 %528 - %x_452 = OpImageSampleImplicitLod %v4float %530 %529 None - %532 = OpAccessChain %_ptr_Uniform_float %19 %uint_0 %uint_2 - %x_454 = OpLoad %float %532 None + %453 = OpLoad %11 %TextureSamplerTexture None + %454 = OpLoad %14 %TextureSamplerSampler None + %455 = OpFAdd %v2float %x_449 %x_450 + %456 = OpSampledImage %344 %453 %454 + %x_452 = OpImageSampleImplicitLod %v4float %456 %455 None + %458 = OpAccessChain %_ptr_Uniform_float %19 %uint_0 %uint_2 + %x_454 = OpLoad %float %458 None %x_457 = OpLoad %mat3v3float %TBN None OpStore %param_8 %x_457 None - %535 = OpCompositeExtract %float %x_452 0 - %536 = OpCompositeExtract %float %x_452 1 - %537 = OpCompositeExtract %float %x_452 2 - %538 = OpCompositeConstruct %v3float %535 %536 %537 - OpStore %param_9 %538 None - %539 = OpFDiv %float %float_1 %x_454 - OpStore %param_10 %539 None + %461 = OpCompositeExtract %float %x_452 0 + %462 = OpCompositeExtract %float %x_452 1 + %463 = OpCompositeExtract %float %x_452 2 + %464 = OpCompositeConstruct %v3float %461 %462 %463 + OpStore %param_9 %464 None + %465 = OpFDiv %float %float_1 %x_454 + OpStore %param_10 %465 None %x_461 = OpFunctionCall %v3float %perturbNormal_mf33_vf3_f1_ %param_8 %param_9 %param_10 %x_462 = OpLoad %v4float %output4 None - %542 = OpCompositeExtract %float %x_461 0 - %543 = OpCompositeExtract %float %x_461 1 - %544 = OpCompositeExtract %float %x_461 2 - %545 = OpCompositeExtract %float %x_462 3 - %546 = OpCompositeConstruct %v4float %542 %543 %544 %545 - OpStore %output4 %546 None + %468 = OpCompositeExtract %float %x_461 0 + %469 = OpCompositeExtract %float %x_461 1 + %470 = OpCompositeExtract %float %x_461 2 + %471 = OpCompositeExtract %float %x_462 3 + %472 = OpCompositeConstruct %v4float %468 %469 %470 %471 + OpStore %output4 %472 None %x_465 = OpLoad %v2float %v_uv None %x_466 = OpLoad %v2float %uvOffset None - %549 = OpFAdd %v2float %x_465 %x_466 - OpStore %output6 %549 None + %475 = OpFAdd %v2float %x_465 %x_466 + OpStore %output6 %475 None %x_474 = OpLoad %v2float %output6 None - %551 = OpLoad %11 %TextureSampler1Texture None - %552 = OpLoad %14 %TextureSampler1Sampler None - %553 = OpSampledImage %344 %551 %552 - %x_475 = OpImageSampleImplicitLod %v4float %553 %x_474 None + %477 = OpLoad %11 %TextureSampler1Texture None + %478 = OpLoad %14 %TextureSampler1Sampler None + %479 = OpSampledImage %344 %477 %478 + %x_475 = OpImageSampleImplicitLod %v4float %479 %x_474 None OpStore %tempTextureRead1 %x_475 None %x_477 = OpLoad %v4float %tempTextureRead1 None - %556 = OpCompositeExtract %float %x_477 0 - %557 = OpCompositeExtract %float %x_477 1 - %558 = OpCompositeExtract %float %x_477 2 - %559 = OpCompositeConstruct %v3float %556 %557 %558 - OpStore %rgb1 %559 None - %560 = OpAccessChain %_ptr_Uniform_v3float %19 %uint_0 %uint_4 - %x_481 = OpLoad %v3float %560 None + %482 = OpCompositeExtract %float %x_477 0 + %483 = OpCompositeExtract %float %x_477 1 + %484 = OpCompositeExtract %float %x_477 2 + %485 = OpCompositeConstruct %v3float %482 %483 %484 + OpStore %rgb1 %485 None + %486 = OpAccessChain %_ptr_Uniform_v3float %19 %uint_0 %uint_4 + %x_481 = OpLoad %v3float %486 None %x_482 = OpLoad %v4float %v_output1 None - %563 = OpCompositeExtract %float %x_482 0 - %564 = OpCompositeExtract %float %x_482 1 - %565 = OpCompositeExtract %float %x_482 2 - %566 = OpCompositeConstruct %v3float %563 %564 %565 - %567 = OpFSub %v3float %x_481 %566 - %568 = OpExtInst %v3float %83 Normalize %567 - OpStore %viewDirectionW_1 %568 None + %489 = OpCompositeExtract %float %x_482 0 + %490 = OpCompositeExtract %float %x_482 1 + %491 = OpCompositeExtract %float %x_482 2 + %492 = OpCompositeConstruct %v3float %489 %490 %491 + %493 = OpFSub %v3float %x_481 %492 + %494 = OpExtInst %v3float %83 Normalize %493 + OpStore %viewDirectionW_1 %494 None OpStore %shadow %float_1 None %x_488 = OpLoad %float %u_Float None - %570 = OpFMul %float %float_1 %x_488 - OpStore %glossiness_1 %570 None + %496 = OpFMul %float %float_1 %x_488 + OpStore %glossiness_1 %496 None OpStore %diffuseBase %8 None OpStore %specularBase %8 None %x_494 = OpLoad %v4float %output4 None - %572 = OpCompositeExtract %float %x_494 0 - %573 = OpCompositeExtract %float %x_494 1 - %574 = OpCompositeExtract %float %x_494 2 - %575 = OpCompositeConstruct %v3float %572 %573 %574 - OpStore %normalW %575 None + %498 = OpCompositeExtract %float %x_494 0 + %499 = OpCompositeExtract %float %x_494 1 + %500 = OpCompositeExtract %float %x_494 2 + %501 = OpCompositeConstruct %v3float %498 %499 %500 + OpStore %normalW %501 None %x_501 = OpLoad %v3float %viewDirectionW_1 None OpStore %param_11 %x_501 None %x_503 = OpLoad %v3float %normalW None OpStore %param_12 %x_503 None - %578 = OpAccessChain %_ptr_Uniform_v4float %37 %uint_0 %uint_0 - %x_507 = OpLoad %v4float %578 None + %504 = OpAccessChain %_ptr_Uniform_v4float %37 %uint_0 %uint_0 + %x_507 = OpLoad %v4float %504 None OpStore %param_13 %x_507 None - %581 = OpAccessChain %_ptr_Uniform_v4float %37 %uint_0 %uint_1 - %x_510 = OpLoad %v4float %581 None - %583 = OpCompositeExtract %float %x_510 0 - %584 = OpCompositeExtract %float %x_510 1 - %585 = OpCompositeExtract %float %x_510 2 - %586 = OpCompositeConstruct %v3float %583 %584 %585 - OpStore %param_14 %586 None - %587 = OpAccessChain %_ptr_Uniform_v4float %37 %uint_0 %uint_2 - %x_514 = OpLoad %v4float %587 None - %589 = OpCompositeExtract %float %x_514 0 - %590 = OpCompositeExtract %float %x_514 1 - %591 = OpCompositeExtract %float %x_514 2 - %592 = OpCompositeConstruct %v3float %589 %590 %591 - OpStore %param_15 %592 None - %593 = OpAccessChain %_ptr_Uniform_v3float %37 %uint_0 %uint_3 - %x_518 = OpLoad %v3float %593 None + %507 = OpAccessChain %_ptr_Uniform_v4float %37 %uint_0 %uint_1 + %x_510 = OpLoad %v4float %507 None + %509 = OpCompositeExtract %float %x_510 0 + %510 = OpCompositeExtract %float %x_510 1 + %511 = OpCompositeExtract %float %x_510 2 + %512 = OpCompositeConstruct %v3float %509 %510 %511 + OpStore %param_14 %512 None + %513 = OpAccessChain %_ptr_Uniform_v4float %37 %uint_0 %uint_2 + %x_514 = OpLoad %v4float %513 None + %515 = OpCompositeExtract %float %x_514 0 + %516 = OpCompositeExtract %float %x_514 1 + %517 = OpCompositeExtract %float %x_514 2 + %518 = OpCompositeConstruct %v3float %515 %516 %517 + OpStore %param_15 %518 None + %519 = OpAccessChain %_ptr_Uniform_v3float %37 %uint_0 %uint_3 + %x_518 = OpLoad %v3float %519 None OpStore %param_16 %x_518 None %x_520 = OpLoad %float %glossiness_1 None OpStore %param_17 %x_520 None %x_521 = OpFunctionCall %lightingInfo %computeHemisphericLighting_vf3_vf3_vf4_vf3_vf3_vf3_f1_ %param_11 %param_12 %param_13 %param_14 %param_15 %param_16 %param_17 OpStore %info %x_521 None OpStore %shadow %float_1 None - %598 = OpAccessChain %_ptr_Function_v3float %info %uint_0 - %x_523 = OpLoad %v3float %598 None + %524 = OpAccessChain %_ptr_Function_v3float %info %uint_0 + %x_523 = OpLoad %v3float %524 None %x_524 = OpLoad %float %shadow None %x_526 = OpLoad %v3float %diffuseBase None - %602 = OpVectorTimesScalar %v3float %x_523 %x_524 - %603 = OpFAdd %v3float %x_526 %602 - OpStore %diffuseBase %603 None - %604 = OpAccessChain %_ptr_Function_v3float %info %uint_1 - %x_529 = OpLoad %v3float %604 None + %528 = OpVectorTimesScalar %v3float %x_523 %x_524 + %529 = OpFAdd %v3float %x_526 %528 + OpStore %diffuseBase %529 None + %530 = OpAccessChain %_ptr_Function_v3float %info %uint_1 + %x_529 = OpLoad %v3float %530 None %x_530 = OpLoad %float %shadow None %x_532 = OpLoad %v3float %specularBase None - %608 = OpVectorTimesScalar %v3float %x_529 %x_530 - %609 = OpFAdd %v3float %x_532 %608 - OpStore %specularBase %609 None + %534 = OpVectorTimesScalar %v3float %x_529 %x_530 + %535 = OpFAdd %v3float %x_532 %534 + OpStore %specularBase %535 None %x_535 = OpLoad %v3float %diffuseBase None %x_536 = OpLoad %v3float %rgb1 None - %612 = OpFMul %v3float %x_535 %x_536 - OpStore %diffuseOutput %612 None + %538 = OpFMul %v3float %x_535 %x_536 + OpStore %diffuseOutput %538 None %x_539 = OpLoad %v3float %specularBase None %x_540 = OpLoad %v3float %u_Color None - %615 = OpFMul %v3float %x_539 %x_540 - OpStore %specularOutput %615 None + %541 = OpFMul %v3float %x_539 %x_540 + OpStore %specularOutput %541 None %x_543 = OpLoad %v3float %diffuseOutput None %x_544 = OpLoad %v3float %specularOutput None - %618 = OpFAdd %v3float %x_543 %x_544 - OpStore %output3 %618 None + %544 = OpFAdd %v3float %x_543 %x_544 + OpStore %output3 %544 None %x_548 = OpLoad %v3float %output3 None - %620 = OpCompositeExtract %float %x_548 0 - %621 = OpCompositeExtract %float %x_548 1 - %622 = OpCompositeExtract %float %x_548 2 - %623 = OpCompositeConstruct %v4float %620 %621 %622 %float_1 - OpStore %glFragColor %623 None + %546 = OpCompositeExtract %float %x_548 0 + %547 = OpCompositeExtract %float %x_548 1 + %548 = OpCompositeExtract %float %x_548 2 + %549 = OpCompositeConstruct %v4float %546 %547 %548 %float_1 + OpStore %glFragColor %549 None OpReturn OpFunctionEnd %main_inner = OpFunction %main_out None %631
diff --git a/test/tint/builtins/atomicStore/array/aliased_arrays.wgsl.expected.spvasm b/test/tint/builtins/atomicStore/array/aliased_arrays.wgsl.expected.spvasm index d8aa928..b6c43bc 100644 --- a/test/tint/builtins/atomicStore/array/aliased_arrays.wgsl.expected.spvasm +++ b/test/tint/builtins/atomicStore/array/aliased_arrays.wgsl.expected.spvasm
@@ -26,11 +26,11 @@ %compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %15 = OpTypeFunction %void %uint - %uint_6 = OpConstant %uint 6 - %bool = OpTypeBool + %uint_264 = OpConstant %uint 264 %_ptr_Workgroup_uint = OpTypePointer Workgroup %uint %uint_0 = OpConstant %uint 0 - %uint_264 = OpConstant %uint 264 + %uint_6 = OpConstant %uint 6 + %bool = OpTypeBool %40 = OpTypeFunction %void %compute_main_inner = OpFunction %void None %15 %tint_local_index = OpFunctionParameter %uint @@ -43,24 +43,24 @@ OpLoopMerge %21 %19 None OpBranch %18 %18 = OpLabel - %24 = OpUGreaterThanEqual %bool %22 %uint_6 - OpSelectionMerge %27 None - OpBranchConditional %24 %28 %27 - %28 = OpLabel + %30 = OpUGreaterThanEqual %bool %22 %uint_6 + OpSelectionMerge %33 None + OpBranchConditional %30 %34 %33 + %34 = OpLabel OpBranch %21 - %27 = OpLabel - %29 = OpUMod %uint %22 %uint_2 - %30 = OpUDiv %uint %22 %uint_2 - %31 = OpAccessChain %_ptr_Workgroup_uint %wg %30 %29 %uint_0 - OpAtomicStore %31 %uint_2 %uint_0 %uint_0 + %33 = OpLabel + %35 = OpUMod %uint %22 %uint_2 + %36 = OpUDiv %uint %22 %uint_2 + %37 = OpAccessChain %_ptr_Workgroup_uint %wg %36 %35 %uint_0 + OpAtomicStore %37 %uint_2 %uint_0 %uint_0 OpBranch %19 %19 = OpLabel %23 = OpIAdd %uint %22 %uint_1 OpBranch %20 %21 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %37 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_2 %uint_1 %uint_0 - OpAtomicStore %37 %uint_2 %uint_0 %uint_1 + %26 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_2 %uint_1 %uint_0 + OpAtomicStore %26 %uint_2 %uint_0 %uint_1 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %40
diff --git a/test/tint/builtins/atomicStore/array/array.wgsl.expected.spvasm b/test/tint/builtins/atomicStore/array/array.wgsl.expected.spvasm index e231df0..5ee51c3 100644 --- a/test/tint/builtins/atomicStore/array/array.wgsl.expected.spvasm +++ b/test/tint/builtins/atomicStore/array/array.wgsl.expected.spvasm
@@ -22,12 +22,12 @@ %compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %11 = OpTypeFunction %void %uint - %bool = OpTypeBool -%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint %uint_2 = OpConstant %uint 2 - %uint_0 = OpConstant %uint 0 - %uint_1 = OpConstant %uint 1 %uint_264 = OpConstant %uint 264 +%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint + %uint_1 = OpConstant %uint 1 + %uint_0 = OpConstant %uint 0 + %bool = OpTypeBool %35 = OpTypeFunction %void %compute_main_inner = OpFunction %void None %11 %tint_local_index = OpFunctionParameter %uint @@ -40,22 +40,22 @@ OpLoopMerge %17 %15 None OpBranch %14 %14 = OpLabel - %20 = OpUGreaterThanEqual %bool %18 %uint_4 - OpSelectionMerge %22 None - OpBranchConditional %20 %23 %22 - %23 = OpLabel + %28 = OpUGreaterThanEqual %bool %18 %uint_4 + OpSelectionMerge %30 None + OpBranchConditional %28 %31 %30 + %31 = OpLabel OpBranch %17 - %22 = OpLabel - %24 = OpAccessChain %_ptr_Workgroup_uint %wg %18 - OpAtomicStore %24 %uint_2 %uint_0 %uint_0 + %30 = OpLabel + %32 = OpAccessChain %_ptr_Workgroup_uint %wg %18 + OpAtomicStore %32 %uint_2 %uint_0 %uint_0 OpBranch %15 %15 = OpLabel %19 = OpIAdd %uint %18 %uint_1 OpBranch %16 %17 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %32 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_1 - OpAtomicStore %32 %uint_2 %uint_0 %uint_1 + %23 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_1 + OpAtomicStore %23 %uint_2 %uint_0 %uint_1 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %35
diff --git a/test/tint/builtins/atomicStore/array/arrays.wgsl.expected.spvasm b/test/tint/builtins/atomicStore/array/arrays.wgsl.expected.spvasm index d8aa928..b6c43bc 100644 --- a/test/tint/builtins/atomicStore/array/arrays.wgsl.expected.spvasm +++ b/test/tint/builtins/atomicStore/array/arrays.wgsl.expected.spvasm
@@ -26,11 +26,11 @@ %compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %15 = OpTypeFunction %void %uint - %uint_6 = OpConstant %uint 6 - %bool = OpTypeBool + %uint_264 = OpConstant %uint 264 %_ptr_Workgroup_uint = OpTypePointer Workgroup %uint %uint_0 = OpConstant %uint 0 - %uint_264 = OpConstant %uint 264 + %uint_6 = OpConstant %uint 6 + %bool = OpTypeBool %40 = OpTypeFunction %void %compute_main_inner = OpFunction %void None %15 %tint_local_index = OpFunctionParameter %uint @@ -43,24 +43,24 @@ OpLoopMerge %21 %19 None OpBranch %18 %18 = OpLabel - %24 = OpUGreaterThanEqual %bool %22 %uint_6 - OpSelectionMerge %27 None - OpBranchConditional %24 %28 %27 - %28 = OpLabel + %30 = OpUGreaterThanEqual %bool %22 %uint_6 + OpSelectionMerge %33 None + OpBranchConditional %30 %34 %33 + %34 = OpLabel OpBranch %21 - %27 = OpLabel - %29 = OpUMod %uint %22 %uint_2 - %30 = OpUDiv %uint %22 %uint_2 - %31 = OpAccessChain %_ptr_Workgroup_uint %wg %30 %29 %uint_0 - OpAtomicStore %31 %uint_2 %uint_0 %uint_0 + %33 = OpLabel + %35 = OpUMod %uint %22 %uint_2 + %36 = OpUDiv %uint %22 %uint_2 + %37 = OpAccessChain %_ptr_Workgroup_uint %wg %36 %35 %uint_0 + OpAtomicStore %37 %uint_2 %uint_0 %uint_0 OpBranch %19 %19 = OpLabel %23 = OpIAdd %uint %22 %uint_1 OpBranch %20 %21 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %37 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_2 %uint_1 %uint_0 - OpAtomicStore %37 %uint_2 %uint_0 %uint_1 + %26 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_2 %uint_1 %uint_0 + OpAtomicStore %26 %uint_2 %uint_0 %uint_1 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %40
diff --git a/test/tint/builtins/atomicStore/struct/array_of_struct.wgsl.expected.spvasm b/test/tint/builtins/atomicStore/struct/array_of_struct.wgsl.expected.spvasm index efda0e7..82c76be 100644 --- a/test/tint/builtins/atomicStore/struct/array_of_struct.wgsl.expected.spvasm +++ b/test/tint/builtins/atomicStore/struct/array_of_struct.wgsl.expected.spvasm
@@ -28,16 +28,16 @@ %compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %13 = OpTypeFunction %void %uint + %uint_2 = OpConstant %uint 2 + %uint_264 = OpConstant %uint 264 +%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint + %uint_4 = OpConstant %uint 4 + %uint_1 = OpConstant %uint 1 + %uint_0 = OpConstant %uint 0 %bool = OpTypeBool %_ptr_Workgroup_int = OpTypePointer Workgroup %int - %uint_0 = OpConstant %uint 0 %int_0 = OpConstant %int 0 -%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 %_ptr_Workgroup_uint_0 = OpTypePointer Workgroup %uint - %uint_264 = OpConstant %uint 264 - %uint_4 = OpConstant %uint 4 %43 = OpTypeFunction %void %compute_main_inner = OpFunction %void None %13 %tint_local_index = OpFunctionParameter %uint @@ -50,26 +50,26 @@ OpLoopMerge %19 %17 None OpBranch %16 %16 = OpLabel - %22 = OpUGreaterThanEqual %bool %20 %uint_10 - OpSelectionMerge %24 None - OpBranchConditional %22 %25 %24 - %25 = OpLabel + %31 = OpUGreaterThanEqual %bool %20 %uint_10 + OpSelectionMerge %33 None + OpBranchConditional %31 %34 %33 + %34 = OpLabel OpBranch %19 - %24 = OpLabel - %26 = OpAccessChain %_ptr_Workgroup_int %wg %20 %uint_0 - OpStore %26 %int_0 None - %30 = OpAccessChain %_ptr_Workgroup_uint %wg %20 %uint_1 - OpAtomicStore %30 %uint_2 %uint_0 %uint_0 - %35 = OpAccessChain %_ptr_Workgroup_uint_0 %wg %20 %uint_2 - OpStore %35 %uint_0 None + %33 = OpLabel + %35 = OpAccessChain %_ptr_Workgroup_int %wg %20 %uint_0 + OpStore %35 %int_0 None + %38 = OpAccessChain %_ptr_Workgroup_uint %wg %20 %uint_1 + OpAtomicStore %38 %uint_2 %uint_0 %uint_0 + %40 = OpAccessChain %_ptr_Workgroup_uint_0 %wg %20 %uint_2 + OpStore %40 %uint_0 None OpBranch %17 %17 = OpLabel %21 = OpIAdd %uint %20 %uint_1 OpBranch %18 %19 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %39 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_4 %uint_1 - OpAtomicStore %39 %uint_2 %uint_0 %uint_1 + %25 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_4 %uint_1 + OpAtomicStore %25 %uint_2 %uint_0 %uint_1 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %43
diff --git a/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.wgsl.expected.spvasm b/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.wgsl.expected.spvasm index 47b7c7b..d2940c8 100644 --- a/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.wgsl.expected.spvasm +++ b/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.wgsl.expected.spvasm
@@ -28,12 +28,12 @@ %11 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool -%_ptr_Workgroup_int = OpTypePointer Workgroup %int - %uint_0 = OpConstant %uint 0 - %int_0 = OpConstant %int 0 -%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 +%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint + %uint_0 = OpConstant %uint 0 +%_ptr_Workgroup_int = OpTypePointer Workgroup %int + %int_0 = OpConstant %int 0 %35 = OpTypeFunction %void %compute_main_inner = OpFunction %void None %11 %tint_local_index = OpFunctionParameter %uint @@ -42,19 +42,19 @@ OpSelectionMerge %16 None OpBranchConditional %13 %17 %16 %17 = OpLabel - %18 = OpAccessChain %_ptr_Workgroup_int %wg %uint_0 - OpStore %18 %int_0 None - %22 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_1 - OpAtomicStore %22 %uint_2 %uint_0 %uint_0 - %26 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_2 - OpAtomicStore %26 %uint_2 %uint_0 %uint_0 + %27 = OpAccessChain %_ptr_Workgroup_int %wg %uint_0 + OpStore %27 %int_0 None + %30 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_1 + OpAtomicStore %30 %uint_2 %uint_0 %uint_0 + %32 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_2 + OpAtomicStore %32 %uint_2 %uint_0 %uint_0 OpBranch %16 %16 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %30 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_1 - OpAtomicStore %30 %uint_2 %uint_0 %uint_1 - %32 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_2 - OpAtomicStore %32 %uint_2 %uint_0 %uint_2 + %21 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_1 + OpAtomicStore %21 %uint_2 %uint_0 %uint_1 + %25 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_2 + OpAtomicStore %25 %uint_2 %uint_0 %uint_2 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %35
diff --git a/test/tint/builtins/atomicStore/struct/flat_single_atomic.wgsl.expected.spvasm b/test/tint/builtins/atomicStore/struct/flat_single_atomic.wgsl.expected.spvasm index 1f41b11..1bf41ca 100644 --- a/test/tint/builtins/atomicStore/struct/flat_single_atomic.wgsl.expected.spvasm +++ b/test/tint/builtins/atomicStore/struct/flat_single_atomic.wgsl.expected.spvasm
@@ -28,13 +28,13 @@ %11 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool -%_ptr_Workgroup_int = OpTypePointer Workgroup %int - %uint_0 = OpConstant %uint 0 - %int_0 = OpConstant %int 0 -%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint %uint_2 = OpConstant %uint 2 -%_ptr_Workgroup_uint_0 = OpTypePointer Workgroup %uint %uint_264 = OpConstant %uint 264 +%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint + %uint_0 = OpConstant %uint 0 +%_ptr_Workgroup_int = OpTypePointer Workgroup %int + %int_0 = OpConstant %int 0 +%_ptr_Workgroup_uint_0 = OpTypePointer Workgroup %uint %33 = OpTypeFunction %void %compute_main_inner = OpFunction %void None %11 %tint_local_index = OpFunctionParameter %uint @@ -43,17 +43,17 @@ OpSelectionMerge %16 None OpBranchConditional %13 %17 %16 %17 = OpLabel - %18 = OpAccessChain %_ptr_Workgroup_int %wg %uint_0 - OpStore %18 %int_0 None - %22 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_1 - OpAtomicStore %22 %uint_2 %uint_0 %uint_0 - %26 = OpAccessChain %_ptr_Workgroup_uint_0 %wg %uint_2 - OpStore %26 %uint_0 None + %25 = OpAccessChain %_ptr_Workgroup_int %wg %uint_0 + OpStore %25 %int_0 None + %28 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_1 + OpAtomicStore %28 %uint_2 %uint_0 %uint_0 + %30 = OpAccessChain %_ptr_Workgroup_uint_0 %wg %uint_2 + OpStore %30 %uint_0 None OpBranch %16 %16 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %30 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_1 - OpAtomicStore %30 %uint_2 %uint_0 %uint_1 + %21 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_1 + OpAtomicStore %21 %uint_2 %uint_0 %uint_1 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %33
diff --git a/test/tint/builtins/atomicStore/struct/nested.wgsl.expected.spvasm b/test/tint/builtins/atomicStore/struct/nested.wgsl.expected.spvasm index f318a78..8668c33 100644 --- a/test/tint/builtins/atomicStore/struct/nested.wgsl.expected.spvasm +++ b/test/tint/builtins/atomicStore/struct/nested.wgsl.expected.spvasm
@@ -41,13 +41,13 @@ %13 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool -%_ptr_Workgroup_int = OpTypePointer Workgroup %int - %uint_0 = OpConstant %uint 0 - %int_0 = OpConstant %int 0 %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 -%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint %uint_264 = OpConstant %uint 264 +%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint + %uint_3 = OpConstant %uint 3 + %uint_0 = OpConstant %uint 0 +%_ptr_Workgroup_int = OpTypePointer Workgroup %int + %int_0 = OpConstant %int 0 %42 = OpTypeFunction %void %compute_main_inner = OpFunction %void None %13 %tint_local_index = OpFunctionParameter %uint @@ -56,31 +56,31 @@ OpSelectionMerge %18 None OpBranchConditional %15 %19 %18 %19 = OpLabel - %20 = OpAccessChain %_ptr_Workgroup_int %wg %uint_0 - OpStore %20 %int_0 None - %24 = OpAccessChain %_ptr_Workgroup_int %wg %uint_1 - OpStore %24 %int_0 None - %25 = OpAccessChain %_ptr_Workgroup_int %wg %uint_2 - OpStore %25 %int_0 None - %27 = OpAccessChain %_ptr_Workgroup_int %wg %uint_3 %uint_0 - OpStore %27 %int_0 None - %29 = OpAccessChain %_ptr_Workgroup_int %wg %uint_3 %uint_1 %uint_0 - OpStore %29 %int_0 None - %30 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_3 %uint_1 %uint_1 - OpAtomicStore %30 %uint_2 %uint_0 %uint_0 - %33 = OpAccessChain %_ptr_Workgroup_int %wg %uint_3 %uint_1 %uint_2 + %28 = OpAccessChain %_ptr_Workgroup_int %wg %uint_0 + OpStore %28 %int_0 None + %31 = OpAccessChain %_ptr_Workgroup_int %wg %uint_1 + OpStore %31 %int_0 None + %32 = OpAccessChain %_ptr_Workgroup_int %wg %uint_2 + OpStore %32 %int_0 None + %33 = OpAccessChain %_ptr_Workgroup_int %wg %uint_3 %uint_0 OpStore %33 %int_0 None - %34 = OpAccessChain %_ptr_Workgroup_int %wg %uint_3 %uint_1 %uint_3 + %34 = OpAccessChain %_ptr_Workgroup_int %wg %uint_3 %uint_1 %uint_0 OpStore %34 %int_0 None - %35 = OpAccessChain %_ptr_Workgroup_int %wg %uint_3 %uint_2 - OpStore %35 %int_0 None - %36 = OpAccessChain %_ptr_Workgroup_int %wg %uint_3 %uint_3 - OpStore %36 %int_0 None + %35 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_3 %uint_1 %uint_1 + OpAtomicStore %35 %uint_2 %uint_0 %uint_0 + %37 = OpAccessChain %_ptr_Workgroup_int %wg %uint_3 %uint_1 %uint_2 + OpStore %37 %int_0 None + %38 = OpAccessChain %_ptr_Workgroup_int %wg %uint_3 %uint_1 %uint_3 + OpStore %38 %int_0 None + %39 = OpAccessChain %_ptr_Workgroup_int %wg %uint_3 %uint_2 + OpStore %39 %int_0 None + %40 = OpAccessChain %_ptr_Workgroup_int %wg %uint_3 %uint_3 + OpStore %40 %int_0 None OpBranch %18 %18 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %39 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_3 %uint_1 %uint_1 - OpAtomicStore %39 %uint_2 %uint_0 %uint_1 + %23 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_3 %uint_1 %uint_1 + OpAtomicStore %23 %uint_2 %uint_0 %uint_1 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %42
diff --git a/test/tint/builtins/atomicStore/struct/struct_of_array.wgsl.expected.spvasm b/test/tint/builtins/atomicStore/struct/struct_of_array.wgsl.expected.spvasm index 49a70af..8bb89ea 100644 --- a/test/tint/builtins/atomicStore/struct/struct_of_array.wgsl.expected.spvasm +++ b/test/tint/builtins/atomicStore/struct/struct_of_array.wgsl.expected.spvasm
@@ -30,14 +30,14 @@ %13 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool -%_ptr_Workgroup_int = OpTypePointer Workgroup %int - %uint_0 = OpConstant %uint 0 - %int_0 = OpConstant %int 0 -%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint %uint_2 = OpConstant %uint 2 -%_ptr_Workgroup_uint_0 = OpTypePointer Workgroup %uint %uint_264 = OpConstant %uint 264 +%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint %uint_4 = OpConstant %uint 4 + %uint_0 = OpConstant %uint 0 +%_ptr_Workgroup_int = OpTypePointer Workgroup %int + %int_0 = OpConstant %int 0 +%_ptr_Workgroup_uint_0 = OpTypePointer Workgroup %uint %46 = OpTypeFunction %void %compute_main_inner = OpFunction %void None %13 %tint_local_index = OpFunctionParameter %uint @@ -46,36 +46,36 @@ OpSelectionMerge %18 None OpBranchConditional %15 %19 %18 %19 = OpLabel - %20 = OpAccessChain %_ptr_Workgroup_int %wg %uint_0 - OpStore %20 %int_0 None - %24 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_2 - OpStore %24 %uint_0 None + %35 = OpAccessChain %_ptr_Workgroup_int %wg %uint_0 + OpStore %35 %int_0 None + %38 = OpAccessChain %_ptr_Workgroup_uint_0 %wg %uint_2 + OpStore %38 %uint_0 None OpBranch %18 %18 = OpLabel - OpBranch %27 - %27 = OpLabel - OpBranch %30 - %30 = OpLabel - %32 = OpPhi %uint %tint_local_index %27 %33 %29 - OpLoopMerge %31 %29 None - OpBranch %28 - %28 = OpLabel - %34 = OpUGreaterThanEqual %bool %32 %uint_10 - OpSelectionMerge %35 None - OpBranchConditional %34 %36 %35 - %36 = OpLabel - OpBranch %31 - %35 = OpLabel - %37 = OpAccessChain %_ptr_Workgroup_uint_0 %wg %uint_1 %32 - OpAtomicStore %37 %uint_2 %uint_0 %uint_0 - OpBranch %29 - %29 = OpLabel - %33 = OpIAdd %uint %32 %uint_1 - OpBranch %30 - %31 = OpLabel + OpBranch %20 + %20 = OpLabel + OpBranch %23 + %23 = OpLabel + %25 = OpPhi %uint %tint_local_index %20 %26 %22 + OpLoopMerge %24 %22 None + OpBranch %21 + %21 = OpLabel + %40 = OpUGreaterThanEqual %bool %25 %uint_10 + OpSelectionMerge %41 None + OpBranchConditional %40 %42 %41 + %42 = OpLabel + OpBranch %24 + %41 = OpLabel + %43 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_1 %25 + OpAtomicStore %43 %uint_2 %uint_0 %uint_0 + OpBranch %22 + %22 = OpLabel + %26 = OpIAdd %uint %25 %uint_1 + OpBranch %23 + %24 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %42 = OpAccessChain %_ptr_Workgroup_uint_0 %wg %uint_1 %uint_4 - OpAtomicStore %42 %uint_2 %uint_0 %uint_1 + %30 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_1 %uint_4 + OpAtomicStore %30 %uint_2 %uint_0 %uint_1 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %46
diff --git a/test/tint/builtins/atomicStore/struct/via_ptr_let.wgsl.expected.spvasm b/test/tint/builtins/atomicStore/struct/via_ptr_let.wgsl.expected.spvasm index bb19879..60a3de4 100644 --- a/test/tint/builtins/atomicStore/struct/via_ptr_let.wgsl.expected.spvasm +++ b/test/tint/builtins/atomicStore/struct/via_ptr_let.wgsl.expected.spvasm
@@ -30,13 +30,13 @@ %11 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool -%_ptr_Workgroup_int = OpTypePointer Workgroup %int - %uint_0 = OpConstant %uint 0 - %int_0 = OpConstant %int 0 -%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint %uint_2 = OpConstant %uint 2 -%_ptr_Workgroup_uint_0 = OpTypePointer Workgroup %uint %uint_264 = OpConstant %uint 264 +%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint + %uint_0 = OpConstant %uint 0 +%_ptr_Workgroup_int = OpTypePointer Workgroup %int + %int_0 = OpConstant %int 0 +%_ptr_Workgroup_uint_0 = OpTypePointer Workgroup %uint %33 = OpTypeFunction %void %compute_main_inner = OpFunction %void None %11 %tint_local_index = OpFunctionParameter %uint @@ -45,12 +45,12 @@ OpSelectionMerge %16 None OpBranchConditional %13 %17 %16 %17 = OpLabel - %18 = OpAccessChain %_ptr_Workgroup_int %wg %uint_0 - OpStore %18 %int_0 None - %22 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_1 - OpAtomicStore %22 %uint_2 %uint_0 %uint_0 - %26 = OpAccessChain %_ptr_Workgroup_uint_0 %wg %uint_2 - OpStore %26 %uint_0 None + %25 = OpAccessChain %_ptr_Workgroup_int %wg %uint_0 + OpStore %25 %int_0 None + %28 = OpAccessChain %_ptr_Workgroup_uint %wg %uint_1 + OpAtomicStore %28 %uint_2 %uint_0 %uint_0 + %30 = OpAccessChain %_ptr_Workgroup_uint_0 %wg %uint_2 + OpStore %30 %uint_0 None OpBranch %16 %16 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264
diff --git a/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.spvasm index f9f170e..fad2574 100644 --- a/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.spvasm
@@ -40,9 +40,9 @@ %23 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_264 = OpConstant %uint 264 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %int_0 = OpConstant %int 0 %38 = OpTypeFunction %void %atomicAdd_794055 = OpFunction %int None %11 %12 = OpLabel @@ -63,9 +63,9 @@ OpBranch %28 %28 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %34 = OpFunctionCall %int %atomicAdd_794055 - %35 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 - OpStore %35 %34 None + %32 = OpFunctionCall %int %atomicAdd_794055 + %33 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 + OpStore %33 %32 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %38
diff --git a/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.spvasm index 9130bb8..8774b04 100644 --- a/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.spvasm
@@ -60,9 +60,9 @@ OpBranch %26 %26 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %31 = OpFunctionCall %uint %atomicAdd_d5db1d - %32 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 - OpStore %32 %31 None + %30 = OpFunctionCall %uint %atomicAdd_d5db1d + %31 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 + OpStore %31 %30 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %35
diff --git a/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.spvasm index fb2367e..21993e3 100644 --- a/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.spvasm
@@ -60,9 +60,9 @@ OpBranch %26 %26 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %31 = OpFunctionCall %uint %atomicAnd_34edd3 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 - OpStore %32 %31 None + %30 = OpFunctionCall %uint %atomicAnd_34edd3 + %31 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 + OpStore %31 %30 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %35
diff --git a/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.spvasm index 8508d9b..2f28f6a 100644 --- a/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.spvasm
@@ -40,9 +40,9 @@ %23 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_264 = OpConstant %uint 264 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %int_0 = OpConstant %int 0 %38 = OpTypeFunction %void %atomicAnd_45a819 = OpFunction %int None %11 %12 = OpLabel @@ -63,9 +63,9 @@ OpBranch %28 %28 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %34 = OpFunctionCall %int %atomicAnd_45a819 - %35 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 - OpStore %35 %34 None + %32 = OpFunctionCall %int %atomicAnd_45a819 + %33 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 + OpStore %33 %32 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %38
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/83580d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/83580d.wgsl.expected.spvasm index 3e79a6d..698bae2 100644 --- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/83580d.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/83580d.wgsl.expected.spvasm
@@ -53,7 +53,7 @@ OpBranch %25 %25 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %30 = OpFunctionCall %void %atomicCompareExchangeWeak_83580d + %29 = OpFunctionCall %void %atomicCompareExchangeWeak_83580d OpReturn OpFunctionEnd %compute_main = OpFunction %void None %8
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/e88938.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/e88938.wgsl.expected.spvasm index e41b546..f735984 100644 --- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/e88938.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/e88938.wgsl.expected.spvasm
@@ -34,8 +34,8 @@ %_ptr_Function___atomic_compare_exchange_result_i32 = OpTypePointer Function %__atomic_compare_exchange_result_i32 %23 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 - %int_0 = OpConstant %int 0 %uint_264 = OpConstant %uint 264 + %int_0 = OpConstant %int 0 %atomicCompareExchangeWeak_e88938 = OpFunction %void None %9 %10 = OpLabel %res = OpVariable %_ptr_Function___atomic_compare_exchange_result_i32 Function @@ -56,7 +56,7 @@ OpBranch %27 %27 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %33 = OpFunctionCall %void %atomicCompareExchangeWeak_e88938 + %31 = OpFunctionCall %void %atomicCompareExchangeWeak_e88938 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9
diff --git a/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.spvasm index b73ab08..08ec546 100644 --- a/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.spvasm
@@ -60,9 +60,9 @@ OpBranch %26 %26 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %31 = OpFunctionCall %uint %atomicExchange_0a5dca - %32 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 - OpStore %32 %31 None + %30 = OpFunctionCall %uint %atomicExchange_0a5dca + %31 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 + OpStore %31 %30 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %35
diff --git a/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.spvasm index b4fda5f..0896b62 100644 --- a/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.spvasm
@@ -40,9 +40,9 @@ %23 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_264 = OpConstant %uint 264 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %int_0 = OpConstant %int 0 %38 = OpTypeFunction %void %atomicExchange_e114ba = OpFunction %int None %11 %12 = OpLabel @@ -63,9 +63,9 @@ OpBranch %28 %28 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %34 = OpFunctionCall %int %atomicExchange_e114ba - %35 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 - OpStore %35 %34 None + %32 = OpFunctionCall %int %atomicExchange_e114ba + %33 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 + OpStore %33 %32 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %38
diff --git a/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.spvasm index 39ea465..f670ccc 100644 --- a/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.spvasm
@@ -60,9 +60,9 @@ OpBranch %26 %26 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %31 = OpFunctionCall %uint %atomicLoad_361bf1 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 - OpStore %32 %31 None + %30 = OpFunctionCall %uint %atomicLoad_361bf1 + %31 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 + OpStore %31 %30 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %35
diff --git a/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.spvasm index 8cf5982..1e616e6 100644 --- a/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.spvasm
@@ -39,9 +39,9 @@ %22 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_264 = OpConstant %uint 264 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %int_0 = OpConstant %int 0 %37 = OpTypeFunction %void %atomicLoad_afcc03 = OpFunction %int None %11 %12 = OpLabel @@ -62,9 +62,9 @@ OpBranch %27 %27 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %33 = OpFunctionCall %int %atomicLoad_afcc03 - %34 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 - OpStore %34 %33 None + %31 = OpFunctionCall %int %atomicLoad_afcc03 + %32 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 + OpStore %32 %31 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %37
diff --git a/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.spvasm index 50b5b26..787bc22 100644 --- a/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.spvasm
@@ -40,9 +40,9 @@ %23 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_264 = OpConstant %uint 264 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %int_0 = OpConstant %int 0 %38 = OpTypeFunction %void %atomicMax_a89cc3 = OpFunction %int None %11 %12 = OpLabel @@ -63,9 +63,9 @@ OpBranch %28 %28 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %34 = OpFunctionCall %int %atomicMax_a89cc3 - %35 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 - OpStore %35 %34 None + %32 = OpFunctionCall %int %atomicMax_a89cc3 + %33 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 + OpStore %33 %32 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %38
diff --git a/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.spvasm index 939c7fb..04e9d00 100644 --- a/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.spvasm
@@ -60,9 +60,9 @@ OpBranch %26 %26 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %31 = OpFunctionCall %uint %atomicMax_beccfc - %32 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 - OpStore %32 %31 None + %30 = OpFunctionCall %uint %atomicMax_beccfc + %31 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 + OpStore %31 %30 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %35
diff --git a/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.spvasm index b0490bd..7970eee 100644 --- a/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.spvasm
@@ -40,9 +40,9 @@ %23 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_264 = OpConstant %uint 264 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %int_0 = OpConstant %int 0 %38 = OpTypeFunction %void %atomicMin_278235 = OpFunction %int None %11 %12 = OpLabel @@ -63,9 +63,9 @@ OpBranch %28 %28 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %34 = OpFunctionCall %int %atomicMin_278235 - %35 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 - OpStore %35 %34 None + %32 = OpFunctionCall %int %atomicMin_278235 + %33 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 + OpStore %33 %32 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %38
diff --git a/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.spvasm index dea9bb8..7c05848 100644 --- a/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.spvasm
@@ -60,9 +60,9 @@ OpBranch %26 %26 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %31 = OpFunctionCall %uint %atomicMin_69d383 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 - OpStore %32 %31 None + %30 = OpFunctionCall %uint %atomicMin_69d383 + %31 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 + OpStore %31 %30 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %35
diff --git a/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.spvasm index a7a67e9..f0fbed2 100644 --- a/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.spvasm
@@ -60,9 +60,9 @@ OpBranch %26 %26 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %31 = OpFunctionCall %uint %atomicOr_5e3d61 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 - OpStore %32 %31 None + %30 = OpFunctionCall %uint %atomicOr_5e3d61 + %31 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 + OpStore %31 %30 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %35
diff --git a/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.spvasm index 8b77937..bc16a89 100644 --- a/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.spvasm
@@ -40,9 +40,9 @@ %23 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_264 = OpConstant %uint 264 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %int_0 = OpConstant %int 0 %38 = OpTypeFunction %void %atomicOr_d09248 = OpFunction %int None %11 %12 = OpLabel @@ -63,9 +63,9 @@ OpBranch %28 %28 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %34 = OpFunctionCall %int %atomicOr_d09248 - %35 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 - OpStore %35 %34 None + %32 = OpFunctionCall %int %atomicOr_d09248 + %33 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 + OpStore %33 %32 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %38
diff --git a/test/tint/builtins/gen/literal/atomicStore/726882.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicStore/726882.wgsl.expected.spvasm index f90b191..090ff6c 100644 --- a/test/tint/builtins/gen/literal/atomicStore/726882.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/atomicStore/726882.wgsl.expected.spvasm
@@ -43,7 +43,7 @@ OpBranch %20 %20 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %25 = OpFunctionCall %void %atomicStore_726882 + %24 = OpFunctionCall %void %atomicStore_726882 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %8
diff --git a/test/tint/builtins/gen/literal/atomicStore/8bea94.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicStore/8bea94.wgsl.expected.spvasm index e0293ef..656d138 100644 --- a/test/tint/builtins/gen/literal/atomicStore/8bea94.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/atomicStore/8bea94.wgsl.expected.spvasm
@@ -28,8 +28,8 @@ %17 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_264 = OpConstant %uint 264 + %int_0 = OpConstant %int 0 %atomicStore_8bea94 = OpFunction %void None %9 %10 = OpLabel OpAtomicStore %arg_0 %uint_2 %uint_0 %int_1 @@ -46,7 +46,7 @@ OpBranch %22 %22 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %28 = OpFunctionCall %void %atomicStore_8bea94 + %26 = OpFunctionCall %void %atomicStore_8bea94 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9
diff --git a/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.spvasm index f7422f2..9ce6946 100644 --- a/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.spvasm
@@ -60,9 +60,9 @@ OpBranch %26 %26 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %31 = OpFunctionCall %uint %atomicSub_0d26c2 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 - OpStore %32 %31 None + %30 = OpFunctionCall %uint %atomicSub_0d26c2 + %31 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 + OpStore %31 %30 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %35
diff --git a/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.spvasm index a287f0d..acd520c 100644 --- a/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.spvasm
@@ -40,9 +40,9 @@ %23 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_264 = OpConstant %uint 264 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %int_0 = OpConstant %int 0 %38 = OpTypeFunction %void %atomicSub_77883a = OpFunction %int None %11 %12 = OpLabel @@ -63,9 +63,9 @@ OpBranch %28 %28 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %34 = OpFunctionCall %int %atomicSub_77883a - %35 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 - OpStore %35 %34 None + %32 = OpFunctionCall %int %atomicSub_77883a + %33 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 + OpStore %33 %32 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %38
diff --git a/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.spvasm index d77877a..23d71df 100644 --- a/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.spvasm
@@ -40,9 +40,9 @@ %23 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_264 = OpConstant %uint 264 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %int_0 = OpConstant %int 0 %38 = OpTypeFunction %void %atomicXor_75dc95 = OpFunction %int None %11 %12 = OpLabel @@ -63,9 +63,9 @@ OpBranch %28 %28 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %34 = OpFunctionCall %int %atomicXor_75dc95 - %35 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 - OpStore %35 %34 None + %32 = OpFunctionCall %int %atomicXor_75dc95 + %33 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 + OpStore %33 %32 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %38
diff --git a/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.spvasm index 91e4654..c93f2a7 100644 --- a/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.spvasm
@@ -60,9 +60,9 @@ OpBranch %26 %26 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %31 = OpFunctionCall %uint %atomicXor_c8e6be - %32 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 - OpStore %32 %31 None + %30 = OpFunctionCall %uint %atomicXor_c8e6be + %31 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 + OpStore %31 %30 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %35
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0c84dd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0c84dd.wgsl.expected.spvasm index ac87385..984748f 100644 --- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0c84dd.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0c84dd.wgsl.expected.spvasm
@@ -53,12 +53,12 @@ %_ptr_Function_15 = OpTypePointer Function %15 %void = OpTypeVoid %31 = OpTypeFunction %void %uint - %bool = OpTypeBool -%half_0x0p_0 = OpConstant %half 0x0p+0 %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 %_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024 %_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half + %bool = OpTypeBool +%half_0x0p_0 = OpConstant %half 0x0p+0 %56 = OpTypeFunction %void %subgroupMatrixLoad_0c84dd = OpFunction %15 None %19 %20 = OpLabel @@ -80,24 +80,24 @@ OpLoopMerge %37 %35 None OpBranch %34 %34 = OpLabel - %40 = OpUGreaterThanEqual %bool %38 %uint_64 - OpSelectionMerge %42 None - OpBranchConditional %40 %43 %42 - %43 = OpLabel + %49 = OpUGreaterThanEqual %bool %38 %uint_64 + OpSelectionMerge %51 None + OpBranchConditional %49 %52 %51 + %52 = OpLabel OpBranch %37 - %42 = OpLabel - %44 = OpAccessChain %_ptr_Workgroup_half %arg_0 %38 - OpStore %44 %half_0x0p_0 NonPrivatePointer + %51 = OpLabel + %53 = OpAccessChain %_ptr_Workgroup_half %arg_0 %38 + OpStore %53 %half_0x0p_0 NonPrivatePointer OpBranch %35 %35 = OpLabel %39 = OpIAdd %uint %38 %uint_1 OpBranch %36 %37 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %49 = OpFunctionCall %15 %subgroupMatrixLoad_0c84dd - %50 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0 - %52 = OpAccessChain %_ptr_StorageBuffer_half %50 %uint_0 - OpCooperativeMatrixStoreKHR %52 %49 %uint_0 %uint_64 NonPrivatePointer + %43 = OpFunctionCall %15 %subgroupMatrixLoad_0c84dd + %44 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0 + %46 = OpAccessChain %_ptr_StorageBuffer_half %44 %uint_0 + OpCooperativeMatrixStoreKHR %46 %43 %uint_0 %uint_64 NonPrivatePointer OpReturn OpFunctionEnd %compute_main = OpFunction %void None %56
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.spvasm index e119161..e1b9a22 100644 --- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.spvasm
@@ -52,13 +52,13 @@ %_ptr_Function_15 = OpTypePointer Function %15 %void = OpTypeVoid %30 = OpTypeFunction %void %uint - %bool = OpTypeBool -%half_0x0p_0 = OpConstant %half 0x0p+0 %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 %_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024 %uint_0 = OpConstant %uint 0 %_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half + %bool = OpTypeBool +%half_0x0p_0 = OpConstant %half 0x0p+0 %56 = OpTypeFunction %void %subgroupMatrixLoad_139ad7 = OpFunction %15 None %19 %20 = OpLabel @@ -80,24 +80,24 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_64 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %49 = OpUGreaterThanEqual %bool %37 %uint_64 + OpSelectionMerge %51 None + OpBranchConditional %49 %52 %51 + %52 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Workgroup_half %arg_0 %37 - OpStore %43 %half_0x0p_0 NonPrivatePointer + %51 = OpLabel + %53 = OpAccessChain %_ptr_Workgroup_half %arg_0 %37 + OpStore %53 %half_0x0p_0 NonPrivatePointer OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %48 = OpFunctionCall %15 %subgroupMatrixLoad_139ad7 - %49 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0 - %52 = OpAccessChain %_ptr_StorageBuffer_half %49 %uint_0 - OpCooperativeMatrixStoreKHR %52 %48 %uint_0 %uint_64 NonPrivatePointer + %42 = OpFunctionCall %15 %subgroupMatrixLoad_139ad7 + %43 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0 + %46 = OpAccessChain %_ptr_StorageBuffer_half %43 %uint_0 + OpCooperativeMatrixStoreKHR %46 %42 %uint_0 %uint_64 NonPrivatePointer OpReturn OpFunctionEnd %compute_main = OpFunction %void None %56
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.spvasm index 4422d95..448518b 100644 --- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.spvasm
@@ -49,13 +49,13 @@ %_ptr_Function_15 = OpTypePointer Function %15 %void = OpTypeVoid %30 = OpTypeFunction %void %uint - %bool = OpTypeBool - %float_0 = OpConstant %float 0 %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 %_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024 %uint_0 = OpConstant %uint 0 %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float + %bool = OpTypeBool + %float_0 = OpConstant %float 0 %56 = OpTypeFunction %void %subgroupMatrixLoad_37b559 = OpFunction %15 None %19 %20 = OpLabel @@ -77,24 +77,24 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_64 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %49 = OpUGreaterThanEqual %bool %37 %uint_64 + OpSelectionMerge %51 None + OpBranchConditional %49 %52 %51 + %52 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Workgroup_float %arg_0 %37 - OpStore %43 %float_0 NonPrivatePointer + %51 = OpLabel + %53 = OpAccessChain %_ptr_Workgroup_float %arg_0 %37 + OpStore %53 %float_0 NonPrivatePointer OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %48 = OpFunctionCall %15 %subgroupMatrixLoad_37b559 - %49 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0 - %52 = OpAccessChain %_ptr_StorageBuffer_float %49 %uint_0 - OpCooperativeMatrixStoreKHR %52 %48 %uint_0 %uint_64 NonPrivatePointer + %42 = OpFunctionCall %15 %subgroupMatrixLoad_37b559 + %43 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0 + %46 = OpAccessChain %_ptr_StorageBuffer_float %43 %uint_0 + OpCooperativeMatrixStoreKHR %46 %42 %uint_0 %uint_64 NonPrivatePointer OpReturn OpFunctionEnd %compute_main = OpFunction %void None %56
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.spvasm index 98016b5..09304fc 100644 --- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.spvasm
@@ -50,12 +50,12 @@ %_ptr_Function_15 = OpTypePointer Function %15 %void = OpTypeVoid %31 = OpTypeFunction %void %uint - %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_24840 = OpConstant %uint 24840 %_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024 %uint_0 = OpConstant %uint 0 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %bool = OpTypeBool + %int_0 = OpConstant %int 0 %56 = OpTypeFunction %void %subgroupMatrixLoad_4c307c = OpFunction %15 None %19 %20 = OpLabel @@ -77,24 +77,24 @@ OpLoopMerge %37 %35 None OpBranch %34 %34 = OpLabel - %40 = OpUGreaterThanEqual %bool %38 %uint_64 - OpSelectionMerge %42 None - OpBranchConditional %40 %43 %42 - %43 = OpLabel + %49 = OpUGreaterThanEqual %bool %38 %uint_64 + OpSelectionMerge %51 None + OpBranchConditional %49 %52 %51 + %52 = OpLabel OpBranch %37 - %42 = OpLabel - %44 = OpAccessChain %_ptr_Workgroup_int %arg_0 %38 - OpStore %44 %int_0 NonPrivatePointer + %51 = OpLabel + %53 = OpAccessChain %_ptr_Workgroup_int %arg_0 %38 + OpStore %53 %int_0 NonPrivatePointer OpBranch %35 %35 = OpLabel %39 = OpIAdd %uint %38 %uint_1 OpBranch %36 %37 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %48 = OpFunctionCall %15 %subgroupMatrixLoad_4c307c - %49 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0 - %52 = OpAccessChain %_ptr_StorageBuffer_int %49 %uint_0 - OpCooperativeMatrixStoreKHR %52 %48 %uint_0 %uint_64 NonPrivatePointer + %42 = OpFunctionCall %15 %subgroupMatrixLoad_4c307c + %43 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0 + %46 = OpAccessChain %_ptr_StorageBuffer_int %43 %uint_0 + OpCooperativeMatrixStoreKHR %46 %42 %uint_0 %uint_64 NonPrivatePointer OpReturn OpFunctionEnd %compute_main = OpFunction %void None %56
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.spvasm index 9847183..ffae611 100644 --- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.spvasm
@@ -49,11 +49,11 @@ %_ptr_Function_14 = OpTypePointer Function %14 %void = OpTypeVoid %30 = OpTypeFunction %void %uint - %bool = OpTypeBool - %uint_0 = OpConstant %uint 0 %uint_24840 = OpConstant %uint 24840 %_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024 + %uint_0 = OpConstant %uint 0 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint + %bool = OpTypeBool %54 = OpTypeFunction %void %subgroupMatrixLoad_641635 = OpFunction %14 None %18 %19 = OpLabel @@ -75,24 +75,24 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_64 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %48 = OpUGreaterThanEqual %bool %37 %uint_64 + OpSelectionMerge %50 None + OpBranchConditional %48 %51 %50 + %51 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %37 - OpStore %43 %uint_0 NonPrivatePointer + %50 = OpLabel + %52 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %37 + OpStore %52 %uint_0 NonPrivatePointer OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %47 = OpFunctionCall %14 %subgroupMatrixLoad_641635 - %48 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0 - %50 = OpAccessChain %_ptr_StorageBuffer_uint %48 %uint_0 - OpCooperativeMatrixStoreKHR %50 %47 %uint_0 %uint_64 NonPrivatePointer + %41 = OpFunctionCall %14 %subgroupMatrixLoad_641635 + %42 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0 + %45 = OpAccessChain %_ptr_StorageBuffer_uint %42 %uint_0 + OpCooperativeMatrixStoreKHR %45 %41 %uint_0 %uint_64 NonPrivatePointer OpReturn OpFunctionEnd %compute_main = OpFunction %void None %54
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.spvasm index 7736ece..570fb97 100644 --- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.spvasm
@@ -50,12 +50,12 @@ %_ptr_Function_15 = OpTypePointer Function %15 %void = OpTypeVoid %31 = OpTypeFunction %void %uint - %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 %_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %bool = OpTypeBool + %int_0 = OpConstant %int 0 %56 = OpTypeFunction %void %subgroupMatrixLoad_67af87 = OpFunction %15 None %19 %20 = OpLabel @@ -77,24 +77,24 @@ OpLoopMerge %37 %35 None OpBranch %34 %34 = OpLabel - %40 = OpUGreaterThanEqual %bool %38 %uint_64 - OpSelectionMerge %42 None - OpBranchConditional %40 %43 %42 - %43 = OpLabel + %49 = OpUGreaterThanEqual %bool %38 %uint_64 + OpSelectionMerge %51 None + OpBranchConditional %49 %52 %51 + %52 = OpLabel OpBranch %37 - %42 = OpLabel - %44 = OpAccessChain %_ptr_Workgroup_int %arg_0 %38 - OpStore %44 %int_0 NonPrivatePointer + %51 = OpLabel + %53 = OpAccessChain %_ptr_Workgroup_int %arg_0 %38 + OpStore %53 %int_0 NonPrivatePointer OpBranch %35 %35 = OpLabel %39 = OpIAdd %uint %38 %uint_1 OpBranch %36 %37 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %49 = OpFunctionCall %15 %subgroupMatrixLoad_67af87 - %50 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0 - %52 = OpAccessChain %_ptr_StorageBuffer_int %50 %uint_0 - OpCooperativeMatrixStoreKHR %52 %49 %uint_0 %uint_64 NonPrivatePointer + %43 = OpFunctionCall %15 %subgroupMatrixLoad_67af87 + %44 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0 + %46 = OpAccessChain %_ptr_StorageBuffer_int %44 %uint_0 + OpCooperativeMatrixStoreKHR %46 %43 %uint_0 %uint_64 NonPrivatePointer OpReturn OpFunctionEnd %compute_main = OpFunction %void None %56
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.spvasm index 8c46cfa..81a89db 100644 --- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.spvasm
@@ -48,12 +48,12 @@ %_ptr_Function_14 = OpTypePointer Function %14 %void = OpTypeVoid %29 = OpTypeFunction %void %uint - %bool = OpTypeBool - %uint_0 = OpConstant %uint 0 %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 %_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024 + %uint_0 = OpConstant %uint 0 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint + %bool = OpTypeBool %54 = OpTypeFunction %void %subgroupMatrixLoad_93fa82 = OpFunction %14 None %18 %19 = OpLabel @@ -75,24 +75,24 @@ OpLoopMerge %35 %33 None OpBranch %32 %32 = OpLabel - %38 = OpUGreaterThanEqual %bool %36 %uint_64 - OpSelectionMerge %40 None - OpBranchConditional %38 %41 %40 - %41 = OpLabel + %48 = OpUGreaterThanEqual %bool %36 %uint_64 + OpSelectionMerge %50 None + OpBranchConditional %48 %51 %50 + %51 = OpLabel OpBranch %35 - %40 = OpLabel - %42 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %36 - OpStore %42 %uint_0 NonPrivatePointer + %50 = OpLabel + %52 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %36 + OpStore %52 %uint_0 NonPrivatePointer OpBranch %33 %33 = OpLabel %37 = OpIAdd %uint %36 %uint_1 OpBranch %34 %35 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %47 = OpFunctionCall %14 %subgroupMatrixLoad_93fa82 - %48 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0 - %50 = OpAccessChain %_ptr_StorageBuffer_uint %48 %uint_0 - OpCooperativeMatrixStoreKHR %50 %47 %uint_0 %uint_64 NonPrivatePointer + %41 = OpFunctionCall %14 %subgroupMatrixLoad_93fa82 + %42 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0 + %45 = OpAccessChain %_ptr_StorageBuffer_uint %42 %uint_0 + OpCooperativeMatrixStoreKHR %45 %41 %uint_0 %uint_64 NonPrivatePointer OpReturn OpFunctionEnd %compute_main = OpFunction %void None %54
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.spvasm index f47d5ec..3e05765 100644 --- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.spvasm
@@ -50,12 +50,12 @@ %_ptr_Function_15 = OpTypePointer Function %15 %void = OpTypeVoid %31 = OpTypeFunction %void %uint - %bool = OpTypeBool - %float_0 = OpConstant %float 0 %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 %_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024 %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float + %bool = OpTypeBool + %float_0 = OpConstant %float 0 %56 = OpTypeFunction %void %subgroupMatrixLoad_b16d34 = OpFunction %15 None %19 %20 = OpLabel @@ -77,24 +77,24 @@ OpLoopMerge %37 %35 None OpBranch %34 %34 = OpLabel - %40 = OpUGreaterThanEqual %bool %38 %uint_64 - OpSelectionMerge %42 None - OpBranchConditional %40 %43 %42 - %43 = OpLabel + %49 = OpUGreaterThanEqual %bool %38 %uint_64 + OpSelectionMerge %51 None + OpBranchConditional %49 %52 %51 + %52 = OpLabel OpBranch %37 - %42 = OpLabel - %44 = OpAccessChain %_ptr_Workgroup_float %arg_0 %38 - OpStore %44 %float_0 NonPrivatePointer + %51 = OpLabel + %53 = OpAccessChain %_ptr_Workgroup_float %arg_0 %38 + OpStore %53 %float_0 NonPrivatePointer OpBranch %35 %35 = OpLabel %39 = OpIAdd %uint %38 %uint_1 OpBranch %36 %37 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %49 = OpFunctionCall %15 %subgroupMatrixLoad_b16d34 - %50 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0 - %52 = OpAccessChain %_ptr_StorageBuffer_float %50 %uint_0 - OpCooperativeMatrixStoreKHR %52 %49 %uint_0 %uint_64 NonPrivatePointer + %43 = OpFunctionCall %15 %subgroupMatrixLoad_b16d34 + %44 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0 + %46 = OpAccessChain %_ptr_StorageBuffer_float %44 %uint_0 + OpCooperativeMatrixStoreKHR %46 %43 %uint_0 %uint_64 NonPrivatePointer OpReturn OpFunctionEnd %compute_main = OpFunction %void None %56
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.spvasm index ba44e65..c17955f 100644 --- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.spvasm
@@ -50,12 +50,12 @@ %_ptr_Function_15 = OpTypePointer Function %15 %void = OpTypeVoid %31 = OpTypeFunction %void %uint - %bool = OpTypeBool - %float_0 = OpConstant %float 0 %uint_24840 = OpConstant %uint 24840 %_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024 %uint_0 = OpConstant %uint 0 %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float + %bool = OpTypeBool + %float_0 = OpConstant %float 0 %56 = OpTypeFunction %void %subgroupMatrixLoad_c857d1 = OpFunction %15 None %19 %20 = OpLabel @@ -77,24 +77,24 @@ OpLoopMerge %37 %35 None OpBranch %34 %34 = OpLabel - %40 = OpUGreaterThanEqual %bool %38 %uint_64 - OpSelectionMerge %42 None - OpBranchConditional %40 %43 %42 - %43 = OpLabel + %49 = OpUGreaterThanEqual %bool %38 %uint_64 + OpSelectionMerge %51 None + OpBranchConditional %49 %52 %51 + %52 = OpLabel OpBranch %37 - %42 = OpLabel - %44 = OpAccessChain %_ptr_Workgroup_float %arg_0 %38 - OpStore %44 %float_0 NonPrivatePointer + %51 = OpLabel + %53 = OpAccessChain %_ptr_Workgroup_float %arg_0 %38 + OpStore %53 %float_0 NonPrivatePointer OpBranch %35 %35 = OpLabel %39 = OpIAdd %uint %38 %uint_1 OpBranch %36 %37 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %48 = OpFunctionCall %15 %subgroupMatrixLoad_c857d1 - %49 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0 - %52 = OpAccessChain %_ptr_StorageBuffer_float %49 %uint_0 - OpCooperativeMatrixStoreKHR %52 %48 %uint_0 %uint_64 NonPrivatePointer + %42 = OpFunctionCall %15 %subgroupMatrixLoad_c857d1 + %43 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0 + %46 = OpAccessChain %_ptr_StorageBuffer_float %43 %uint_0 + OpCooperativeMatrixStoreKHR %46 %42 %uint_0 %uint_64 NonPrivatePointer OpReturn OpFunctionEnd %compute_main = OpFunction %void None %56
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.spvasm index b847bdd..c435d1e 100644 --- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.spvasm
@@ -49,13 +49,13 @@ %_ptr_Function_15 = OpTypePointer Function %15 %void = OpTypeVoid %30 = OpTypeFunction %void %uint - %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 %_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024 %uint_0 = OpConstant %uint 0 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %bool = OpTypeBool + %int_0 = OpConstant %int 0 %56 = OpTypeFunction %void %subgroupMatrixLoad_ea84a8 = OpFunction %15 None %19 %20 = OpLabel @@ -77,24 +77,24 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_64 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %49 = OpUGreaterThanEqual %bool %37 %uint_64 + OpSelectionMerge %51 None + OpBranchConditional %49 %52 %51 + %52 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Workgroup_int %arg_0 %37 - OpStore %43 %int_0 NonPrivatePointer + %51 = OpLabel + %53 = OpAccessChain %_ptr_Workgroup_int %arg_0 %37 + OpStore %53 %int_0 NonPrivatePointer OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %48 = OpFunctionCall %15 %subgroupMatrixLoad_ea84a8 - %49 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0 - %52 = OpAccessChain %_ptr_StorageBuffer_int %49 %uint_0 - OpCooperativeMatrixStoreKHR %52 %48 %uint_0 %uint_64 NonPrivatePointer + %42 = OpFunctionCall %15 %subgroupMatrixLoad_ea84a8 + %43 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0 + %46 = OpAccessChain %_ptr_StorageBuffer_int %43 %uint_0 + OpCooperativeMatrixStoreKHR %46 %42 %uint_0 %uint_64 NonPrivatePointer OpReturn OpFunctionEnd %compute_main = OpFunction %void None %56
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.spvasm index e14edf0..a0d4826 100644 --- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.spvasm
@@ -49,11 +49,11 @@ %_ptr_Function_14 = OpTypePointer Function %14 %void = OpTypeVoid %30 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 %_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint + %bool = OpTypeBool %54 = OpTypeFunction %void %subgroupMatrixLoad_f695fe = OpFunction %14 None %18 %19 = OpLabel @@ -75,24 +75,24 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_64 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %48 = OpUGreaterThanEqual %bool %37 %uint_64 + OpSelectionMerge %50 None + OpBranchConditional %48 %51 %50 + %51 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %37 - OpStore %43 %uint_0 NonPrivatePointer + %50 = OpLabel + %52 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %37 + OpStore %52 %uint_0 NonPrivatePointer OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %47 = OpFunctionCall %14 %subgroupMatrixLoad_f695fe - %48 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0 - %50 = OpAccessChain %_ptr_StorageBuffer_uint %48 %uint_0 - OpCooperativeMatrixStoreKHR %50 %47 %uint_0 %uint_64 NonPrivatePointer + %42 = OpFunctionCall %14 %subgroupMatrixLoad_f695fe + %43 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0 + %45 = OpAccessChain %_ptr_StorageBuffer_uint %43 %uint_0 + OpCooperativeMatrixStoreKHR %45 %42 %uint_0 %uint_64 NonPrivatePointer OpReturn OpFunctionEnd %compute_main = OpFunction %void None %54
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.spvasm index 688ea99..b232265 100644 --- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.spvasm
@@ -53,12 +53,12 @@ %_ptr_Function_15 = OpTypePointer Function %15 %void = OpTypeVoid %31 = OpTypeFunction %void %uint - %bool = OpTypeBool -%half_0x0p_0 = OpConstant %half 0x0p+0 %uint_24840 = OpConstant %uint 24840 %_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024 %uint_0 = OpConstant %uint 0 %_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half + %bool = OpTypeBool +%half_0x0p_0 = OpConstant %half 0x0p+0 %56 = OpTypeFunction %void %subgroupMatrixLoad_fd7bd9 = OpFunction %15 None %19 %20 = OpLabel @@ -80,24 +80,24 @@ OpLoopMerge %37 %35 None OpBranch %34 %34 = OpLabel - %40 = OpUGreaterThanEqual %bool %38 %uint_64 - OpSelectionMerge %42 None - OpBranchConditional %40 %43 %42 - %43 = OpLabel + %49 = OpUGreaterThanEqual %bool %38 %uint_64 + OpSelectionMerge %51 None + OpBranchConditional %49 %52 %51 + %52 = OpLabel OpBranch %37 - %42 = OpLabel - %44 = OpAccessChain %_ptr_Workgroup_half %arg_0 %38 - OpStore %44 %half_0x0p_0 NonPrivatePointer + %51 = OpLabel + %53 = OpAccessChain %_ptr_Workgroup_half %arg_0 %38 + OpStore %53 %half_0x0p_0 NonPrivatePointer OpBranch %35 %35 = OpLabel %39 = OpIAdd %uint %38 %uint_1 OpBranch %36 %37 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %48 = OpFunctionCall %15 %subgroupMatrixLoad_fd7bd9 - %49 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0 - %52 = OpAccessChain %_ptr_StorageBuffer_half %49 %uint_0 - OpCooperativeMatrixStoreKHR %52 %48 %uint_0 %uint_64 NonPrivatePointer + %42 = OpFunctionCall %15 %subgroupMatrixLoad_fd7bd9 + %43 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0 + %46 = OpAccessChain %_ptr_StorageBuffer_half %43 %uint_0 + OpCooperativeMatrixStoreKHR %46 %42 %uint_0 %uint_64 NonPrivatePointer OpReturn OpFunctionEnd %compute_main = OpFunction %void None %56
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.spvasm index be6b1cc..99604dc 100644 --- a/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.spvasm
@@ -41,8 +41,8 @@ %_ptr_Workgroup_half = OpTypePointer Workgroup %half %uint_1 = OpConstant %uint 1 %25 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_24840 = OpConstant %uint 24840 + %bool = OpTypeBool %subgroupMatrixStore_127fb7 = OpFunction %void None %11 %12 = OpLabel %19 = OpAccessChain %_ptr_Workgroup_half %arg_0 %uint_1 @@ -60,21 +60,21 @@ OpLoopMerge %31 %29 None OpBranch %28 %28 = OpLabel - %34 = OpUGreaterThanEqual %bool %32 %uint_64 - OpSelectionMerge %36 None - OpBranchConditional %34 %37 %36 - %37 = OpLabel + %37 = OpUGreaterThanEqual %bool %32 %uint_64 + OpSelectionMerge %39 None + OpBranchConditional %37 %40 %39 + %40 = OpLabel OpBranch %31 - %36 = OpLabel - %38 = OpAccessChain %_ptr_Workgroup_half %arg_0 %32 - OpStore %38 %half_0x0p_0 NonPrivatePointer + %39 = OpLabel + %41 = OpAccessChain %_ptr_Workgroup_half %arg_0 %32 + OpStore %41 %half_0x0p_0 NonPrivatePointer OpBranch %29 %29 = OpLabel %33 = OpIAdd %uint %32 %uint_1 OpBranch %30 %31 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %41 = OpFunctionCall %void %subgroupMatrixStore_127fb7 + %36 = OpFunctionCall %void %subgroupMatrixStore_127fb7 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %11
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.spvasm index f14d03a..0ffc0b2 100644 --- a/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.spvasm
@@ -36,9 +36,9 @@ %12 = OpConstantComposite %13 %uint_0 %_ptr_Workgroup_uint = OpTypePointer Workgroup %uint %23 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 + %bool = OpTypeBool %subgroupMatrixStore_2de0b1 = OpFunction %void None %10 %11 = OpLabel %18 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %uint_1 @@ -56,21 +56,21 @@ OpLoopMerge %29 %27 None OpBranch %26 %26 = OpLabel - %32 = OpUGreaterThanEqual %bool %30 %uint_64 - OpSelectionMerge %34 None - OpBranchConditional %32 %35 %34 - %35 = OpLabel + %36 = OpUGreaterThanEqual %bool %30 %uint_64 + OpSelectionMerge %38 None + OpBranchConditional %36 %39 %38 + %39 = OpLabel OpBranch %29 - %34 = OpLabel - %36 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %30 - OpStore %36 %uint_0 NonPrivatePointer + %38 = OpLabel + %40 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %30 + OpStore %40 %uint_0 NonPrivatePointer OpBranch %27 %27 = OpLabel %31 = OpIAdd %uint %30 %uint_1 OpBranch %28 %29 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %40 = OpFunctionCall %void %subgroupMatrixStore_2de0b1 + %35 = OpFunctionCall %void %subgroupMatrixStore_2de0b1 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %10
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl.expected.spvasm index ffe1852..f4cf5b2 100644 --- a/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl.expected.spvasm
@@ -37,9 +37,9 @@ %13 = OpConstantComposite %14 %float_0 %_ptr_Workgroup_float = OpTypePointer Workgroup %float %24 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 + %bool = OpTypeBool %subgroupMatrixStore_49b25b = OpFunction %void None %11 %12 = OpLabel %19 = OpAccessChain %_ptr_Workgroup_float %arg_0 %uint_1 @@ -57,21 +57,21 @@ OpLoopMerge %30 %28 None OpBranch %27 %27 = OpLabel - %33 = OpUGreaterThanEqual %bool %31 %uint_64 - OpSelectionMerge %35 None - OpBranchConditional %33 %36 %35 - %36 = OpLabel + %37 = OpUGreaterThanEqual %bool %31 %uint_64 + OpSelectionMerge %39 None + OpBranchConditional %37 %40 %39 + %40 = OpLabel OpBranch %30 - %35 = OpLabel - %37 = OpAccessChain %_ptr_Workgroup_float %arg_0 %31 - OpStore %37 %float_0 NonPrivatePointer + %39 = OpLabel + %41 = OpAccessChain %_ptr_Workgroup_float %arg_0 %31 + OpStore %41 %float_0 NonPrivatePointer OpBranch %28 %28 = OpLabel %32 = OpIAdd %uint %31 %uint_1 OpBranch %29 %30 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %41 = OpFunctionCall %void %subgroupMatrixStore_49b25b + %36 = OpFunctionCall %void %subgroupMatrixStore_49b25b OpReturn OpFunctionEnd %compute_main = OpFunction %void None %11
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.spvasm index a0123dd..ce9cc4e 100644 --- a/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.spvasm
@@ -37,9 +37,9 @@ %13 = OpConstantComposite %14 %int_0 %_ptr_Workgroup_int = OpTypePointer Workgroup %int %24 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 + %bool = OpTypeBool %subgroupMatrixStore_5671e2 = OpFunction %void None %11 %12 = OpLabel %19 = OpAccessChain %_ptr_Workgroup_int %arg_0 %uint_1 @@ -57,21 +57,21 @@ OpLoopMerge %30 %28 None OpBranch %27 %27 = OpLabel - %33 = OpUGreaterThanEqual %bool %31 %uint_64 - OpSelectionMerge %35 None - OpBranchConditional %33 %36 %35 - %36 = OpLabel + %37 = OpUGreaterThanEqual %bool %31 %uint_64 + OpSelectionMerge %39 None + OpBranchConditional %37 %40 %39 + %40 = OpLabel OpBranch %30 - %35 = OpLabel - %37 = OpAccessChain %_ptr_Workgroup_int %arg_0 %31 - OpStore %37 %int_0 NonPrivatePointer + %39 = OpLabel + %41 = OpAccessChain %_ptr_Workgroup_int %arg_0 %31 + OpStore %41 %int_0 NonPrivatePointer OpBranch %28 %28 = OpLabel %32 = OpIAdd %uint %31 %uint_1 OpBranch %29 %30 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %41 = OpFunctionCall %void %subgroupMatrixStore_5671e2 + %36 = OpFunctionCall %void %subgroupMatrixStore_5671e2 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %11
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.spvasm index db954cf..b9c6ebc 100644 --- a/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.spvasm
@@ -36,9 +36,9 @@ %_ptr_Workgroup_uint = OpTypePointer Workgroup %uint %uint_1 = OpConstant %uint 1 %23 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 + %bool = OpTypeBool %subgroupMatrixStore_5915fe = OpFunction %void None %10 %11 = OpLabel %17 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %uint_1 @@ -56,21 +56,21 @@ OpLoopMerge %29 %27 None OpBranch %26 %26 = OpLabel - %32 = OpUGreaterThanEqual %bool %30 %uint_64 - OpSelectionMerge %34 None - OpBranchConditional %32 %35 %34 - %35 = OpLabel + %36 = OpUGreaterThanEqual %bool %30 %uint_64 + OpSelectionMerge %38 None + OpBranchConditional %36 %39 %38 + %39 = OpLabel OpBranch %29 - %34 = OpLabel - %36 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %30 - OpStore %36 %uint_0 NonPrivatePointer + %38 = OpLabel + %40 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %30 + OpStore %40 %uint_0 NonPrivatePointer OpBranch %27 %27 = OpLabel %31 = OpIAdd %uint %30 %uint_1 OpBranch %28 %29 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %40 = OpFunctionCall %void %subgroupMatrixStore_5915fe + %35 = OpFunctionCall %void %subgroupMatrixStore_5915fe OpReturn OpFunctionEnd %compute_main = OpFunction %void None %10
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.spvasm index 42aa260..b9a5e31 100644 --- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.spvasm
@@ -37,8 +37,8 @@ %_ptr_Workgroup_uint = OpTypePointer Workgroup %uint %uint_1 = OpConstant %uint 1 %24 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_24840 = OpConstant %uint 24840 + %bool = OpTypeBool %subgroupMatrixStore_9a7d60 = OpFunction %void None %10 %11 = OpLabel %18 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %uint_1 @@ -56,21 +56,21 @@ OpLoopMerge %30 %28 None OpBranch %27 %27 = OpLabel - %33 = OpUGreaterThanEqual %bool %31 %uint_64 - OpSelectionMerge %35 None - OpBranchConditional %33 %36 %35 - %36 = OpLabel + %36 = OpUGreaterThanEqual %bool %31 %uint_64 + OpSelectionMerge %38 None + OpBranchConditional %36 %39 %38 + %39 = OpLabel OpBranch %30 - %35 = OpLabel - %37 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %31 - OpStore %37 %uint_0 NonPrivatePointer + %38 = OpLabel + %40 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %31 + OpStore %40 %uint_0 NonPrivatePointer OpBranch %28 %28 = OpLabel %32 = OpIAdd %uint %31 %uint_1 OpBranch %29 %30 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %40 = OpFunctionCall %void %subgroupMatrixStore_9a7d60 + %35 = OpFunctionCall %void %subgroupMatrixStore_9a7d60 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %10
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.spvasm index e4e3978..06bc4fb 100644 --- a/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.spvasm
@@ -38,8 +38,8 @@ %_ptr_Workgroup_float = OpTypePointer Workgroup %float %uint_1 = OpConstant %uint 1 %25 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_24840 = OpConstant %uint 24840 + %bool = OpTypeBool %subgroupMatrixStore_b9ff25 = OpFunction %void None %11 %12 = OpLabel %19 = OpAccessChain %_ptr_Workgroup_float %arg_0 %uint_1 @@ -57,21 +57,21 @@ OpLoopMerge %31 %29 None OpBranch %28 %28 = OpLabel - %34 = OpUGreaterThanEqual %bool %32 %uint_64 - OpSelectionMerge %36 None - OpBranchConditional %34 %37 %36 - %37 = OpLabel + %37 = OpUGreaterThanEqual %bool %32 %uint_64 + OpSelectionMerge %39 None + OpBranchConditional %37 %40 %39 + %40 = OpLabel OpBranch %31 - %36 = OpLabel - %38 = OpAccessChain %_ptr_Workgroup_float %arg_0 %32 - OpStore %38 %float_0 NonPrivatePointer + %39 = OpLabel + %41 = OpAccessChain %_ptr_Workgroup_float %arg_0 %32 + OpStore %41 %float_0 NonPrivatePointer OpBranch %29 %29 = OpLabel %33 = OpIAdd %uint %32 %uint_1 OpBranch %30 %31 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %41 = OpFunctionCall %void %subgroupMatrixStore_b9ff25 + %36 = OpFunctionCall %void %subgroupMatrixStore_b9ff25 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %11
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.spvasm index 8f1c0b0..d3110819 100644 --- a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.spvasm
@@ -38,9 +38,9 @@ %_ptr_Workgroup_int = OpTypePointer Workgroup %int %uint_1 = OpConstant %uint 1 %25 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 + %bool = OpTypeBool %subgroupMatrixStore_bfd0a4 = OpFunction %void None %11 %12 = OpLabel %19 = OpAccessChain %_ptr_Workgroup_int %arg_0 %uint_1 @@ -58,21 +58,21 @@ OpLoopMerge %31 %29 None OpBranch %28 %28 = OpLabel - %34 = OpUGreaterThanEqual %bool %32 %uint_64 - OpSelectionMerge %36 None - OpBranchConditional %34 %37 %36 - %37 = OpLabel + %38 = OpUGreaterThanEqual %bool %32 %uint_64 + OpSelectionMerge %40 None + OpBranchConditional %38 %41 %40 + %41 = OpLabel OpBranch %31 - %36 = OpLabel - %38 = OpAccessChain %_ptr_Workgroup_int %arg_0 %32 - OpStore %38 %int_0 NonPrivatePointer + %40 = OpLabel + %42 = OpAccessChain %_ptr_Workgroup_int %arg_0 %32 + OpStore %42 %int_0 NonPrivatePointer OpBranch %29 %29 = OpLabel %33 = OpIAdd %uint %32 %uint_1 OpBranch %30 %31 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %42 = OpFunctionCall %void %subgroupMatrixStore_bfd0a4 + %37 = OpFunctionCall %void %subgroupMatrixStore_bfd0a4 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %11
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.spvasm index 7b4f315..ab9a9d0 100644 --- a/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.spvasm
@@ -40,9 +40,9 @@ %13 = OpConstantComposite %14 %half_0x0p_0 %_ptr_Workgroup_half = OpTypePointer Workgroup %half %24 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 + %bool = OpTypeBool %subgroupMatrixStore_d07581 = OpFunction %void None %11 %12 = OpLabel %19 = OpAccessChain %_ptr_Workgroup_half %arg_0 %uint_1 @@ -60,21 +60,21 @@ OpLoopMerge %30 %28 None OpBranch %27 %27 = OpLabel - %33 = OpUGreaterThanEqual %bool %31 %uint_64 - OpSelectionMerge %35 None - OpBranchConditional %33 %36 %35 - %36 = OpLabel + %37 = OpUGreaterThanEqual %bool %31 %uint_64 + OpSelectionMerge %39 None + OpBranchConditional %37 %40 %39 + %40 = OpLabel OpBranch %30 - %35 = OpLabel - %37 = OpAccessChain %_ptr_Workgroup_half %arg_0 %31 - OpStore %37 %half_0x0p_0 NonPrivatePointer + %39 = OpLabel + %41 = OpAccessChain %_ptr_Workgroup_half %arg_0 %31 + OpStore %41 %half_0x0p_0 NonPrivatePointer OpBranch %28 %28 = OpLabel %32 = OpIAdd %uint %31 %uint_1 OpBranch %29 %30 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %41 = OpFunctionCall %void %subgroupMatrixStore_d07581 + %36 = OpFunctionCall %void %subgroupMatrixStore_d07581 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %11
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.spvasm index 6098dc1..9e28b92 100644 --- a/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.spvasm
@@ -38,9 +38,9 @@ %_ptr_Workgroup_float = OpTypePointer Workgroup %float %uint_1 = OpConstant %uint 1 %25 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 + %bool = OpTypeBool %subgroupMatrixStore_dc92cf = OpFunction %void None %11 %12 = OpLabel %19 = OpAccessChain %_ptr_Workgroup_float %arg_0 %uint_1 @@ -58,21 +58,21 @@ OpLoopMerge %31 %29 None OpBranch %28 %28 = OpLabel - %34 = OpUGreaterThanEqual %bool %32 %uint_64 - OpSelectionMerge %36 None - OpBranchConditional %34 %37 %36 - %37 = OpLabel + %38 = OpUGreaterThanEqual %bool %32 %uint_64 + OpSelectionMerge %40 None + OpBranchConditional %38 %41 %40 + %41 = OpLabel OpBranch %31 - %36 = OpLabel - %38 = OpAccessChain %_ptr_Workgroup_float %arg_0 %32 - OpStore %38 %float_0 NonPrivatePointer + %40 = OpLabel + %42 = OpAccessChain %_ptr_Workgroup_float %arg_0 %32 + OpStore %42 %float_0 NonPrivatePointer OpBranch %29 %29 = OpLabel %33 = OpIAdd %uint %32 %uint_1 OpBranch %30 %31 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %42 = OpFunctionCall %void %subgroupMatrixStore_dc92cf + %37 = OpFunctionCall %void %subgroupMatrixStore_dc92cf OpReturn OpFunctionEnd %compute_main = OpFunction %void None %11
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.spvasm index 54aa05f..8851203 100644 --- a/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.spvasm
@@ -41,9 +41,9 @@ %_ptr_Workgroup_half = OpTypePointer Workgroup %half %uint_1 = OpConstant %uint 1 %25 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 + %bool = OpTypeBool %subgroupMatrixStore_ee1195 = OpFunction %void None %11 %12 = OpLabel %19 = OpAccessChain %_ptr_Workgroup_half %arg_0 %uint_1 @@ -61,21 +61,21 @@ OpLoopMerge %31 %29 None OpBranch %28 %28 = OpLabel - %34 = OpUGreaterThanEqual %bool %32 %uint_64 - OpSelectionMerge %36 None - OpBranchConditional %34 %37 %36 - %37 = OpLabel + %38 = OpUGreaterThanEqual %bool %32 %uint_64 + OpSelectionMerge %40 None + OpBranchConditional %38 %41 %40 + %41 = OpLabel OpBranch %31 - %36 = OpLabel - %38 = OpAccessChain %_ptr_Workgroup_half %arg_0 %32 - OpStore %38 %half_0x0p_0 NonPrivatePointer + %40 = OpLabel + %42 = OpAccessChain %_ptr_Workgroup_half %arg_0 %32 + OpStore %42 %half_0x0p_0 NonPrivatePointer OpBranch %29 %29 = OpLabel %33 = OpIAdd %uint %32 %uint_1 OpBranch %30 %31 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %42 = OpFunctionCall %void %subgroupMatrixStore_ee1195 + %37 = OpFunctionCall %void %subgroupMatrixStore_ee1195 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %11
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.spvasm index d9aa4b9..32a014d 100644 --- a/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.spvasm
@@ -38,8 +38,8 @@ %_ptr_Workgroup_int = OpTypePointer Workgroup %int %uint_1 = OpConstant %uint 1 %25 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_24840 = OpConstant %uint 24840 + %bool = OpTypeBool %subgroupMatrixStore_f04d67 = OpFunction %void None %11 %12 = OpLabel %19 = OpAccessChain %_ptr_Workgroup_int %arg_0 %uint_1 @@ -57,21 +57,21 @@ OpLoopMerge %31 %29 None OpBranch %28 %28 = OpLabel - %34 = OpUGreaterThanEqual %bool %32 %uint_64 - OpSelectionMerge %36 None - OpBranchConditional %34 %37 %36 - %37 = OpLabel + %37 = OpUGreaterThanEqual %bool %32 %uint_64 + OpSelectionMerge %39 None + OpBranchConditional %37 %40 %39 + %40 = OpLabel OpBranch %31 - %36 = OpLabel - %38 = OpAccessChain %_ptr_Workgroup_int %arg_0 %32 - OpStore %38 %int_0 NonPrivatePointer + %39 = OpLabel + %41 = OpAccessChain %_ptr_Workgroup_int %arg_0 %32 + OpStore %41 %int_0 NonPrivatePointer OpBranch %29 %29 = OpLabel %33 = OpIAdd %uint %32 %uint_1 OpBranch %30 %31 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %41 = OpFunctionCall %void %subgroupMatrixStore_f04d67 + %36 = OpFunctionCall %void %subgroupMatrixStore_f04d67 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %11
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.spvasm index 407dd06..f9cd212 100644 --- a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.spvasm
@@ -202,40 +202,40 @@ OpSelectionMerge %74 None OpBranchConditional %72 %75 %76 %75 = OpLabel - %77 = OpImageFetch %v4float %plane_0 %70 Lod %uint_0 - %78 = OpVectorShuffle %v3float %77 %77 0 1 2 - %79 = OpCompositeExtract %float %77 3 + %89 = OpImageFetch %v4float %plane_0 %70 Lod %uint_0 + %78 = OpVectorShuffle %v3float %89 %89 0 1 2 + %81 = OpCompositeExtract %float %89 3 OpBranch %74 %76 = OpLabel - %80 = OpImageFetch %v4float %plane_0 %70 Lod %uint_0 - %81 = OpCompositeExtract %float %80 0 - %82 = OpFMul %v2float %69 %63 - %83 = OpConvertFToU %v2uint %82 - %84 = OpImageFetch %v4float %plane_1 %83 Lod %uint_0 - %85 = OpVectorShuffle %v2float %84 %84 0 1 - %86 = OpCompositeConstruct %v4float %81 %85 %float_1 - %87 = OpVectorTimesMatrix %v3float %86 %60 + %90 = OpImageFetch %v4float %plane_0 %70 Lod %uint_0 + %91 = OpCompositeExtract %float %90 0 + %92 = OpFMul %v2float %69 %63 + %93 = OpConvertFToU %v2uint %92 + %94 = OpImageFetch %v4float %plane_1 %93 Lod %uint_0 + %95 = OpVectorShuffle %v2float %94 %94 0 1 + %96 = OpCompositeConstruct %v4float %91 %95 %float_1 + %79 = OpVectorTimesMatrix %v3float %96 %60 OpBranch %74 %74 = OpLabel - %88 = OpPhi %v3float %78 %75 %87 %76 - %89 = OpPhi %float %79 %75 %float_1 %76 - %90 = OpIEqual %bool %59 %uint_0 - OpSelectionMerge %91 None - OpBranchConditional %90 %92 %93 - %92 = OpLabel - %94 = OpCompositeExtract %tint_GammaTransferParams %params 3 - %95 = OpCompositeExtract %tint_GammaTransferParams %params 4 - %96 = OpCompositeExtract %mat3v3float %params 5 - %97 = OpFunctionCall %v3float %tint_GammaCorrection %88 %94 - %99 = OpMatrixTimesVector %v3float %96 %97 - %100 = OpFunctionCall %v3float %tint_GammaCorrection %99 %95 - OpBranch %91 - %93 = OpLabel - OpBranch %91 - %91 = OpLabel - %101 = OpPhi %v3float %100 %92 %88 %93 - %102 = OpCompositeConstruct %v4float %101 %89 - OpReturnValue %102 + %77 = OpPhi %v3float %78 %75 %79 %76 + %80 = OpPhi %float %81 %75 %float_1 %76 + %82 = OpIEqual %bool %59 %uint_0 + OpSelectionMerge %83 None + OpBranchConditional %82 %84 %85 + %84 = OpLabel + %97 = OpCompositeExtract %tint_GammaTransferParams %params 3 + %98 = OpCompositeExtract %tint_GammaTransferParams %params 4 + %99 = OpCompositeExtract %mat3v3float %params 5 + %100 = OpFunctionCall %v3float %tint_GammaCorrection %77 %97 + %102 = OpMatrixTimesVector %v3float %99 %100 + %87 = OpFunctionCall %v3float %tint_GammaCorrection %102 %98 + OpBranch %83 + %85 = OpLabel + OpBranch %83 + %83 = OpLabel + %86 = OpPhi %v3float %87 %84 %77 %85 + %88 = OpCompositeConstruct %v4float %86 %80 + OpReturnValue %88 OpFunctionEnd %tint_GammaCorrection = OpFunction %v3float None %105 %v = OpFunctionParameter %v3float @@ -500,40 +500,40 @@ OpSelectionMerge %74 None OpBranchConditional %72 %75 %76 %75 = OpLabel - %77 = OpImageFetch %v4float %plane_0 %70 Lod %uint_0 - %78 = OpVectorShuffle %v3float %77 %77 0 1 2 - %79 = OpCompositeExtract %float %77 3 + %89 = OpImageFetch %v4float %plane_0 %70 Lod %uint_0 + %78 = OpVectorShuffle %v3float %89 %89 0 1 2 + %81 = OpCompositeExtract %float %89 3 OpBranch %74 %76 = OpLabel - %80 = OpImageFetch %v4float %plane_0 %70 Lod %uint_0 - %81 = OpCompositeExtract %float %80 0 - %82 = OpFMul %v2float %69 %63 - %83 = OpConvertFToU %v2uint %82 - %84 = OpImageFetch %v4float %plane_1 %83 Lod %uint_0 - %85 = OpVectorShuffle %v2float %84 %84 0 1 - %86 = OpCompositeConstruct %v4float %81 %85 %float_1 - %87 = OpVectorTimesMatrix %v3float %86 %60 + %90 = OpImageFetch %v4float %plane_0 %70 Lod %uint_0 + %91 = OpCompositeExtract %float %90 0 + %92 = OpFMul %v2float %69 %63 + %93 = OpConvertFToU %v2uint %92 + %94 = OpImageFetch %v4float %plane_1 %93 Lod %uint_0 + %95 = OpVectorShuffle %v2float %94 %94 0 1 + %96 = OpCompositeConstruct %v4float %91 %95 %float_1 + %79 = OpVectorTimesMatrix %v3float %96 %60 OpBranch %74 %74 = OpLabel - %88 = OpPhi %v3float %78 %75 %87 %76 - %89 = OpPhi %float %79 %75 %float_1 %76 - %90 = OpIEqual %bool %59 %uint_0 - OpSelectionMerge %91 None - OpBranchConditional %90 %92 %93 - %92 = OpLabel - %94 = OpCompositeExtract %tint_GammaTransferParams %params 3 - %95 = OpCompositeExtract %tint_GammaTransferParams %params 4 - %96 = OpCompositeExtract %mat3v3float %params 5 - %97 = OpFunctionCall %v3float %tint_GammaCorrection %88 %94 - %99 = OpMatrixTimesVector %v3float %96 %97 - %100 = OpFunctionCall %v3float %tint_GammaCorrection %99 %95 - OpBranch %91 - %93 = OpLabel - OpBranch %91 - %91 = OpLabel - %101 = OpPhi %v3float %100 %92 %88 %93 - %102 = OpCompositeConstruct %v4float %101 %89 - OpReturnValue %102 + %77 = OpPhi %v3float %78 %75 %79 %76 + %80 = OpPhi %float %81 %75 %float_1 %76 + %82 = OpIEqual %bool %59 %uint_0 + OpSelectionMerge %83 None + OpBranchConditional %82 %84 %85 + %84 = OpLabel + %97 = OpCompositeExtract %tint_GammaTransferParams %params 3 + %98 = OpCompositeExtract %tint_GammaTransferParams %params 4 + %99 = OpCompositeExtract %mat3v3float %params 5 + %100 = OpFunctionCall %v3float %tint_GammaCorrection %77 %97 + %102 = OpMatrixTimesVector %v3float %99 %100 + %87 = OpFunctionCall %v3float %tint_GammaCorrection %102 %98 + OpBranch %83 + %85 = OpLabel + OpBranch %83 + %83 = OpLabel + %86 = OpPhi %v3float %87 %84 %77 %85 + %88 = OpCompositeConstruct %v4float %86 %80 + OpReturnValue %88 OpFunctionEnd %tint_GammaCorrection = OpFunction %v3float None %105 %v = OpFunctionParameter %v3float @@ -812,40 +812,40 @@ OpSelectionMerge %81 None OpBranchConditional %79 %82 %83 %82 = OpLabel - %84 = OpImageFetch %v4float %plane_0 %77 Lod %uint_0 - %85 = OpVectorShuffle %v3float %84 %84 0 1 2 - %86 = OpCompositeExtract %float %84 3 + %96 = OpImageFetch %v4float %plane_0 %77 Lod %uint_0 + %85 = OpVectorShuffle %v3float %96 %96 0 1 2 + %88 = OpCompositeExtract %float %96 3 OpBranch %81 %83 = OpLabel - %87 = OpImageFetch %v4float %plane_0 %77 Lod %uint_0 - %88 = OpCompositeExtract %float %87 0 - %89 = OpFMul %v2float %76 %70 - %90 = OpConvertFToU %v2uint %89 - %91 = OpImageFetch %v4float %plane_1 %90 Lod %uint_0 - %92 = OpVectorShuffle %v2float %91 %91 0 1 - %93 = OpCompositeConstruct %v4float %88 %92 %float_1 - %94 = OpVectorTimesMatrix %v3float %93 %67 + %97 = OpImageFetch %v4float %plane_0 %77 Lod %uint_0 + %98 = OpCompositeExtract %float %97 0 + %99 = OpFMul %v2float %76 %70 + %100 = OpConvertFToU %v2uint %99 + %101 = OpImageFetch %v4float %plane_1 %100 Lod %uint_0 + %102 = OpVectorShuffle %v2float %101 %101 0 1 + %103 = OpCompositeConstruct %v4float %98 %102 %float_1 + %86 = OpVectorTimesMatrix %v3float %103 %67 OpBranch %81 %81 = OpLabel - %95 = OpPhi %v3float %85 %82 %94 %83 - %96 = OpPhi %float %86 %82 %float_1 %83 - %97 = OpIEqual %bool %66 %uint_0 - OpSelectionMerge %98 None - OpBranchConditional %97 %99 %100 - %99 = OpLabel - %101 = OpCompositeExtract %tint_GammaTransferParams %params 3 - %102 = OpCompositeExtract %tint_GammaTransferParams %params 4 - %103 = OpCompositeExtract %mat3v3float %params 5 - %104 = OpFunctionCall %v3float %tint_GammaCorrection %95 %101 - %106 = OpMatrixTimesVector %v3float %103 %104 - %107 = OpFunctionCall %v3float %tint_GammaCorrection %106 %102 - OpBranch %98 - %100 = OpLabel - OpBranch %98 - %98 = OpLabel - %108 = OpPhi %v3float %107 %99 %95 %100 - %109 = OpCompositeConstruct %v4float %108 %96 - OpReturnValue %109 + %84 = OpPhi %v3float %85 %82 %86 %83 + %87 = OpPhi %float %88 %82 %float_1 %83 + %89 = OpIEqual %bool %66 %uint_0 + OpSelectionMerge %90 None + OpBranchConditional %89 %91 %92 + %91 = OpLabel + %104 = OpCompositeExtract %tint_GammaTransferParams %params 3 + %105 = OpCompositeExtract %tint_GammaTransferParams %params 4 + %106 = OpCompositeExtract %mat3v3float %params 5 + %107 = OpFunctionCall %v3float %tint_GammaCorrection %84 %104 + %109 = OpMatrixTimesVector %v3float %106 %107 + %94 = OpFunctionCall %v3float %tint_GammaCorrection %109 %105 + OpBranch %90 + %92 = OpLabel + OpBranch %90 + %90 = OpLabel + %93 = OpPhi %v3float %94 %91 %84 %92 + %95 = OpCompositeConstruct %v4float %93 %87 + OpReturnValue %95 OpFunctionEnd %tint_GammaCorrection = OpFunction %v3float None %112 %v = OpFunctionParameter %v3float
diff --git a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.spvasm index 14bc971..81c854c 100644 --- a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.spvasm
@@ -207,40 +207,40 @@ OpSelectionMerge %79 None OpBranchConditional %77 %80 %81 %80 = OpLabel - %82 = OpImageFetch %v4float %plane_0 %75 Lod %uint_0 - %83 = OpVectorShuffle %v3float %82 %82 0 1 2 - %84 = OpCompositeExtract %float %82 3 + %94 = OpImageFetch %v4float %plane_0 %75 Lod %uint_0 + %83 = OpVectorShuffle %v3float %94 %94 0 1 2 + %86 = OpCompositeExtract %float %94 3 OpBranch %79 %81 = OpLabel - %85 = OpImageFetch %v4float %plane_0 %75 Lod %uint_0 - %86 = OpCompositeExtract %float %85 0 - %87 = OpFMul %v2float %74 %68 - %88 = OpConvertFToU %v2uint %87 - %89 = OpImageFetch %v4float %plane_1 %88 Lod %uint_0 - %90 = OpVectorShuffle %v2float %89 %89 0 1 - %91 = OpCompositeConstruct %v4float %86 %90 %float_1 - %92 = OpVectorTimesMatrix %v3float %91 %65 + %95 = OpImageFetch %v4float %plane_0 %75 Lod %uint_0 + %96 = OpCompositeExtract %float %95 0 + %97 = OpFMul %v2float %74 %68 + %98 = OpConvertFToU %v2uint %97 + %99 = OpImageFetch %v4float %plane_1 %98 Lod %uint_0 + %100 = OpVectorShuffle %v2float %99 %99 0 1 + %101 = OpCompositeConstruct %v4float %96 %100 %float_1 + %84 = OpVectorTimesMatrix %v3float %101 %65 OpBranch %79 %79 = OpLabel - %93 = OpPhi %v3float %83 %80 %92 %81 - %94 = OpPhi %float %84 %80 %float_1 %81 - %95 = OpIEqual %bool %64 %uint_0 - OpSelectionMerge %96 None - OpBranchConditional %95 %97 %98 - %97 = OpLabel - %99 = OpCompositeExtract %tint_GammaTransferParams %params 3 - %100 = OpCompositeExtract %tint_GammaTransferParams %params 4 - %101 = OpCompositeExtract %mat3v3float %params 5 - %102 = OpFunctionCall %v3float %tint_GammaCorrection %93 %99 - %104 = OpMatrixTimesVector %v3float %101 %102 - %105 = OpFunctionCall %v3float %tint_GammaCorrection %104 %100 - OpBranch %96 - %98 = OpLabel - OpBranch %96 - %96 = OpLabel - %106 = OpPhi %v3float %105 %97 %93 %98 - %107 = OpCompositeConstruct %v4float %106 %94 - OpReturnValue %107 + %82 = OpPhi %v3float %83 %80 %84 %81 + %85 = OpPhi %float %86 %80 %float_1 %81 + %87 = OpIEqual %bool %64 %uint_0 + OpSelectionMerge %88 None + OpBranchConditional %87 %89 %90 + %89 = OpLabel + %102 = OpCompositeExtract %tint_GammaTransferParams %params 3 + %103 = OpCompositeExtract %tint_GammaTransferParams %params 4 + %104 = OpCompositeExtract %mat3v3float %params 5 + %105 = OpFunctionCall %v3float %tint_GammaCorrection %82 %102 + %107 = OpMatrixTimesVector %v3float %104 %105 + %92 = OpFunctionCall %v3float %tint_GammaCorrection %107 %103 + OpBranch %88 + %90 = OpLabel + OpBranch %88 + %88 = OpLabel + %91 = OpPhi %v3float %92 %89 %82 %90 + %93 = OpCompositeConstruct %v4float %91 %85 + OpReturnValue %93 OpFunctionEnd %tint_GammaCorrection = OpFunction %v3float None %110 %v = OpFunctionParameter %v3float @@ -510,40 +510,40 @@ OpSelectionMerge %79 None OpBranchConditional %77 %80 %81 %80 = OpLabel - %82 = OpImageFetch %v4float %plane_0 %75 Lod %uint_0 - %83 = OpVectorShuffle %v3float %82 %82 0 1 2 - %84 = OpCompositeExtract %float %82 3 + %94 = OpImageFetch %v4float %plane_0 %75 Lod %uint_0 + %83 = OpVectorShuffle %v3float %94 %94 0 1 2 + %86 = OpCompositeExtract %float %94 3 OpBranch %79 %81 = OpLabel - %85 = OpImageFetch %v4float %plane_0 %75 Lod %uint_0 - %86 = OpCompositeExtract %float %85 0 - %87 = OpFMul %v2float %74 %68 - %88 = OpConvertFToU %v2uint %87 - %89 = OpImageFetch %v4float %plane_1 %88 Lod %uint_0 - %90 = OpVectorShuffle %v2float %89 %89 0 1 - %91 = OpCompositeConstruct %v4float %86 %90 %float_1 - %92 = OpVectorTimesMatrix %v3float %91 %65 + %95 = OpImageFetch %v4float %plane_0 %75 Lod %uint_0 + %96 = OpCompositeExtract %float %95 0 + %97 = OpFMul %v2float %74 %68 + %98 = OpConvertFToU %v2uint %97 + %99 = OpImageFetch %v4float %plane_1 %98 Lod %uint_0 + %100 = OpVectorShuffle %v2float %99 %99 0 1 + %101 = OpCompositeConstruct %v4float %96 %100 %float_1 + %84 = OpVectorTimesMatrix %v3float %101 %65 OpBranch %79 %79 = OpLabel - %93 = OpPhi %v3float %83 %80 %92 %81 - %94 = OpPhi %float %84 %80 %float_1 %81 - %95 = OpIEqual %bool %64 %uint_0 - OpSelectionMerge %96 None - OpBranchConditional %95 %97 %98 - %97 = OpLabel - %99 = OpCompositeExtract %tint_GammaTransferParams %params 3 - %100 = OpCompositeExtract %tint_GammaTransferParams %params 4 - %101 = OpCompositeExtract %mat3v3float %params 5 - %102 = OpFunctionCall %v3float %tint_GammaCorrection %93 %99 - %104 = OpMatrixTimesVector %v3float %101 %102 - %105 = OpFunctionCall %v3float %tint_GammaCorrection %104 %100 - OpBranch %96 - %98 = OpLabel - OpBranch %96 - %96 = OpLabel - %106 = OpPhi %v3float %105 %97 %93 %98 - %107 = OpCompositeConstruct %v4float %106 %94 - OpReturnValue %107 + %82 = OpPhi %v3float %83 %80 %84 %81 + %85 = OpPhi %float %86 %80 %float_1 %81 + %87 = OpIEqual %bool %64 %uint_0 + OpSelectionMerge %88 None + OpBranchConditional %87 %89 %90 + %89 = OpLabel + %102 = OpCompositeExtract %tint_GammaTransferParams %params 3 + %103 = OpCompositeExtract %tint_GammaTransferParams %params 4 + %104 = OpCompositeExtract %mat3v3float %params 5 + %105 = OpFunctionCall %v3float %tint_GammaCorrection %82 %102 + %107 = OpMatrixTimesVector %v3float %104 %105 + %92 = OpFunctionCall %v3float %tint_GammaCorrection %107 %103 + OpBranch %88 + %90 = OpLabel + OpBranch %88 + %88 = OpLabel + %91 = OpPhi %v3float %92 %89 %82 %90 + %93 = OpCompositeConstruct %v4float %91 %85 + OpReturnValue %93 OpFunctionEnd %tint_GammaCorrection = OpFunction %v3float None %110 %v = OpFunctionParameter %v3float @@ -827,40 +827,40 @@ OpSelectionMerge %86 None OpBranchConditional %84 %87 %88 %87 = OpLabel - %89 = OpImageFetch %v4float %plane_0 %82 Lod %uint_0 - %90 = OpVectorShuffle %v3float %89 %89 0 1 2 - %91 = OpCompositeExtract %float %89 3 + %101 = OpImageFetch %v4float %plane_0 %82 Lod %uint_0 + %90 = OpVectorShuffle %v3float %101 %101 0 1 2 + %93 = OpCompositeExtract %float %101 3 OpBranch %86 %88 = OpLabel - %92 = OpImageFetch %v4float %plane_0 %82 Lod %uint_0 - %93 = OpCompositeExtract %float %92 0 - %94 = OpFMul %v2float %81 %75 - %95 = OpConvertFToU %v2uint %94 - %96 = OpImageFetch %v4float %plane_1 %95 Lod %uint_0 - %97 = OpVectorShuffle %v2float %96 %96 0 1 - %98 = OpCompositeConstruct %v4float %93 %97 %float_1 - %99 = OpVectorTimesMatrix %v3float %98 %72 + %102 = OpImageFetch %v4float %plane_0 %82 Lod %uint_0 + %103 = OpCompositeExtract %float %102 0 + %104 = OpFMul %v2float %81 %75 + %105 = OpConvertFToU %v2uint %104 + %106 = OpImageFetch %v4float %plane_1 %105 Lod %uint_0 + %107 = OpVectorShuffle %v2float %106 %106 0 1 + %108 = OpCompositeConstruct %v4float %103 %107 %float_1 + %91 = OpVectorTimesMatrix %v3float %108 %72 OpBranch %86 %86 = OpLabel - %100 = OpPhi %v3float %90 %87 %99 %88 - %101 = OpPhi %float %91 %87 %float_1 %88 - %102 = OpIEqual %bool %71 %uint_0 - OpSelectionMerge %103 None - OpBranchConditional %102 %104 %105 - %104 = OpLabel - %106 = OpCompositeExtract %tint_GammaTransferParams %params 3 - %107 = OpCompositeExtract %tint_GammaTransferParams %params 4 - %108 = OpCompositeExtract %mat3v3float %params 5 - %109 = OpFunctionCall %v3float %tint_GammaCorrection %100 %106 - %111 = OpMatrixTimesVector %v3float %108 %109 - %112 = OpFunctionCall %v3float %tint_GammaCorrection %111 %107 - OpBranch %103 - %105 = OpLabel - OpBranch %103 - %103 = OpLabel - %113 = OpPhi %v3float %112 %104 %100 %105 - %114 = OpCompositeConstruct %v4float %113 %101 - OpReturnValue %114 + %89 = OpPhi %v3float %90 %87 %91 %88 + %92 = OpPhi %float %93 %87 %float_1 %88 + %94 = OpIEqual %bool %71 %uint_0 + OpSelectionMerge %95 None + OpBranchConditional %94 %96 %97 + %96 = OpLabel + %109 = OpCompositeExtract %tint_GammaTransferParams %params 3 + %110 = OpCompositeExtract %tint_GammaTransferParams %params 4 + %111 = OpCompositeExtract %mat3v3float %params 5 + %112 = OpFunctionCall %v3float %tint_GammaCorrection %89 %109 + %114 = OpMatrixTimesVector %v3float %111 %112 + %99 = OpFunctionCall %v3float %tint_GammaCorrection %114 %110 + OpBranch %95 + %97 = OpLabel + OpBranch %95 + %95 = OpLabel + %98 = OpPhi %v3float %99 %96 %89 %97 + %100 = OpCompositeConstruct %v4float %98 %92 + OpReturnValue %100 OpFunctionEnd %tint_GammaCorrection = OpFunction %v3float None %117 %v = OpFunctionParameter %v3float
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.spvasm index ac11499..4a5c308 100644 --- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.spvasm
@@ -160,7 +160,7 @@ %57 = OpTypeFunction %v4float %8 %8 %tint_ExternalTextureParams %22 %v2float %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %78 = OpTypeSampledImage %8 + %90 = OpTypeSampledImage %8 %float_0 = OpConstant %float 0 %109 = OpTypeFunction %v3float %v3float %tint_GammaTransferParams %v3bool = OpTypeVector %bool 3 @@ -208,42 +208,42 @@ OpSelectionMerge %74 None OpBranchConditional %71 %75 %76 %75 = OpLabel - %77 = OpSampledImage %78 %plane_0 %tint_sampler - %79 = OpImageSampleExplicitLod %v4float %77 %68 Lod %float_0 - %81 = OpVectorShuffle %v3float %79 %79 0 1 2 - %82 = OpCompositeExtract %float %79 3 + %89 = OpSampledImage %90 %plane_0 %tint_sampler + %91 = OpImageSampleExplicitLod %v4float %89 %68 Lod %float_0 + %78 = OpVectorShuffle %v3float %91 %91 0 1 2 + %81 = OpCompositeExtract %float %91 3 OpBranch %74 %76 = OpLabel - %83 = OpSampledImage %78 %plane_0 %tint_sampler - %84 = OpImageSampleExplicitLod %v4float %83 %68 Lod %float_0 - %85 = OpCompositeExtract %float %84 0 - %86 = OpExtInst %v2float %69 NClamp %67 %64 %65 - %87 = OpSampledImage %78 %plane_1 %tint_sampler - %88 = OpImageSampleExplicitLod %v4float %87 %86 Lod %float_0 - %89 = OpVectorShuffle %v2float %88 %88 0 1 - %90 = OpCompositeConstruct %v4float %85 %89 %float_1 - %91 = OpVectorTimesMatrix %v3float %90 %60 + %93 = OpSampledImage %90 %plane_0 %tint_sampler + %94 = OpImageSampleExplicitLod %v4float %93 %68 Lod %float_0 + %95 = OpCompositeExtract %float %94 0 + %96 = OpExtInst %v2float %69 NClamp %67 %64 %65 + %97 = OpSampledImage %90 %plane_1 %tint_sampler + %98 = OpImageSampleExplicitLod %v4float %97 %96 Lod %float_0 + %99 = OpVectorShuffle %v2float %98 %98 0 1 + %100 = OpCompositeConstruct %v4float %95 %99 %float_1 + %79 = OpVectorTimesMatrix %v3float %100 %60 OpBranch %74 %74 = OpLabel - %92 = OpPhi %v3float %81 %75 %91 %76 - %93 = OpPhi %float %82 %75 %float_1 %76 - %94 = OpIEqual %bool %59 %uint_0 - OpSelectionMerge %95 None - OpBranchConditional %94 %96 %97 - %96 = OpLabel - %98 = OpCompositeExtract %tint_GammaTransferParams %params 3 - %99 = OpCompositeExtract %tint_GammaTransferParams %params 4 - %100 = OpCompositeExtract %mat3v3float %params 5 - %101 = OpFunctionCall %v3float %tint_GammaCorrection %92 %98 - %103 = OpMatrixTimesVector %v3float %100 %101 - %104 = OpFunctionCall %v3float %tint_GammaCorrection %103 %99 - OpBranch %95 - %97 = OpLabel - OpBranch %95 - %95 = OpLabel - %105 = OpPhi %v3float %104 %96 %92 %97 - %106 = OpCompositeConstruct %v4float %105 %93 - OpReturnValue %106 + %77 = OpPhi %v3float %78 %75 %79 %76 + %80 = OpPhi %float %81 %75 %float_1 %76 + %82 = OpIEqual %bool %59 %uint_0 + OpSelectionMerge %83 None + OpBranchConditional %82 %84 %85 + %84 = OpLabel + %101 = OpCompositeExtract %tint_GammaTransferParams %params 3 + %102 = OpCompositeExtract %tint_GammaTransferParams %params 4 + %103 = OpCompositeExtract %mat3v3float %params 5 + %104 = OpFunctionCall %v3float %tint_GammaCorrection %77 %101 + %106 = OpMatrixTimesVector %v3float %103 %104 + %87 = OpFunctionCall %v3float %tint_GammaCorrection %106 %102 + OpBranch %83 + %85 = OpLabel + OpBranch %83 + %83 = OpLabel + %86 = OpPhi %v3float %87 %84 %77 %85 + %88 = OpCompositeConstruct %v4float %86 %80 + OpReturnValue %88 OpFunctionEnd %tint_GammaCorrection = OpFunction %v3float None %109 %v = OpFunctionParameter %v3float @@ -466,7 +466,7 @@ %57 = OpTypeFunction %v4float %8 %8 %tint_ExternalTextureParams %22 %v2float %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %78 = OpTypeSampledImage %8 + %90 = OpTypeSampledImage %8 %float_0 = OpConstant %float 0 %109 = OpTypeFunction %v3float %v3float %tint_GammaTransferParams %v3bool = OpTypeVector %bool 3 @@ -514,42 +514,42 @@ OpSelectionMerge %74 None OpBranchConditional %71 %75 %76 %75 = OpLabel - %77 = OpSampledImage %78 %plane_0 %tint_sampler - %79 = OpImageSampleExplicitLod %v4float %77 %68 Lod %float_0 - %81 = OpVectorShuffle %v3float %79 %79 0 1 2 - %82 = OpCompositeExtract %float %79 3 + %89 = OpSampledImage %90 %plane_0 %tint_sampler + %91 = OpImageSampleExplicitLod %v4float %89 %68 Lod %float_0 + %78 = OpVectorShuffle %v3float %91 %91 0 1 2 + %81 = OpCompositeExtract %float %91 3 OpBranch %74 %76 = OpLabel - %83 = OpSampledImage %78 %plane_0 %tint_sampler - %84 = OpImageSampleExplicitLod %v4float %83 %68 Lod %float_0 - %85 = OpCompositeExtract %float %84 0 - %86 = OpExtInst %v2float %69 NClamp %67 %64 %65 - %87 = OpSampledImage %78 %plane_1 %tint_sampler - %88 = OpImageSampleExplicitLod %v4float %87 %86 Lod %float_0 - %89 = OpVectorShuffle %v2float %88 %88 0 1 - %90 = OpCompositeConstruct %v4float %85 %89 %float_1 - %91 = OpVectorTimesMatrix %v3float %90 %60 + %93 = OpSampledImage %90 %plane_0 %tint_sampler + %94 = OpImageSampleExplicitLod %v4float %93 %68 Lod %float_0 + %95 = OpCompositeExtract %float %94 0 + %96 = OpExtInst %v2float %69 NClamp %67 %64 %65 + %97 = OpSampledImage %90 %plane_1 %tint_sampler + %98 = OpImageSampleExplicitLod %v4float %97 %96 Lod %float_0 + %99 = OpVectorShuffle %v2float %98 %98 0 1 + %100 = OpCompositeConstruct %v4float %95 %99 %float_1 + %79 = OpVectorTimesMatrix %v3float %100 %60 OpBranch %74 %74 = OpLabel - %92 = OpPhi %v3float %81 %75 %91 %76 - %93 = OpPhi %float %82 %75 %float_1 %76 - %94 = OpIEqual %bool %59 %uint_0 - OpSelectionMerge %95 None - OpBranchConditional %94 %96 %97 - %96 = OpLabel - %98 = OpCompositeExtract %tint_GammaTransferParams %params 3 - %99 = OpCompositeExtract %tint_GammaTransferParams %params 4 - %100 = OpCompositeExtract %mat3v3float %params 5 - %101 = OpFunctionCall %v3float %tint_GammaCorrection %92 %98 - %103 = OpMatrixTimesVector %v3float %100 %101 - %104 = OpFunctionCall %v3float %tint_GammaCorrection %103 %99 - OpBranch %95 - %97 = OpLabel - OpBranch %95 - %95 = OpLabel - %105 = OpPhi %v3float %104 %96 %92 %97 - %106 = OpCompositeConstruct %v4float %105 %93 - OpReturnValue %106 + %77 = OpPhi %v3float %78 %75 %79 %76 + %80 = OpPhi %float %81 %75 %float_1 %76 + %82 = OpIEqual %bool %59 %uint_0 + OpSelectionMerge %83 None + OpBranchConditional %82 %84 %85 + %84 = OpLabel + %101 = OpCompositeExtract %tint_GammaTransferParams %params 3 + %102 = OpCompositeExtract %tint_GammaTransferParams %params 4 + %103 = OpCompositeExtract %mat3v3float %params 5 + %104 = OpFunctionCall %v3float %tint_GammaCorrection %77 %101 + %106 = OpMatrixTimesVector %v3float %103 %104 + %87 = OpFunctionCall %v3float %tint_GammaCorrection %106 %102 + OpBranch %83 + %85 = OpLabel + OpBranch %83 + %83 = OpLabel + %86 = OpPhi %v3float %87 %84 %77 %85 + %88 = OpCompositeConstruct %v4float %86 %80 + OpReturnValue %88 OpFunctionEnd %tint_GammaCorrection = OpFunction %v3float None %109 %v = OpFunctionParameter %v3float @@ -780,7 +780,7 @@ %uint_1 = OpConstant %uint 1 %65 = OpTypeFunction %v4float %3 %3 %tint_ExternalTextureParams %19 %v2float %bool = OpTypeBool - %85 = OpTypeSampledImage %3 + %97 = OpTypeSampledImage %3 %float_0 = OpConstant %float 0 %116 = OpTypeFunction %v3float %v3float %tint_GammaTransferParams %v3bool = OpTypeVector %bool 3 @@ -834,42 +834,42 @@ OpSelectionMerge %81 None OpBranchConditional %79 %82 %83 %82 = OpLabel - %84 = OpSampledImage %85 %plane_0 %tint_sampler - %86 = OpImageSampleExplicitLod %v4float %84 %76 Lod %float_0 - %88 = OpVectorShuffle %v3float %86 %86 0 1 2 - %89 = OpCompositeExtract %float %86 3 + %96 = OpSampledImage %97 %plane_0 %tint_sampler + %98 = OpImageSampleExplicitLod %v4float %96 %76 Lod %float_0 + %85 = OpVectorShuffle %v3float %98 %98 0 1 2 + %88 = OpCompositeExtract %float %98 3 OpBranch %81 %83 = OpLabel - %90 = OpSampledImage %85 %plane_0 %tint_sampler - %91 = OpImageSampleExplicitLod %v4float %90 %76 Lod %float_0 - %92 = OpCompositeExtract %float %91 0 - %93 = OpExtInst %v2float %77 NClamp %75 %72 %73 - %94 = OpSampledImage %85 %plane_1 %tint_sampler - %95 = OpImageSampleExplicitLod %v4float %94 %93 Lod %float_0 - %96 = OpVectorShuffle %v2float %95 %95 0 1 - %97 = OpCompositeConstruct %v4float %92 %96 %float_1 - %98 = OpVectorTimesMatrix %v3float %97 %68 + %100 = OpSampledImage %97 %plane_0 %tint_sampler + %101 = OpImageSampleExplicitLod %v4float %100 %76 Lod %float_0 + %102 = OpCompositeExtract %float %101 0 + %103 = OpExtInst %v2float %77 NClamp %75 %72 %73 + %104 = OpSampledImage %97 %plane_1 %tint_sampler + %105 = OpImageSampleExplicitLod %v4float %104 %103 Lod %float_0 + %106 = OpVectorShuffle %v2float %105 %105 0 1 + %107 = OpCompositeConstruct %v4float %102 %106 %float_1 + %86 = OpVectorTimesMatrix %v3float %107 %68 OpBranch %81 %81 = OpLabel - %99 = OpPhi %v3float %88 %82 %98 %83 - %100 = OpPhi %float %89 %82 %float_1 %83 - %101 = OpIEqual %bool %67 %uint_0 - OpSelectionMerge %102 None - OpBranchConditional %101 %103 %104 - %103 = OpLabel - %105 = OpCompositeExtract %tint_GammaTransferParams %params 3 - %106 = OpCompositeExtract %tint_GammaTransferParams %params 4 - %107 = OpCompositeExtract %mat3v3float %params 5 - %108 = OpFunctionCall %v3float %tint_GammaCorrection %99 %105 - %110 = OpMatrixTimesVector %v3float %107 %108 - %111 = OpFunctionCall %v3float %tint_GammaCorrection %110 %106 - OpBranch %102 - %104 = OpLabel - OpBranch %102 - %102 = OpLabel - %112 = OpPhi %v3float %111 %103 %99 %104 - %113 = OpCompositeConstruct %v4float %112 %100 - OpReturnValue %113 + %84 = OpPhi %v3float %85 %82 %86 %83 + %87 = OpPhi %float %88 %82 %float_1 %83 + %89 = OpIEqual %bool %67 %uint_0 + OpSelectionMerge %90 None + OpBranchConditional %89 %91 %92 + %91 = OpLabel + %108 = OpCompositeExtract %tint_GammaTransferParams %params 3 + %109 = OpCompositeExtract %tint_GammaTransferParams %params 4 + %110 = OpCompositeExtract %mat3v3float %params 5 + %111 = OpFunctionCall %v3float %tint_GammaCorrection %84 %108 + %113 = OpMatrixTimesVector %v3float %110 %111 + %94 = OpFunctionCall %v3float %tint_GammaCorrection %113 %109 + OpBranch %90 + %92 = OpLabel + OpBranch %90 + %90 = OpLabel + %93 = OpPhi %v3float %94 %91 %84 %92 + %95 = OpCompositeConstruct %v4float %93 %87 + OpReturnValue %95 OpFunctionEnd %tint_GammaCorrection = OpFunction %v3float None %116 %v = OpFunctionParameter %v3float
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.spvasm index 28446a3..8d1f93f 100644 --- a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.spvasm
@@ -38,8 +38,8 @@ %23 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %uint_0 = OpConstant %uint 0 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint + %uint_0 = OpConstant %uint 0 %36 = OpTypeFunction %void %workgroupUniformLoad_37307c = OpFunction %uint None %10 %11 = OpLabel @@ -62,9 +62,9 @@ OpBranch %28 %28 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %32 = OpFunctionCall %uint %workgroupUniformLoad_37307c - %33 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 - OpStore %33 %32 None + %31 = OpFunctionCall %uint %workgroupUniformLoad_37307c + %32 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 + OpStore %32 %31 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %36
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.spvasm index a6ae6d6..e3ebddd 100644 --- a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.spvasm
@@ -39,9 +39,9 @@ %24 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %float_0 = OpConstant %float 0 %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %uint_0 = OpConstant %uint 0 + %float_0 = OpConstant %float 0 %38 = OpTypeFunction %void %workgroupUniformLoad_7a857c = OpFunction %float None %11 %12 = OpLabel @@ -64,9 +64,9 @@ OpBranch %29 %29 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %33 = OpFunctionCall %float %workgroupUniformLoad_7a857c - %34 = OpAccessChain %_ptr_StorageBuffer_float %1 %uint_0 - OpStore %34 %33 None + %32 = OpFunctionCall %float %workgroupUniformLoad_7a857c + %33 = OpAccessChain %_ptr_StorageBuffer_float %1 %uint_0 + OpStore %33 %32 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %38
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.spvasm index 70a60b3..e7edf27 100644 --- a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.spvasm
@@ -39,9 +39,9 @@ %24 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int %uint_0 = OpConstant %uint 0 + %int_0 = OpConstant %int 0 %38 = OpTypeFunction %void %workgroupUniformLoad_9d33de = OpFunction %int None %11 %12 = OpLabel @@ -64,9 +64,9 @@ OpBranch %29 %29 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %33 = OpFunctionCall %int %workgroupUniformLoad_9d33de - %34 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 - OpStore %34 %33 None + %32 = OpFunctionCall %int %workgroupUniformLoad_9d33de + %33 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 + OpStore %33 %32 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %38
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.spvasm index 1e46f83..ed4fca5 100644 --- a/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.spvasm
@@ -42,9 +42,9 @@ %24 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool -%half_0x0p_0 = OpConstant %half 0x0p+0 %_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half %uint_0 = OpConstant %uint 0 +%half_0x0p_0 = OpConstant %half 0x0p+0 %38 = OpTypeFunction %void %workgroupUniformLoad_e07d08 = OpFunction %half None %11 %12 = OpLabel @@ -67,9 +67,9 @@ OpBranch %29 %29 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %33 = OpFunctionCall %half %workgroupUniformLoad_e07d08 - %34 = OpAccessChain %_ptr_StorageBuffer_half %1 %uint_0 - OpStore %34 %33 None + %32 = OpFunctionCall %half %workgroupUniformLoad_e07d08 + %33 = OpAccessChain %_ptr_StorageBuffer_half %1 %uint_0 + OpStore %33 %32 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %38
diff --git a/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.spvasm index 12e7a91..8a07edb 100644 --- a/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.spvasm
@@ -41,9 +41,9 @@ %25 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_264 = OpConstant %uint 264 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %int_0 = OpConstant %int 0 %40 = OpTypeFunction %void %atomicAdd_794055 = OpFunction %int None %11 %12 = OpLabel @@ -67,9 +67,9 @@ OpBranch %30 %30 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %36 = OpFunctionCall %int %atomicAdd_794055 - %37 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 - OpStore %37 %36 None + %34 = OpFunctionCall %int %atomicAdd_794055 + %35 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 + OpStore %35 %34 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %40
diff --git a/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.spvasm index 88b21eb..9eb8c14 100644 --- a/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.spvasm
@@ -64,9 +64,9 @@ OpBranch %28 %28 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %33 = OpFunctionCall %uint %atomicAdd_d5db1d - %34 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 - OpStore %34 %33 None + %32 = OpFunctionCall %uint %atomicAdd_d5db1d + %33 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 + OpStore %33 %32 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %37
diff --git a/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.spvasm index fe65f03..fa24e39 100644 --- a/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.spvasm
@@ -64,9 +64,9 @@ OpBranch %28 %28 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %33 = OpFunctionCall %uint %atomicAnd_34edd3 - %34 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 - OpStore %34 %33 None + %32 = OpFunctionCall %uint %atomicAnd_34edd3 + %33 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 + OpStore %33 %32 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %37
diff --git a/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.spvasm index f3b38e1..bf4b02a 100644 --- a/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.spvasm
@@ -41,9 +41,9 @@ %25 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_264 = OpConstant %uint 264 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %int_0 = OpConstant %int 0 %40 = OpTypeFunction %void %atomicAnd_45a819 = OpFunction %int None %11 %12 = OpLabel @@ -67,9 +67,9 @@ OpBranch %30 %30 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %36 = OpFunctionCall %int %atomicAnd_45a819 - %37 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 - OpStore %37 %36 None + %34 = OpFunctionCall %int %atomicAnd_45a819 + %35 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 + OpStore %35 %34 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %40
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/83580d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/83580d.wgsl.expected.spvasm index d22b55f..4c522b9 100644 --- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/83580d.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/83580d.wgsl.expected.spvasm
@@ -62,7 +62,7 @@ OpBranch %30 %30 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %35 = OpFunctionCall %void %atomicCompareExchangeWeak_83580d + %34 = OpFunctionCall %void %atomicCompareExchangeWeak_83580d OpReturn OpFunctionEnd %compute_main = OpFunction %void None %8
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/e88938.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/e88938.wgsl.expected.spvasm index cf682ba..e02a1fa 100644 --- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/e88938.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/e88938.wgsl.expected.spvasm
@@ -37,8 +37,8 @@ %_ptr_Function___atomic_compare_exchange_result_i32 = OpTypePointer Function %__atomic_compare_exchange_result_i32 %28 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 - %int_0 = OpConstant %int 0 %uint_264 = OpConstant %uint 264 + %int_0 = OpConstant %int 0 %atomicCompareExchangeWeak_e88938 = OpFunction %void None %9 %10 = OpLabel %arg_1 = OpVariable %_ptr_Function_int Function @@ -65,7 +65,7 @@ OpBranch %32 %32 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %38 = OpFunctionCall %void %atomicCompareExchangeWeak_e88938 + %36 = OpFunctionCall %void %atomicCompareExchangeWeak_e88938 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9
diff --git a/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.spvasm index 8b541e9..8a59dac 100644 --- a/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.spvasm
@@ -64,9 +64,9 @@ OpBranch %28 %28 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %33 = OpFunctionCall %uint %atomicExchange_0a5dca - %34 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 - OpStore %34 %33 None + %32 = OpFunctionCall %uint %atomicExchange_0a5dca + %33 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 + OpStore %33 %32 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %37
diff --git a/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.spvasm index e580d17..0e32c4a 100644 --- a/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.spvasm
@@ -41,9 +41,9 @@ %25 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_264 = OpConstant %uint 264 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %int_0 = OpConstant %int 0 %40 = OpTypeFunction %void %atomicExchange_e114ba = OpFunction %int None %11 %12 = OpLabel @@ -67,9 +67,9 @@ OpBranch %30 %30 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %36 = OpFunctionCall %int %atomicExchange_e114ba - %37 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 - OpStore %37 %36 None + %34 = OpFunctionCall %int %atomicExchange_e114ba + %35 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 + OpStore %35 %34 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %40
diff --git a/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.spvasm index 39ea465..f670ccc 100644 --- a/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.spvasm
@@ -60,9 +60,9 @@ OpBranch %26 %26 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %31 = OpFunctionCall %uint %atomicLoad_361bf1 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 - OpStore %32 %31 None + %30 = OpFunctionCall %uint %atomicLoad_361bf1 + %31 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 + OpStore %31 %30 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %35
diff --git a/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.spvasm index 8cf5982..1e616e6 100644 --- a/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.spvasm
@@ -39,9 +39,9 @@ %22 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_264 = OpConstant %uint 264 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %int_0 = OpConstant %int 0 %37 = OpTypeFunction %void %atomicLoad_afcc03 = OpFunction %int None %11 %12 = OpLabel @@ -62,9 +62,9 @@ OpBranch %27 %27 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %33 = OpFunctionCall %int %atomicLoad_afcc03 - %34 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 - OpStore %34 %33 None + %31 = OpFunctionCall %int %atomicLoad_afcc03 + %32 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 + OpStore %32 %31 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %37
diff --git a/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.spvasm index 478bfaf..eb7e0b8 100644 --- a/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.spvasm
@@ -41,9 +41,9 @@ %25 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_264 = OpConstant %uint 264 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %int_0 = OpConstant %int 0 %40 = OpTypeFunction %void %atomicMax_a89cc3 = OpFunction %int None %11 %12 = OpLabel @@ -67,9 +67,9 @@ OpBranch %30 %30 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %36 = OpFunctionCall %int %atomicMax_a89cc3 - %37 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 - OpStore %37 %36 None + %34 = OpFunctionCall %int %atomicMax_a89cc3 + %35 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 + OpStore %35 %34 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %40
diff --git a/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.spvasm index 7706356..4b69789 100644 --- a/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.spvasm
@@ -64,9 +64,9 @@ OpBranch %28 %28 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %33 = OpFunctionCall %uint %atomicMax_beccfc - %34 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 - OpStore %34 %33 None + %32 = OpFunctionCall %uint %atomicMax_beccfc + %33 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 + OpStore %33 %32 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %37
diff --git a/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.spvasm index 19aded5..2e4dd70 100644 --- a/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.spvasm
@@ -41,9 +41,9 @@ %25 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_264 = OpConstant %uint 264 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %int_0 = OpConstant %int 0 %40 = OpTypeFunction %void %atomicMin_278235 = OpFunction %int None %11 %12 = OpLabel @@ -67,9 +67,9 @@ OpBranch %30 %30 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %36 = OpFunctionCall %int %atomicMin_278235 - %37 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 - OpStore %37 %36 None + %34 = OpFunctionCall %int %atomicMin_278235 + %35 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 + OpStore %35 %34 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %40
diff --git a/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.spvasm index 0d29b9b..0723e8d 100644 --- a/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.spvasm
@@ -64,9 +64,9 @@ OpBranch %28 %28 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %33 = OpFunctionCall %uint %atomicMin_69d383 - %34 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 - OpStore %34 %33 None + %32 = OpFunctionCall %uint %atomicMin_69d383 + %33 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 + OpStore %33 %32 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %37
diff --git a/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.spvasm index e8f52cb..0765b40 100644 --- a/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.spvasm
@@ -64,9 +64,9 @@ OpBranch %28 %28 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %33 = OpFunctionCall %uint %atomicOr_5e3d61 - %34 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 - OpStore %34 %33 None + %32 = OpFunctionCall %uint %atomicOr_5e3d61 + %33 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 + OpStore %33 %32 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %37
diff --git a/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.spvasm index 4544a19..17a718f 100644 --- a/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.spvasm
@@ -41,9 +41,9 @@ %25 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_264 = OpConstant %uint 264 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %int_0 = OpConstant %int 0 %40 = OpTypeFunction %void %atomicOr_d09248 = OpFunction %int None %11 %12 = OpLabel @@ -67,9 +67,9 @@ OpBranch %30 %30 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %36 = OpFunctionCall %int %atomicOr_d09248 - %37 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 - OpStore %37 %36 None + %34 = OpFunctionCall %int %atomicOr_d09248 + %35 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 + OpStore %35 %34 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %40
diff --git a/test/tint/builtins/gen/var/atomicStore/726882.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicStore/726882.wgsl.expected.spvasm index 0c60f9b..e69f756 100644 --- a/test/tint/builtins/gen/var/atomicStore/726882.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/atomicStore/726882.wgsl.expected.spvasm
@@ -48,7 +48,7 @@ OpBranch %23 %23 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %28 = OpFunctionCall %void %atomicStore_726882 + %27 = OpFunctionCall %void %atomicStore_726882 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %8
diff --git a/test/tint/builtins/gen/var/atomicStore/8bea94.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicStore/8bea94.wgsl.expected.spvasm index 02e471a..1d07d17 100644 --- a/test/tint/builtins/gen/var/atomicStore/8bea94.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/atomicStore/8bea94.wgsl.expected.spvasm
@@ -30,8 +30,8 @@ %20 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_264 = OpConstant %uint 264 + %int_0 = OpConstant %int 0 %atomicStore_8bea94 = OpFunction %void None %9 %10 = OpLabel %arg_1 = OpVariable %_ptr_Function_int Function @@ -51,7 +51,7 @@ OpBranch %25 %25 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %31 = OpFunctionCall %void %atomicStore_8bea94 + %29 = OpFunctionCall %void %atomicStore_8bea94 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9
diff --git a/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.spvasm index 8fa3688..ff06e43 100644 --- a/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.spvasm
@@ -64,9 +64,9 @@ OpBranch %28 %28 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %33 = OpFunctionCall %uint %atomicSub_0d26c2 - %34 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 - OpStore %34 %33 None + %32 = OpFunctionCall %uint %atomicSub_0d26c2 + %33 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 + OpStore %33 %32 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %37
diff --git a/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.spvasm index 2f18c54..34068e7 100644 --- a/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.spvasm
@@ -41,9 +41,9 @@ %25 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_264 = OpConstant %uint 264 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %int_0 = OpConstant %int 0 %40 = OpTypeFunction %void %atomicSub_77883a = OpFunction %int None %11 %12 = OpLabel @@ -67,9 +67,9 @@ OpBranch %30 %30 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %36 = OpFunctionCall %int %atomicSub_77883a - %37 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 - OpStore %37 %36 None + %34 = OpFunctionCall %int %atomicSub_77883a + %35 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 + OpStore %35 %34 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %40
diff --git a/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.spvasm index bb6444e..01a4547 100644 --- a/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.spvasm
@@ -41,9 +41,9 @@ %25 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_264 = OpConstant %uint 264 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %int_0 = OpConstant %int 0 %40 = OpTypeFunction %void %atomicXor_75dc95 = OpFunction %int None %11 %12 = OpLabel @@ -67,9 +67,9 @@ OpBranch %30 %30 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %36 = OpFunctionCall %int %atomicXor_75dc95 - %37 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 - OpStore %37 %36 None + %34 = OpFunctionCall %int %atomicXor_75dc95 + %35 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 + OpStore %35 %34 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %40
diff --git a/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.spvasm index a46cfed..bc94d73 100644 --- a/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.spvasm
@@ -64,9 +64,9 @@ OpBranch %28 %28 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %33 = OpFunctionCall %uint %atomicXor_c8e6be - %34 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 - OpStore %34 %33 None + %32 = OpFunctionCall %uint %atomicXor_c8e6be + %33 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 + OpStore %33 %32 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %37
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0c84dd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/0c84dd.wgsl.expected.spvasm index 997be39..4c42c05 100644 --- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0c84dd.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0c84dd.wgsl.expected.spvasm
@@ -56,12 +56,12 @@ %_ptr_Function_15 = OpTypePointer Function %15 %void = OpTypeVoid %36 = OpTypeFunction %void %uint - %bool = OpTypeBool -%half_0x0p_0 = OpConstant %half 0x0p+0 %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 %_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024 %_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half + %bool = OpTypeBool +%half_0x0p_0 = OpConstant %half 0x0p+0 %61 = OpTypeFunction %void %subgroupMatrixLoad_0c84dd = OpFunction %15 None %19 %20 = OpLabel @@ -89,24 +89,24 @@ OpLoopMerge %42 %40 None OpBranch %39 %39 = OpLabel - %45 = OpUGreaterThanEqual %bool %43 %uint_64 - OpSelectionMerge %47 None - OpBranchConditional %45 %48 %47 - %48 = OpLabel + %54 = OpUGreaterThanEqual %bool %43 %uint_64 + OpSelectionMerge %56 None + OpBranchConditional %54 %57 %56 + %57 = OpLabel OpBranch %42 - %47 = OpLabel - %49 = OpAccessChain %_ptr_Workgroup_half %arg_0 %43 - OpStore %49 %half_0x0p_0 NonPrivatePointer + %56 = OpLabel + %58 = OpAccessChain %_ptr_Workgroup_half %arg_0 %43 + OpStore %58 %half_0x0p_0 NonPrivatePointer OpBranch %40 %40 = OpLabel %44 = OpIAdd %uint %43 %uint_1 OpBranch %41 %42 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %54 = OpFunctionCall %15 %subgroupMatrixLoad_0c84dd - %55 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0 - %57 = OpAccessChain %_ptr_StorageBuffer_half %55 %uint_0 - OpCooperativeMatrixStoreKHR %57 %54 %uint_0 %uint_64 NonPrivatePointer + %48 = OpFunctionCall %15 %subgroupMatrixLoad_0c84dd + %49 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0 + %51 = OpAccessChain %_ptr_StorageBuffer_half %49 %uint_0 + OpCooperativeMatrixStoreKHR %51 %48 %uint_0 %uint_64 NonPrivatePointer OpReturn OpFunctionEnd %compute_main = OpFunction %void None %61
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.spvasm index 735197e..476e685 100644 --- a/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.spvasm
@@ -55,13 +55,13 @@ %_ptr_Function_15 = OpTypePointer Function %15 %void = OpTypeVoid %35 = OpTypeFunction %void %uint - %bool = OpTypeBool -%half_0x0p_0 = OpConstant %half 0x0p+0 %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 %_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024 %uint_0 = OpConstant %uint 0 %_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half + %bool = OpTypeBool +%half_0x0p_0 = OpConstant %half 0x0p+0 %61 = OpTypeFunction %void %subgroupMatrixLoad_139ad7 = OpFunction %15 None %19 %20 = OpLabel @@ -89,24 +89,24 @@ OpLoopMerge %41 %39 None OpBranch %38 %38 = OpLabel - %44 = OpUGreaterThanEqual %bool %42 %uint_64 - OpSelectionMerge %46 None - OpBranchConditional %44 %47 %46 - %47 = OpLabel + %54 = OpUGreaterThanEqual %bool %42 %uint_64 + OpSelectionMerge %56 None + OpBranchConditional %54 %57 %56 + %57 = OpLabel OpBranch %41 - %46 = OpLabel - %48 = OpAccessChain %_ptr_Workgroup_half %arg_0 %42 - OpStore %48 %half_0x0p_0 NonPrivatePointer + %56 = OpLabel + %58 = OpAccessChain %_ptr_Workgroup_half %arg_0 %42 + OpStore %58 %half_0x0p_0 NonPrivatePointer OpBranch %39 %39 = OpLabel %43 = OpIAdd %uint %42 %uint_1 OpBranch %40 %41 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %53 = OpFunctionCall %15 %subgroupMatrixLoad_139ad7 - %54 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0 - %57 = OpAccessChain %_ptr_StorageBuffer_half %54 %uint_0 - OpCooperativeMatrixStoreKHR %57 %53 %uint_0 %uint_64 NonPrivatePointer + %47 = OpFunctionCall %15 %subgroupMatrixLoad_139ad7 + %48 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0 + %51 = OpAccessChain %_ptr_StorageBuffer_half %48 %uint_0 + OpCooperativeMatrixStoreKHR %51 %47 %uint_0 %uint_64 NonPrivatePointer OpReturn OpFunctionEnd %compute_main = OpFunction %void None %61
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.spvasm index d9bc968..0d27aac 100644 --- a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.spvasm
@@ -52,13 +52,13 @@ %_ptr_Function_15 = OpTypePointer Function %15 %void = OpTypeVoid %35 = OpTypeFunction %void %uint - %bool = OpTypeBool - %float_0 = OpConstant %float 0 %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 %_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024 %uint_0 = OpConstant %uint 0 %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float + %bool = OpTypeBool + %float_0 = OpConstant %float 0 %61 = OpTypeFunction %void %subgroupMatrixLoad_37b559 = OpFunction %15 None %19 %20 = OpLabel @@ -86,24 +86,24 @@ OpLoopMerge %41 %39 None OpBranch %38 %38 = OpLabel - %44 = OpUGreaterThanEqual %bool %42 %uint_64 - OpSelectionMerge %46 None - OpBranchConditional %44 %47 %46 - %47 = OpLabel + %54 = OpUGreaterThanEqual %bool %42 %uint_64 + OpSelectionMerge %56 None + OpBranchConditional %54 %57 %56 + %57 = OpLabel OpBranch %41 - %46 = OpLabel - %48 = OpAccessChain %_ptr_Workgroup_float %arg_0 %42 - OpStore %48 %float_0 NonPrivatePointer + %56 = OpLabel + %58 = OpAccessChain %_ptr_Workgroup_float %arg_0 %42 + OpStore %58 %float_0 NonPrivatePointer OpBranch %39 %39 = OpLabel %43 = OpIAdd %uint %42 %uint_1 OpBranch %40 %41 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %53 = OpFunctionCall %15 %subgroupMatrixLoad_37b559 - %54 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0 - %57 = OpAccessChain %_ptr_StorageBuffer_float %54 %uint_0 - OpCooperativeMatrixStoreKHR %57 %53 %uint_0 %uint_64 NonPrivatePointer + %47 = OpFunctionCall %15 %subgroupMatrixLoad_37b559 + %48 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0 + %51 = OpAccessChain %_ptr_StorageBuffer_float %48 %uint_0 + OpCooperativeMatrixStoreKHR %51 %47 %uint_0 %uint_64 NonPrivatePointer OpReturn OpFunctionEnd %compute_main = OpFunction %void None %61
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.spvasm index 7ff5b22..2649c2b 100644 --- a/test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.spvasm
@@ -53,12 +53,12 @@ %_ptr_Function_15 = OpTypePointer Function %15 %void = OpTypeVoid %36 = OpTypeFunction %void %uint - %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_24840 = OpConstant %uint 24840 %_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024 %uint_0 = OpConstant %uint 0 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %bool = OpTypeBool + %int_0 = OpConstant %int 0 %61 = OpTypeFunction %void %subgroupMatrixLoad_4c307c = OpFunction %15 None %19 %20 = OpLabel @@ -86,24 +86,24 @@ OpLoopMerge %42 %40 None OpBranch %39 %39 = OpLabel - %45 = OpUGreaterThanEqual %bool %43 %uint_64 - OpSelectionMerge %47 None - OpBranchConditional %45 %48 %47 - %48 = OpLabel + %54 = OpUGreaterThanEqual %bool %43 %uint_64 + OpSelectionMerge %56 None + OpBranchConditional %54 %57 %56 + %57 = OpLabel OpBranch %42 - %47 = OpLabel - %49 = OpAccessChain %_ptr_Workgroup_int %arg_0 %43 - OpStore %49 %int_0 NonPrivatePointer + %56 = OpLabel + %58 = OpAccessChain %_ptr_Workgroup_int %arg_0 %43 + OpStore %58 %int_0 NonPrivatePointer OpBranch %40 %40 = OpLabel %44 = OpIAdd %uint %43 %uint_1 OpBranch %41 %42 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %53 = OpFunctionCall %15 %subgroupMatrixLoad_4c307c - %54 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0 - %57 = OpAccessChain %_ptr_StorageBuffer_int %54 %uint_0 - OpCooperativeMatrixStoreKHR %57 %53 %uint_0 %uint_64 NonPrivatePointer + %47 = OpFunctionCall %15 %subgroupMatrixLoad_4c307c + %48 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0 + %51 = OpAccessChain %_ptr_StorageBuffer_int %48 %uint_0 + OpCooperativeMatrixStoreKHR %51 %47 %uint_0 %uint_64 NonPrivatePointer OpReturn OpFunctionEnd %compute_main = OpFunction %void None %61
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.spvasm index 19e4540..dafc850 100644 --- a/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.spvasm
@@ -52,11 +52,11 @@ %_ptr_Function_14 = OpTypePointer Function %14 %void = OpTypeVoid %35 = OpTypeFunction %void %uint - %bool = OpTypeBool - %uint_0 = OpConstant %uint 0 %uint_24840 = OpConstant %uint 24840 %_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024 + %uint_0 = OpConstant %uint 0 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint + %bool = OpTypeBool %59 = OpTypeFunction %void %subgroupMatrixLoad_641635 = OpFunction %14 None %18 %19 = OpLabel @@ -84,24 +84,24 @@ OpLoopMerge %41 %39 None OpBranch %38 %38 = OpLabel - %44 = OpUGreaterThanEqual %bool %42 %uint_64 - OpSelectionMerge %46 None - OpBranchConditional %44 %47 %46 - %47 = OpLabel + %53 = OpUGreaterThanEqual %bool %42 %uint_64 + OpSelectionMerge %55 None + OpBranchConditional %53 %56 %55 + %56 = OpLabel OpBranch %41 - %46 = OpLabel - %48 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %42 - OpStore %48 %uint_0 NonPrivatePointer + %55 = OpLabel + %57 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %42 + OpStore %57 %uint_0 NonPrivatePointer OpBranch %39 %39 = OpLabel %43 = OpIAdd %uint %42 %uint_1 OpBranch %40 %41 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %52 = OpFunctionCall %14 %subgroupMatrixLoad_641635 - %53 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0 - %55 = OpAccessChain %_ptr_StorageBuffer_uint %53 %uint_0 - OpCooperativeMatrixStoreKHR %55 %52 %uint_0 %uint_64 NonPrivatePointer + %46 = OpFunctionCall %14 %subgroupMatrixLoad_641635 + %47 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0 + %50 = OpAccessChain %_ptr_StorageBuffer_uint %47 %uint_0 + OpCooperativeMatrixStoreKHR %50 %46 %uint_0 %uint_64 NonPrivatePointer OpReturn OpFunctionEnd %compute_main = OpFunction %void None %59
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.spvasm index 39d50b5..a3fc244 100644 --- a/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.spvasm
@@ -53,12 +53,12 @@ %_ptr_Function_15 = OpTypePointer Function %15 %void = OpTypeVoid %36 = OpTypeFunction %void %uint - %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 %_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %bool = OpTypeBool + %int_0 = OpConstant %int 0 %61 = OpTypeFunction %void %subgroupMatrixLoad_67af87 = OpFunction %15 None %19 %20 = OpLabel @@ -86,24 +86,24 @@ OpLoopMerge %42 %40 None OpBranch %39 %39 = OpLabel - %45 = OpUGreaterThanEqual %bool %43 %uint_64 - OpSelectionMerge %47 None - OpBranchConditional %45 %48 %47 - %48 = OpLabel + %54 = OpUGreaterThanEqual %bool %43 %uint_64 + OpSelectionMerge %56 None + OpBranchConditional %54 %57 %56 + %57 = OpLabel OpBranch %42 - %47 = OpLabel - %49 = OpAccessChain %_ptr_Workgroup_int %arg_0 %43 - OpStore %49 %int_0 NonPrivatePointer + %56 = OpLabel + %58 = OpAccessChain %_ptr_Workgroup_int %arg_0 %43 + OpStore %58 %int_0 NonPrivatePointer OpBranch %40 %40 = OpLabel %44 = OpIAdd %uint %43 %uint_1 OpBranch %41 %42 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %54 = OpFunctionCall %15 %subgroupMatrixLoad_67af87 - %55 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0 - %57 = OpAccessChain %_ptr_StorageBuffer_int %55 %uint_0 - OpCooperativeMatrixStoreKHR %57 %54 %uint_0 %uint_64 NonPrivatePointer + %48 = OpFunctionCall %15 %subgroupMatrixLoad_67af87 + %49 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0 + %51 = OpAccessChain %_ptr_StorageBuffer_int %49 %uint_0 + OpCooperativeMatrixStoreKHR %51 %48 %uint_0 %uint_64 NonPrivatePointer OpReturn OpFunctionEnd %compute_main = OpFunction %void None %61
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.spvasm index bc4263a..75efba4 100644 --- a/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.spvasm
@@ -51,12 +51,12 @@ %_ptr_Function_14 = OpTypePointer Function %14 %void = OpTypeVoid %34 = OpTypeFunction %void %uint - %bool = OpTypeBool - %uint_0 = OpConstant %uint 0 %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 %_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024 + %uint_0 = OpConstant %uint 0 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint + %bool = OpTypeBool %59 = OpTypeFunction %void %subgroupMatrixLoad_93fa82 = OpFunction %14 None %18 %19 = OpLabel @@ -84,24 +84,24 @@ OpLoopMerge %40 %38 None OpBranch %37 %37 = OpLabel - %43 = OpUGreaterThanEqual %bool %41 %uint_64 - OpSelectionMerge %45 None - OpBranchConditional %43 %46 %45 - %46 = OpLabel + %53 = OpUGreaterThanEqual %bool %41 %uint_64 + OpSelectionMerge %55 None + OpBranchConditional %53 %56 %55 + %56 = OpLabel OpBranch %40 - %45 = OpLabel - %47 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %41 - OpStore %47 %uint_0 NonPrivatePointer + %55 = OpLabel + %57 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %41 + OpStore %57 %uint_0 NonPrivatePointer OpBranch %38 %38 = OpLabel %42 = OpIAdd %uint %41 %uint_1 OpBranch %39 %40 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %52 = OpFunctionCall %14 %subgroupMatrixLoad_93fa82 - %53 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0 - %55 = OpAccessChain %_ptr_StorageBuffer_uint %53 %uint_0 - OpCooperativeMatrixStoreKHR %55 %52 %uint_0 %uint_64 NonPrivatePointer + %46 = OpFunctionCall %14 %subgroupMatrixLoad_93fa82 + %47 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0 + %50 = OpAccessChain %_ptr_StorageBuffer_uint %47 %uint_0 + OpCooperativeMatrixStoreKHR %50 %46 %uint_0 %uint_64 NonPrivatePointer OpReturn OpFunctionEnd %compute_main = OpFunction %void None %59
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.spvasm index 31076f5..05bb6f4 100644 --- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.spvasm
@@ -53,12 +53,12 @@ %_ptr_Function_15 = OpTypePointer Function %15 %void = OpTypeVoid %36 = OpTypeFunction %void %uint - %bool = OpTypeBool - %float_0 = OpConstant %float 0 %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 %_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024 %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float + %bool = OpTypeBool + %float_0 = OpConstant %float 0 %61 = OpTypeFunction %void %subgroupMatrixLoad_b16d34 = OpFunction %15 None %19 %20 = OpLabel @@ -86,24 +86,24 @@ OpLoopMerge %42 %40 None OpBranch %39 %39 = OpLabel - %45 = OpUGreaterThanEqual %bool %43 %uint_64 - OpSelectionMerge %47 None - OpBranchConditional %45 %48 %47 - %48 = OpLabel + %54 = OpUGreaterThanEqual %bool %43 %uint_64 + OpSelectionMerge %56 None + OpBranchConditional %54 %57 %56 + %57 = OpLabel OpBranch %42 - %47 = OpLabel - %49 = OpAccessChain %_ptr_Workgroup_float %arg_0 %43 - OpStore %49 %float_0 NonPrivatePointer + %56 = OpLabel + %58 = OpAccessChain %_ptr_Workgroup_float %arg_0 %43 + OpStore %58 %float_0 NonPrivatePointer OpBranch %40 %40 = OpLabel %44 = OpIAdd %uint %43 %uint_1 OpBranch %41 %42 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %54 = OpFunctionCall %15 %subgroupMatrixLoad_b16d34 - %55 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0 - %57 = OpAccessChain %_ptr_StorageBuffer_float %55 %uint_0 - OpCooperativeMatrixStoreKHR %57 %54 %uint_0 %uint_64 NonPrivatePointer + %48 = OpFunctionCall %15 %subgroupMatrixLoad_b16d34 + %49 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0 + %51 = OpAccessChain %_ptr_StorageBuffer_float %49 %uint_0 + OpCooperativeMatrixStoreKHR %51 %48 %uint_0 %uint_64 NonPrivatePointer OpReturn OpFunctionEnd %compute_main = OpFunction %void None %61
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.spvasm index 1b996ee..e4a00b5 100644 --- a/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.spvasm
@@ -53,12 +53,12 @@ %_ptr_Function_15 = OpTypePointer Function %15 %void = OpTypeVoid %36 = OpTypeFunction %void %uint - %bool = OpTypeBool - %float_0 = OpConstant %float 0 %uint_24840 = OpConstant %uint 24840 %_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024 %uint_0 = OpConstant %uint 0 %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float + %bool = OpTypeBool + %float_0 = OpConstant %float 0 %61 = OpTypeFunction %void %subgroupMatrixLoad_c857d1 = OpFunction %15 None %19 %20 = OpLabel @@ -86,24 +86,24 @@ OpLoopMerge %42 %40 None OpBranch %39 %39 = OpLabel - %45 = OpUGreaterThanEqual %bool %43 %uint_64 - OpSelectionMerge %47 None - OpBranchConditional %45 %48 %47 - %48 = OpLabel + %54 = OpUGreaterThanEqual %bool %43 %uint_64 + OpSelectionMerge %56 None + OpBranchConditional %54 %57 %56 + %57 = OpLabel OpBranch %42 - %47 = OpLabel - %49 = OpAccessChain %_ptr_Workgroup_float %arg_0 %43 - OpStore %49 %float_0 NonPrivatePointer + %56 = OpLabel + %58 = OpAccessChain %_ptr_Workgroup_float %arg_0 %43 + OpStore %58 %float_0 NonPrivatePointer OpBranch %40 %40 = OpLabel %44 = OpIAdd %uint %43 %uint_1 OpBranch %41 %42 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %53 = OpFunctionCall %15 %subgroupMatrixLoad_c857d1 - %54 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0 - %57 = OpAccessChain %_ptr_StorageBuffer_float %54 %uint_0 - OpCooperativeMatrixStoreKHR %57 %53 %uint_0 %uint_64 NonPrivatePointer + %47 = OpFunctionCall %15 %subgroupMatrixLoad_c857d1 + %48 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0 + %51 = OpAccessChain %_ptr_StorageBuffer_float %48 %uint_0 + OpCooperativeMatrixStoreKHR %51 %47 %uint_0 %uint_64 NonPrivatePointer OpReturn OpFunctionEnd %compute_main = OpFunction %void None %61
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.spvasm index a119204..911a1e1 100644 --- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.spvasm
@@ -52,13 +52,13 @@ %_ptr_Function_15 = OpTypePointer Function %15 %void = OpTypeVoid %35 = OpTypeFunction %void %uint - %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 %_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024 %uint_0 = OpConstant %uint 0 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %bool = OpTypeBool + %int_0 = OpConstant %int 0 %61 = OpTypeFunction %void %subgroupMatrixLoad_ea84a8 = OpFunction %15 None %19 %20 = OpLabel @@ -86,24 +86,24 @@ OpLoopMerge %41 %39 None OpBranch %38 %38 = OpLabel - %44 = OpUGreaterThanEqual %bool %42 %uint_64 - OpSelectionMerge %46 None - OpBranchConditional %44 %47 %46 - %47 = OpLabel + %54 = OpUGreaterThanEqual %bool %42 %uint_64 + OpSelectionMerge %56 None + OpBranchConditional %54 %57 %56 + %57 = OpLabel OpBranch %41 - %46 = OpLabel - %48 = OpAccessChain %_ptr_Workgroup_int %arg_0 %42 - OpStore %48 %int_0 NonPrivatePointer + %56 = OpLabel + %58 = OpAccessChain %_ptr_Workgroup_int %arg_0 %42 + OpStore %58 %int_0 NonPrivatePointer OpBranch %39 %39 = OpLabel %43 = OpIAdd %uint %42 %uint_1 OpBranch %40 %41 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %53 = OpFunctionCall %15 %subgroupMatrixLoad_ea84a8 - %54 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0 - %57 = OpAccessChain %_ptr_StorageBuffer_int %54 %uint_0 - OpCooperativeMatrixStoreKHR %57 %53 %uint_0 %uint_64 NonPrivatePointer + %47 = OpFunctionCall %15 %subgroupMatrixLoad_ea84a8 + %48 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0 + %51 = OpAccessChain %_ptr_StorageBuffer_int %48 %uint_0 + OpCooperativeMatrixStoreKHR %51 %47 %uint_0 %uint_64 NonPrivatePointer OpReturn OpFunctionEnd %compute_main = OpFunction %void None %61
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.spvasm index 87a0424..7c0c83e 100644 --- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.spvasm
@@ -52,11 +52,11 @@ %_ptr_Function_14 = OpTypePointer Function %14 %void = OpTypeVoid %35 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 %_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint + %bool = OpTypeBool %59 = OpTypeFunction %void %subgroupMatrixLoad_f695fe = OpFunction %14 None %18 %19 = OpLabel @@ -84,24 +84,24 @@ OpLoopMerge %41 %39 None OpBranch %38 %38 = OpLabel - %44 = OpUGreaterThanEqual %bool %42 %uint_64 - OpSelectionMerge %46 None - OpBranchConditional %44 %47 %46 - %47 = OpLabel + %53 = OpUGreaterThanEqual %bool %42 %uint_64 + OpSelectionMerge %55 None + OpBranchConditional %53 %56 %55 + %56 = OpLabel OpBranch %41 - %46 = OpLabel - %48 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %42 - OpStore %48 %uint_0 NonPrivatePointer + %55 = OpLabel + %57 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %42 + OpStore %57 %uint_0 NonPrivatePointer OpBranch %39 %39 = OpLabel %43 = OpIAdd %uint %42 %uint_1 OpBranch %40 %41 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %52 = OpFunctionCall %14 %subgroupMatrixLoad_f695fe - %53 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0 - %55 = OpAccessChain %_ptr_StorageBuffer_uint %53 %uint_0 - OpCooperativeMatrixStoreKHR %55 %52 %uint_0 %uint_64 NonPrivatePointer + %47 = OpFunctionCall %14 %subgroupMatrixLoad_f695fe + %48 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0 + %50 = OpAccessChain %_ptr_StorageBuffer_uint %48 %uint_0 + OpCooperativeMatrixStoreKHR %50 %47 %uint_0 %uint_64 NonPrivatePointer OpReturn OpFunctionEnd %compute_main = OpFunction %void None %59
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.spvasm index ef31d18..2375cbb 100644 --- a/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.spvasm
@@ -56,12 +56,12 @@ %_ptr_Function_15 = OpTypePointer Function %15 %void = OpTypeVoid %36 = OpTypeFunction %void %uint - %bool = OpTypeBool -%half_0x0p_0 = OpConstant %half 0x0p+0 %uint_24840 = OpConstant %uint 24840 %_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024 %uint_0 = OpConstant %uint 0 %_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half + %bool = OpTypeBool +%half_0x0p_0 = OpConstant %half 0x0p+0 %61 = OpTypeFunction %void %subgroupMatrixLoad_fd7bd9 = OpFunction %15 None %19 %20 = OpLabel @@ -89,24 +89,24 @@ OpLoopMerge %42 %40 None OpBranch %39 %39 = OpLabel - %45 = OpUGreaterThanEqual %bool %43 %uint_64 - OpSelectionMerge %47 None - OpBranchConditional %45 %48 %47 - %48 = OpLabel + %54 = OpUGreaterThanEqual %bool %43 %uint_64 + OpSelectionMerge %56 None + OpBranchConditional %54 %57 %56 + %57 = OpLabel OpBranch %42 - %47 = OpLabel - %49 = OpAccessChain %_ptr_Workgroup_half %arg_0 %43 - OpStore %49 %half_0x0p_0 NonPrivatePointer + %56 = OpLabel + %58 = OpAccessChain %_ptr_Workgroup_half %arg_0 %43 + OpStore %58 %half_0x0p_0 NonPrivatePointer OpBranch %40 %40 = OpLabel %44 = OpIAdd %uint %43 %uint_1 OpBranch %41 %42 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %53 = OpFunctionCall %15 %subgroupMatrixLoad_fd7bd9 - %54 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0 - %57 = OpAccessChain %_ptr_StorageBuffer_half %54 %uint_0 - OpCooperativeMatrixStoreKHR %57 %53 %uint_0 %uint_64 NonPrivatePointer + %47 = OpFunctionCall %15 %subgroupMatrixLoad_fd7bd9 + %48 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0 + %51 = OpAccessChain %_ptr_StorageBuffer_half %48 %uint_0 + OpCooperativeMatrixStoreKHR %51 %47 %uint_0 %uint_64 NonPrivatePointer OpReturn OpFunctionEnd %compute_main = OpFunction %void None %61
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.spvasm index e2def42..1e23cea 100644 --- a/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.spvasm
@@ -46,8 +46,8 @@ %_ptr_Function_17 = OpTypePointer Function %17 %_ptr_Workgroup_half = OpTypePointer Workgroup %half %33 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_24840 = OpConstant %uint 24840 + %bool = OpTypeBool %subgroupMatrixStore_127fb7 = OpFunction %void None %11 %12 = OpLabel %arg_1 = OpVariable %_ptr_Function_uint Function @@ -74,21 +74,21 @@ OpLoopMerge %39 %37 None OpBranch %36 %36 = OpLabel - %42 = OpUGreaterThanEqual %bool %40 %uint_64 - OpSelectionMerge %44 None - OpBranchConditional %42 %45 %44 - %45 = OpLabel + %45 = OpUGreaterThanEqual %bool %40 %uint_64 + OpSelectionMerge %47 None + OpBranchConditional %45 %48 %47 + %48 = OpLabel OpBranch %39 - %44 = OpLabel - %46 = OpAccessChain %_ptr_Workgroup_half %arg_0 %40 - OpStore %46 %half_0x0p_0 NonPrivatePointer + %47 = OpLabel + %49 = OpAccessChain %_ptr_Workgroup_half %arg_0 %40 + OpStore %49 %half_0x0p_0 NonPrivatePointer OpBranch %37 %37 = OpLabel %41 = OpIAdd %uint %40 %uint_1 OpBranch %38 %39 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %49 = OpFunctionCall %void %subgroupMatrixStore_127fb7 + %44 = OpFunctionCall %void %subgroupMatrixStore_127fb7 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %11
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.spvasm index 92ad0d3..a3a8903 100644 --- a/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.spvasm
@@ -41,9 +41,9 @@ %_ptr_Function_16 = OpTypePointer Function %16 %_ptr_Workgroup_uint = OpTypePointer Workgroup %uint %31 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 + %bool = OpTypeBool %subgroupMatrixStore_2de0b1 = OpFunction %void None %10 %11 = OpLabel %arg_1 = OpVariable %_ptr_Function_uint Function @@ -70,21 +70,21 @@ OpLoopMerge %37 %35 None OpBranch %34 %34 = OpLabel - %40 = OpUGreaterThanEqual %bool %38 %uint_64 - OpSelectionMerge %42 None - OpBranchConditional %40 %43 %42 - %43 = OpLabel + %44 = OpUGreaterThanEqual %bool %38 %uint_64 + OpSelectionMerge %46 None + OpBranchConditional %44 %47 %46 + %47 = OpLabel OpBranch %37 - %42 = OpLabel - %44 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %38 - OpStore %44 %uint_0 NonPrivatePointer + %46 = OpLabel + %48 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %38 + OpStore %48 %uint_0 NonPrivatePointer OpBranch %35 %35 = OpLabel %39 = OpIAdd %uint %38 %uint_1 OpBranch %36 %37 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %48 = OpFunctionCall %void %subgroupMatrixStore_2de0b1 + %43 = OpFunctionCall %void %subgroupMatrixStore_2de0b1 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %10
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl.expected.spvasm index aea19f8..465e469 100644 --- a/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl.expected.spvasm
@@ -42,9 +42,9 @@ %_ptr_Function_17 = OpTypePointer Function %17 %_ptr_Workgroup_float = OpTypePointer Workgroup %float %32 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 + %bool = OpTypeBool %subgroupMatrixStore_49b25b = OpFunction %void None %11 %12 = OpLabel %arg_1 = OpVariable %_ptr_Function_uint Function @@ -71,21 +71,21 @@ OpLoopMerge %38 %36 None OpBranch %35 %35 = OpLabel - %41 = OpUGreaterThanEqual %bool %39 %uint_64 - OpSelectionMerge %43 None - OpBranchConditional %41 %44 %43 - %44 = OpLabel + %45 = OpUGreaterThanEqual %bool %39 %uint_64 + OpSelectionMerge %47 None + OpBranchConditional %45 %48 %47 + %48 = OpLabel OpBranch %38 - %43 = OpLabel - %45 = OpAccessChain %_ptr_Workgroup_float %arg_0 %39 - OpStore %45 %float_0 NonPrivatePointer + %47 = OpLabel + %49 = OpAccessChain %_ptr_Workgroup_float %arg_0 %39 + OpStore %49 %float_0 NonPrivatePointer OpBranch %36 %36 = OpLabel %40 = OpIAdd %uint %39 %uint_1 OpBranch %37 %38 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %49 = OpFunctionCall %void %subgroupMatrixStore_49b25b + %44 = OpFunctionCall %void %subgroupMatrixStore_49b25b OpReturn OpFunctionEnd %compute_main = OpFunction %void None %11
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.spvasm index 856baf9..ea64702 100644 --- a/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.spvasm
@@ -42,9 +42,9 @@ %_ptr_Function_17 = OpTypePointer Function %17 %_ptr_Workgroup_int = OpTypePointer Workgroup %int %32 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 + %bool = OpTypeBool %subgroupMatrixStore_5671e2 = OpFunction %void None %11 %12 = OpLabel %arg_1 = OpVariable %_ptr_Function_uint Function @@ -71,21 +71,21 @@ OpLoopMerge %38 %36 None OpBranch %35 %35 = OpLabel - %41 = OpUGreaterThanEqual %bool %39 %uint_64 - OpSelectionMerge %43 None - OpBranchConditional %41 %44 %43 - %44 = OpLabel + %45 = OpUGreaterThanEqual %bool %39 %uint_64 + OpSelectionMerge %47 None + OpBranchConditional %45 %48 %47 + %48 = OpLabel OpBranch %38 - %43 = OpLabel - %45 = OpAccessChain %_ptr_Workgroup_int %arg_0 %39 - OpStore %45 %int_0 NonPrivatePointer + %47 = OpLabel + %49 = OpAccessChain %_ptr_Workgroup_int %arg_0 %39 + OpStore %49 %int_0 NonPrivatePointer OpBranch %36 %36 = OpLabel %40 = OpIAdd %uint %39 %uint_1 OpBranch %37 %38 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %49 = OpFunctionCall %void %subgroupMatrixStore_5671e2 + %44 = OpFunctionCall %void %subgroupMatrixStore_5671e2 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %11
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.spvasm index daf6c7e..d3eb209 100644 --- a/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.spvasm
@@ -41,9 +41,9 @@ %_ptr_Function_16 = OpTypePointer Function %16 %_ptr_Workgroup_uint = OpTypePointer Workgroup %uint %31 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 + %bool = OpTypeBool %subgroupMatrixStore_5915fe = OpFunction %void None %10 %11 = OpLabel %arg_1 = OpVariable %_ptr_Function_uint Function @@ -70,21 +70,21 @@ OpLoopMerge %37 %35 None OpBranch %34 %34 = OpLabel - %40 = OpUGreaterThanEqual %bool %38 %uint_64 - OpSelectionMerge %42 None - OpBranchConditional %40 %43 %42 - %43 = OpLabel + %44 = OpUGreaterThanEqual %bool %38 %uint_64 + OpSelectionMerge %46 None + OpBranchConditional %44 %47 %46 + %47 = OpLabel OpBranch %37 - %42 = OpLabel - %44 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %38 - OpStore %44 %uint_0 NonPrivatePointer + %46 = OpLabel + %48 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %38 + OpStore %48 %uint_0 NonPrivatePointer OpBranch %35 %35 = OpLabel %39 = OpIAdd %uint %38 %uint_1 OpBranch %36 %37 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %48 = OpFunctionCall %void %subgroupMatrixStore_5915fe + %43 = OpFunctionCall %void %subgroupMatrixStore_5915fe OpReturn OpFunctionEnd %compute_main = OpFunction %void None %10
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.spvasm index 9d62273..4f85de2 100644 --- a/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.spvasm
@@ -42,8 +42,8 @@ %_ptr_Function_16 = OpTypePointer Function %16 %_ptr_Workgroup_uint = OpTypePointer Workgroup %uint %32 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_24840 = OpConstant %uint 24840 + %bool = OpTypeBool %subgroupMatrixStore_9a7d60 = OpFunction %void None %10 %11 = OpLabel %arg_1 = OpVariable %_ptr_Function_uint Function @@ -70,21 +70,21 @@ OpLoopMerge %38 %36 None OpBranch %35 %35 = OpLabel - %41 = OpUGreaterThanEqual %bool %39 %uint_64 - OpSelectionMerge %43 None - OpBranchConditional %41 %44 %43 - %44 = OpLabel + %44 = OpUGreaterThanEqual %bool %39 %uint_64 + OpSelectionMerge %46 None + OpBranchConditional %44 %47 %46 + %47 = OpLabel OpBranch %38 - %43 = OpLabel - %45 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %39 - OpStore %45 %uint_0 NonPrivatePointer + %46 = OpLabel + %48 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %39 + OpStore %48 %uint_0 NonPrivatePointer OpBranch %36 %36 = OpLabel %40 = OpIAdd %uint %39 %uint_1 OpBranch %37 %38 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %48 = OpFunctionCall %void %subgroupMatrixStore_9a7d60 + %43 = OpFunctionCall %void %subgroupMatrixStore_9a7d60 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %10
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.spvasm index f7e911a..7d163ca 100644 --- a/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.spvasm
@@ -43,8 +43,8 @@ %_ptr_Function_17 = OpTypePointer Function %17 %_ptr_Workgroup_float = OpTypePointer Workgroup %float %33 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_24840 = OpConstant %uint 24840 + %bool = OpTypeBool %subgroupMatrixStore_b9ff25 = OpFunction %void None %11 %12 = OpLabel %arg_1 = OpVariable %_ptr_Function_uint Function @@ -71,21 +71,21 @@ OpLoopMerge %39 %37 None OpBranch %36 %36 = OpLabel - %42 = OpUGreaterThanEqual %bool %40 %uint_64 - OpSelectionMerge %44 None - OpBranchConditional %42 %45 %44 - %45 = OpLabel + %45 = OpUGreaterThanEqual %bool %40 %uint_64 + OpSelectionMerge %47 None + OpBranchConditional %45 %48 %47 + %48 = OpLabel OpBranch %39 - %44 = OpLabel - %46 = OpAccessChain %_ptr_Workgroup_float %arg_0 %40 - OpStore %46 %float_0 NonPrivatePointer + %47 = OpLabel + %49 = OpAccessChain %_ptr_Workgroup_float %arg_0 %40 + OpStore %49 %float_0 NonPrivatePointer OpBranch %37 %37 = OpLabel %41 = OpIAdd %uint %40 %uint_1 OpBranch %38 %39 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %49 = OpFunctionCall %void %subgroupMatrixStore_b9ff25 + %44 = OpFunctionCall %void %subgroupMatrixStore_b9ff25 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %11
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.spvasm index cdabd74..958a898 100644 --- a/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.spvasm
@@ -43,9 +43,9 @@ %_ptr_Function_17 = OpTypePointer Function %17 %_ptr_Workgroup_int = OpTypePointer Workgroup %int %33 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 + %bool = OpTypeBool %subgroupMatrixStore_bfd0a4 = OpFunction %void None %11 %12 = OpLabel %arg_1 = OpVariable %_ptr_Function_uint Function @@ -72,21 +72,21 @@ OpLoopMerge %39 %37 None OpBranch %36 %36 = OpLabel - %42 = OpUGreaterThanEqual %bool %40 %uint_64 - OpSelectionMerge %44 None - OpBranchConditional %42 %45 %44 - %45 = OpLabel + %46 = OpUGreaterThanEqual %bool %40 %uint_64 + OpSelectionMerge %48 None + OpBranchConditional %46 %49 %48 + %49 = OpLabel OpBranch %39 - %44 = OpLabel - %46 = OpAccessChain %_ptr_Workgroup_int %arg_0 %40 - OpStore %46 %int_0 NonPrivatePointer + %48 = OpLabel + %50 = OpAccessChain %_ptr_Workgroup_int %arg_0 %40 + OpStore %50 %int_0 NonPrivatePointer OpBranch %37 %37 = OpLabel %41 = OpIAdd %uint %40 %uint_1 OpBranch %38 %39 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %50 = OpFunctionCall %void %subgroupMatrixStore_bfd0a4 + %45 = OpFunctionCall %void %subgroupMatrixStore_bfd0a4 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %11
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.spvasm index 7996d8c..e35f13a 100644 --- a/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.spvasm
@@ -45,9 +45,9 @@ %_ptr_Function_17 = OpTypePointer Function %17 %_ptr_Workgroup_half = OpTypePointer Workgroup %half %32 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 + %bool = OpTypeBool %subgroupMatrixStore_d07581 = OpFunction %void None %11 %12 = OpLabel %arg_1 = OpVariable %_ptr_Function_uint Function @@ -74,21 +74,21 @@ OpLoopMerge %38 %36 None OpBranch %35 %35 = OpLabel - %41 = OpUGreaterThanEqual %bool %39 %uint_64 - OpSelectionMerge %43 None - OpBranchConditional %41 %44 %43 - %44 = OpLabel + %45 = OpUGreaterThanEqual %bool %39 %uint_64 + OpSelectionMerge %47 None + OpBranchConditional %45 %48 %47 + %48 = OpLabel OpBranch %38 - %43 = OpLabel - %45 = OpAccessChain %_ptr_Workgroup_half %arg_0 %39 - OpStore %45 %half_0x0p_0 NonPrivatePointer + %47 = OpLabel + %49 = OpAccessChain %_ptr_Workgroup_half %arg_0 %39 + OpStore %49 %half_0x0p_0 NonPrivatePointer OpBranch %36 %36 = OpLabel %40 = OpIAdd %uint %39 %uint_1 OpBranch %37 %38 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %49 = OpFunctionCall %void %subgroupMatrixStore_d07581 + %44 = OpFunctionCall %void %subgroupMatrixStore_d07581 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %11
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.spvasm index 31b8428..45623ae 100644 --- a/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.spvasm
@@ -43,9 +43,9 @@ %_ptr_Function_17 = OpTypePointer Function %17 %_ptr_Workgroup_float = OpTypePointer Workgroup %float %33 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 + %bool = OpTypeBool %subgroupMatrixStore_dc92cf = OpFunction %void None %11 %12 = OpLabel %arg_1 = OpVariable %_ptr_Function_uint Function @@ -72,21 +72,21 @@ OpLoopMerge %39 %37 None OpBranch %36 %36 = OpLabel - %42 = OpUGreaterThanEqual %bool %40 %uint_64 - OpSelectionMerge %44 None - OpBranchConditional %42 %45 %44 - %45 = OpLabel + %46 = OpUGreaterThanEqual %bool %40 %uint_64 + OpSelectionMerge %48 None + OpBranchConditional %46 %49 %48 + %49 = OpLabel OpBranch %39 - %44 = OpLabel - %46 = OpAccessChain %_ptr_Workgroup_float %arg_0 %40 - OpStore %46 %float_0 NonPrivatePointer + %48 = OpLabel + %50 = OpAccessChain %_ptr_Workgroup_float %arg_0 %40 + OpStore %50 %float_0 NonPrivatePointer OpBranch %37 %37 = OpLabel %41 = OpIAdd %uint %40 %uint_1 OpBranch %38 %39 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %50 = OpFunctionCall %void %subgroupMatrixStore_dc92cf + %45 = OpFunctionCall %void %subgroupMatrixStore_dc92cf OpReturn OpFunctionEnd %compute_main = OpFunction %void None %11
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.spvasm index d3254ce..4623fcc 100644 --- a/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.spvasm
@@ -46,9 +46,9 @@ %_ptr_Function_17 = OpTypePointer Function %17 %_ptr_Workgroup_half = OpTypePointer Workgroup %half %33 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_2 = OpConstant %uint 2 %uint_24840 = OpConstant %uint 24840 + %bool = OpTypeBool %subgroupMatrixStore_ee1195 = OpFunction %void None %11 %12 = OpLabel %arg_1 = OpVariable %_ptr_Function_uint Function @@ -75,21 +75,21 @@ OpLoopMerge %39 %37 None OpBranch %36 %36 = OpLabel - %42 = OpUGreaterThanEqual %bool %40 %uint_64 - OpSelectionMerge %44 None - OpBranchConditional %42 %45 %44 - %45 = OpLabel + %46 = OpUGreaterThanEqual %bool %40 %uint_64 + OpSelectionMerge %48 None + OpBranchConditional %46 %49 %48 + %49 = OpLabel OpBranch %39 - %44 = OpLabel - %46 = OpAccessChain %_ptr_Workgroup_half %arg_0 %40 - OpStore %46 %half_0x0p_0 NonPrivatePointer + %48 = OpLabel + %50 = OpAccessChain %_ptr_Workgroup_half %arg_0 %40 + OpStore %50 %half_0x0p_0 NonPrivatePointer OpBranch %37 %37 = OpLabel %41 = OpIAdd %uint %40 %uint_1 OpBranch %38 %39 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %50 = OpFunctionCall %void %subgroupMatrixStore_ee1195 + %45 = OpFunctionCall %void %subgroupMatrixStore_ee1195 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %11
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.spvasm index 6d9c265..0136b94 100644 --- a/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.spvasm
@@ -43,8 +43,8 @@ %_ptr_Function_17 = OpTypePointer Function %17 %_ptr_Workgroup_int = OpTypePointer Workgroup %int %33 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_24840 = OpConstant %uint 24840 + %bool = OpTypeBool %subgroupMatrixStore_f04d67 = OpFunction %void None %11 %12 = OpLabel %arg_1 = OpVariable %_ptr_Function_uint Function @@ -71,21 +71,21 @@ OpLoopMerge %39 %37 None OpBranch %36 %36 = OpLabel - %42 = OpUGreaterThanEqual %bool %40 %uint_64 - OpSelectionMerge %44 None - OpBranchConditional %42 %45 %44 - %45 = OpLabel + %45 = OpUGreaterThanEqual %bool %40 %uint_64 + OpSelectionMerge %47 None + OpBranchConditional %45 %48 %47 + %48 = OpLabel OpBranch %39 - %44 = OpLabel - %46 = OpAccessChain %_ptr_Workgroup_int %arg_0 %40 - OpStore %46 %int_0 NonPrivatePointer + %47 = OpLabel + %49 = OpAccessChain %_ptr_Workgroup_int %arg_0 %40 + OpStore %49 %int_0 NonPrivatePointer OpBranch %37 %37 = OpLabel %41 = OpIAdd %uint %40 %uint_1 OpBranch %38 %39 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_24840 - %49 = OpFunctionCall %void %subgroupMatrixStore_f04d67 + %44 = OpFunctionCall %void %subgroupMatrixStore_f04d67 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %11
diff --git a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.spvasm index d6e8b76..b74ac48 100644 --- a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.spvasm
@@ -207,40 +207,40 @@ OpSelectionMerge %77 None OpBranchConditional %75 %78 %79 %78 = OpLabel - %80 = OpImageFetch %v4float %plane_0 %73 Lod %uint_0 - %81 = OpVectorShuffle %v3float %80 %80 0 1 2 - %82 = OpCompositeExtract %float %80 3 + %92 = OpImageFetch %v4float %plane_0 %73 Lod %uint_0 + %81 = OpVectorShuffle %v3float %92 %92 0 1 2 + %84 = OpCompositeExtract %float %92 3 OpBranch %77 %79 = OpLabel - %83 = OpImageFetch %v4float %plane_0 %73 Lod %uint_0 - %84 = OpCompositeExtract %float %83 0 - %85 = OpFMul %v2float %72 %66 - %86 = OpConvertFToU %v2uint %85 - %87 = OpImageFetch %v4float %plane_1 %86 Lod %uint_0 - %88 = OpVectorShuffle %v2float %87 %87 0 1 - %89 = OpCompositeConstruct %v4float %84 %88 %float_1 - %90 = OpVectorTimesMatrix %v3float %89 %63 + %93 = OpImageFetch %v4float %plane_0 %73 Lod %uint_0 + %94 = OpCompositeExtract %float %93 0 + %95 = OpFMul %v2float %72 %66 + %96 = OpConvertFToU %v2uint %95 + %97 = OpImageFetch %v4float %plane_1 %96 Lod %uint_0 + %98 = OpVectorShuffle %v2float %97 %97 0 1 + %99 = OpCompositeConstruct %v4float %94 %98 %float_1 + %82 = OpVectorTimesMatrix %v3float %99 %63 OpBranch %77 %77 = OpLabel - %91 = OpPhi %v3float %81 %78 %90 %79 - %92 = OpPhi %float %82 %78 %float_1 %79 - %93 = OpIEqual %bool %62 %uint_0 - OpSelectionMerge %94 None - OpBranchConditional %93 %95 %96 - %95 = OpLabel - %97 = OpCompositeExtract %tint_GammaTransferParams %params 3 - %98 = OpCompositeExtract %tint_GammaTransferParams %params 4 - %99 = OpCompositeExtract %mat3v3float %params 5 - %100 = OpFunctionCall %v3float %tint_GammaCorrection %91 %97 - %102 = OpMatrixTimesVector %v3float %99 %100 - %103 = OpFunctionCall %v3float %tint_GammaCorrection %102 %98 - OpBranch %94 - %96 = OpLabel - OpBranch %94 - %94 = OpLabel - %104 = OpPhi %v3float %103 %95 %91 %96 - %105 = OpCompositeConstruct %v4float %104 %92 - OpReturnValue %105 + %80 = OpPhi %v3float %81 %78 %82 %79 + %83 = OpPhi %float %84 %78 %float_1 %79 + %85 = OpIEqual %bool %62 %uint_0 + OpSelectionMerge %86 None + OpBranchConditional %85 %87 %88 + %87 = OpLabel + %100 = OpCompositeExtract %tint_GammaTransferParams %params 3 + %101 = OpCompositeExtract %tint_GammaTransferParams %params 4 + %102 = OpCompositeExtract %mat3v3float %params 5 + %103 = OpFunctionCall %v3float %tint_GammaCorrection %80 %100 + %105 = OpMatrixTimesVector %v3float %102 %103 + %90 = OpFunctionCall %v3float %tint_GammaCorrection %105 %101 + OpBranch %86 + %88 = OpLabel + OpBranch %86 + %86 = OpLabel + %89 = OpPhi %v3float %90 %87 %80 %88 + %91 = OpCompositeConstruct %v4float %89 %83 + OpReturnValue %91 OpFunctionEnd %tint_GammaCorrection = OpFunction %v3float None %108 %v = OpFunctionParameter %v3float @@ -510,40 +510,40 @@ OpSelectionMerge %77 None OpBranchConditional %75 %78 %79 %78 = OpLabel - %80 = OpImageFetch %v4float %plane_0 %73 Lod %uint_0 - %81 = OpVectorShuffle %v3float %80 %80 0 1 2 - %82 = OpCompositeExtract %float %80 3 + %92 = OpImageFetch %v4float %plane_0 %73 Lod %uint_0 + %81 = OpVectorShuffle %v3float %92 %92 0 1 2 + %84 = OpCompositeExtract %float %92 3 OpBranch %77 %79 = OpLabel - %83 = OpImageFetch %v4float %plane_0 %73 Lod %uint_0 - %84 = OpCompositeExtract %float %83 0 - %85 = OpFMul %v2float %72 %66 - %86 = OpConvertFToU %v2uint %85 - %87 = OpImageFetch %v4float %plane_1 %86 Lod %uint_0 - %88 = OpVectorShuffle %v2float %87 %87 0 1 - %89 = OpCompositeConstruct %v4float %84 %88 %float_1 - %90 = OpVectorTimesMatrix %v3float %89 %63 + %93 = OpImageFetch %v4float %plane_0 %73 Lod %uint_0 + %94 = OpCompositeExtract %float %93 0 + %95 = OpFMul %v2float %72 %66 + %96 = OpConvertFToU %v2uint %95 + %97 = OpImageFetch %v4float %plane_1 %96 Lod %uint_0 + %98 = OpVectorShuffle %v2float %97 %97 0 1 + %99 = OpCompositeConstruct %v4float %94 %98 %float_1 + %82 = OpVectorTimesMatrix %v3float %99 %63 OpBranch %77 %77 = OpLabel - %91 = OpPhi %v3float %81 %78 %90 %79 - %92 = OpPhi %float %82 %78 %float_1 %79 - %93 = OpIEqual %bool %62 %uint_0 - OpSelectionMerge %94 None - OpBranchConditional %93 %95 %96 - %95 = OpLabel - %97 = OpCompositeExtract %tint_GammaTransferParams %params 3 - %98 = OpCompositeExtract %tint_GammaTransferParams %params 4 - %99 = OpCompositeExtract %mat3v3float %params 5 - %100 = OpFunctionCall %v3float %tint_GammaCorrection %91 %97 - %102 = OpMatrixTimesVector %v3float %99 %100 - %103 = OpFunctionCall %v3float %tint_GammaCorrection %102 %98 - OpBranch %94 - %96 = OpLabel - OpBranch %94 - %94 = OpLabel - %104 = OpPhi %v3float %103 %95 %91 %96 - %105 = OpCompositeConstruct %v4float %104 %92 - OpReturnValue %105 + %80 = OpPhi %v3float %81 %78 %82 %79 + %83 = OpPhi %float %84 %78 %float_1 %79 + %85 = OpIEqual %bool %62 %uint_0 + OpSelectionMerge %86 None + OpBranchConditional %85 %87 %88 + %87 = OpLabel + %100 = OpCompositeExtract %tint_GammaTransferParams %params 3 + %101 = OpCompositeExtract %tint_GammaTransferParams %params 4 + %102 = OpCompositeExtract %mat3v3float %params 5 + %103 = OpFunctionCall %v3float %tint_GammaCorrection %80 %100 + %105 = OpMatrixTimesVector %v3float %102 %103 + %90 = OpFunctionCall %v3float %tint_GammaCorrection %105 %101 + OpBranch %86 + %88 = OpLabel + OpBranch %86 + %86 = OpLabel + %89 = OpPhi %v3float %90 %87 %80 %88 + %91 = OpCompositeConstruct %v4float %89 %83 + OpReturnValue %91 OpFunctionEnd %tint_GammaCorrection = OpFunction %v3float None %108 %v = OpFunctionParameter %v3float @@ -827,40 +827,40 @@ OpSelectionMerge %84 None OpBranchConditional %82 %85 %86 %85 = OpLabel - %87 = OpImageFetch %v4float %plane_0 %80 Lod %uint_0 - %88 = OpVectorShuffle %v3float %87 %87 0 1 2 - %89 = OpCompositeExtract %float %87 3 + %99 = OpImageFetch %v4float %plane_0 %80 Lod %uint_0 + %88 = OpVectorShuffle %v3float %99 %99 0 1 2 + %91 = OpCompositeExtract %float %99 3 OpBranch %84 %86 = OpLabel - %90 = OpImageFetch %v4float %plane_0 %80 Lod %uint_0 - %91 = OpCompositeExtract %float %90 0 - %92 = OpFMul %v2float %79 %73 - %93 = OpConvertFToU %v2uint %92 - %94 = OpImageFetch %v4float %plane_1 %93 Lod %uint_0 - %95 = OpVectorShuffle %v2float %94 %94 0 1 - %96 = OpCompositeConstruct %v4float %91 %95 %float_1 - %97 = OpVectorTimesMatrix %v3float %96 %70 + %100 = OpImageFetch %v4float %plane_0 %80 Lod %uint_0 + %101 = OpCompositeExtract %float %100 0 + %102 = OpFMul %v2float %79 %73 + %103 = OpConvertFToU %v2uint %102 + %104 = OpImageFetch %v4float %plane_1 %103 Lod %uint_0 + %105 = OpVectorShuffle %v2float %104 %104 0 1 + %106 = OpCompositeConstruct %v4float %101 %105 %float_1 + %89 = OpVectorTimesMatrix %v3float %106 %70 OpBranch %84 %84 = OpLabel - %98 = OpPhi %v3float %88 %85 %97 %86 - %99 = OpPhi %float %89 %85 %float_1 %86 - %100 = OpIEqual %bool %69 %uint_0 - OpSelectionMerge %101 None - OpBranchConditional %100 %102 %103 - %102 = OpLabel - %104 = OpCompositeExtract %tint_GammaTransferParams %params 3 - %105 = OpCompositeExtract %tint_GammaTransferParams %params 4 - %106 = OpCompositeExtract %mat3v3float %params 5 - %107 = OpFunctionCall %v3float %tint_GammaCorrection %98 %104 - %109 = OpMatrixTimesVector %v3float %106 %107 - %110 = OpFunctionCall %v3float %tint_GammaCorrection %109 %105 - OpBranch %101 - %103 = OpLabel - OpBranch %101 - %101 = OpLabel - %111 = OpPhi %v3float %110 %102 %98 %103 - %112 = OpCompositeConstruct %v4float %111 %99 - OpReturnValue %112 + %87 = OpPhi %v3float %88 %85 %89 %86 + %90 = OpPhi %float %91 %85 %float_1 %86 + %92 = OpIEqual %bool %69 %uint_0 + OpSelectionMerge %93 None + OpBranchConditional %92 %94 %95 + %94 = OpLabel + %107 = OpCompositeExtract %tint_GammaTransferParams %params 3 + %108 = OpCompositeExtract %tint_GammaTransferParams %params 4 + %109 = OpCompositeExtract %mat3v3float %params 5 + %110 = OpFunctionCall %v3float %tint_GammaCorrection %87 %107 + %112 = OpMatrixTimesVector %v3float %109 %110 + %97 = OpFunctionCall %v3float %tint_GammaCorrection %112 %108 + OpBranch %93 + %95 = OpLabel + OpBranch %93 + %93 = OpLabel + %96 = OpPhi %v3float %97 %94 %87 %95 + %98 = OpCompositeConstruct %v4float %96 %90 + OpReturnValue %98 OpFunctionEnd %tint_GammaCorrection = OpFunction %v3float None %115 %v = OpFunctionParameter %v3float
diff --git a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.spvasm index c3f4998..ce0d5b4 100644 --- a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.spvasm
@@ -212,40 +212,40 @@ OpSelectionMerge %82 None OpBranchConditional %80 %83 %84 %83 = OpLabel - %85 = OpImageFetch %v4float %plane_0 %78 Lod %uint_0 - %86 = OpVectorShuffle %v3float %85 %85 0 1 2 - %87 = OpCompositeExtract %float %85 3 + %97 = OpImageFetch %v4float %plane_0 %78 Lod %uint_0 + %86 = OpVectorShuffle %v3float %97 %97 0 1 2 + %89 = OpCompositeExtract %float %97 3 OpBranch %82 %84 = OpLabel - %88 = OpImageFetch %v4float %plane_0 %78 Lod %uint_0 - %89 = OpCompositeExtract %float %88 0 - %90 = OpFMul %v2float %77 %71 - %91 = OpConvertFToU %v2uint %90 - %92 = OpImageFetch %v4float %plane_1 %91 Lod %uint_0 - %93 = OpVectorShuffle %v2float %92 %92 0 1 - %94 = OpCompositeConstruct %v4float %89 %93 %float_1 - %95 = OpVectorTimesMatrix %v3float %94 %68 + %98 = OpImageFetch %v4float %plane_0 %78 Lod %uint_0 + %99 = OpCompositeExtract %float %98 0 + %100 = OpFMul %v2float %77 %71 + %101 = OpConvertFToU %v2uint %100 + %102 = OpImageFetch %v4float %plane_1 %101 Lod %uint_0 + %103 = OpVectorShuffle %v2float %102 %102 0 1 + %104 = OpCompositeConstruct %v4float %99 %103 %float_1 + %87 = OpVectorTimesMatrix %v3float %104 %68 OpBranch %82 %82 = OpLabel - %96 = OpPhi %v3float %86 %83 %95 %84 - %97 = OpPhi %float %87 %83 %float_1 %84 - %98 = OpIEqual %bool %67 %uint_0 - OpSelectionMerge %99 None - OpBranchConditional %98 %100 %101 - %100 = OpLabel - %102 = OpCompositeExtract %tint_GammaTransferParams %params 3 - %103 = OpCompositeExtract %tint_GammaTransferParams %params 4 - %104 = OpCompositeExtract %mat3v3float %params 5 - %105 = OpFunctionCall %v3float %tint_GammaCorrection %96 %102 - %107 = OpMatrixTimesVector %v3float %104 %105 - %108 = OpFunctionCall %v3float %tint_GammaCorrection %107 %103 - OpBranch %99 - %101 = OpLabel - OpBranch %99 - %99 = OpLabel - %109 = OpPhi %v3float %108 %100 %96 %101 - %110 = OpCompositeConstruct %v4float %109 %97 - OpReturnValue %110 + %85 = OpPhi %v3float %86 %83 %87 %84 + %88 = OpPhi %float %89 %83 %float_1 %84 + %90 = OpIEqual %bool %67 %uint_0 + OpSelectionMerge %91 None + OpBranchConditional %90 %92 %93 + %92 = OpLabel + %105 = OpCompositeExtract %tint_GammaTransferParams %params 3 + %106 = OpCompositeExtract %tint_GammaTransferParams %params 4 + %107 = OpCompositeExtract %mat3v3float %params 5 + %108 = OpFunctionCall %v3float %tint_GammaCorrection %85 %105 + %110 = OpMatrixTimesVector %v3float %107 %108 + %95 = OpFunctionCall %v3float %tint_GammaCorrection %110 %106 + OpBranch %91 + %93 = OpLabel + OpBranch %91 + %91 = OpLabel + %94 = OpPhi %v3float %95 %92 %85 %93 + %96 = OpCompositeConstruct %v4float %94 %88 + OpReturnValue %96 OpFunctionEnd %tint_GammaCorrection = OpFunction %v3float None %113 %v = OpFunctionParameter %v3float @@ -520,40 +520,40 @@ OpSelectionMerge %82 None OpBranchConditional %80 %83 %84 %83 = OpLabel - %85 = OpImageFetch %v4float %plane_0 %78 Lod %uint_0 - %86 = OpVectorShuffle %v3float %85 %85 0 1 2 - %87 = OpCompositeExtract %float %85 3 + %97 = OpImageFetch %v4float %plane_0 %78 Lod %uint_0 + %86 = OpVectorShuffle %v3float %97 %97 0 1 2 + %89 = OpCompositeExtract %float %97 3 OpBranch %82 %84 = OpLabel - %88 = OpImageFetch %v4float %plane_0 %78 Lod %uint_0 - %89 = OpCompositeExtract %float %88 0 - %90 = OpFMul %v2float %77 %71 - %91 = OpConvertFToU %v2uint %90 - %92 = OpImageFetch %v4float %plane_1 %91 Lod %uint_0 - %93 = OpVectorShuffle %v2float %92 %92 0 1 - %94 = OpCompositeConstruct %v4float %89 %93 %float_1 - %95 = OpVectorTimesMatrix %v3float %94 %68 + %98 = OpImageFetch %v4float %plane_0 %78 Lod %uint_0 + %99 = OpCompositeExtract %float %98 0 + %100 = OpFMul %v2float %77 %71 + %101 = OpConvertFToU %v2uint %100 + %102 = OpImageFetch %v4float %plane_1 %101 Lod %uint_0 + %103 = OpVectorShuffle %v2float %102 %102 0 1 + %104 = OpCompositeConstruct %v4float %99 %103 %float_1 + %87 = OpVectorTimesMatrix %v3float %104 %68 OpBranch %82 %82 = OpLabel - %96 = OpPhi %v3float %86 %83 %95 %84 - %97 = OpPhi %float %87 %83 %float_1 %84 - %98 = OpIEqual %bool %67 %uint_0 - OpSelectionMerge %99 None - OpBranchConditional %98 %100 %101 - %100 = OpLabel - %102 = OpCompositeExtract %tint_GammaTransferParams %params 3 - %103 = OpCompositeExtract %tint_GammaTransferParams %params 4 - %104 = OpCompositeExtract %mat3v3float %params 5 - %105 = OpFunctionCall %v3float %tint_GammaCorrection %96 %102 - %107 = OpMatrixTimesVector %v3float %104 %105 - %108 = OpFunctionCall %v3float %tint_GammaCorrection %107 %103 - OpBranch %99 - %101 = OpLabel - OpBranch %99 - %99 = OpLabel - %109 = OpPhi %v3float %108 %100 %96 %101 - %110 = OpCompositeConstruct %v4float %109 %97 - OpReturnValue %110 + %85 = OpPhi %v3float %86 %83 %87 %84 + %88 = OpPhi %float %89 %83 %float_1 %84 + %90 = OpIEqual %bool %67 %uint_0 + OpSelectionMerge %91 None + OpBranchConditional %90 %92 %93 + %92 = OpLabel + %105 = OpCompositeExtract %tint_GammaTransferParams %params 3 + %106 = OpCompositeExtract %tint_GammaTransferParams %params 4 + %107 = OpCompositeExtract %mat3v3float %params 5 + %108 = OpFunctionCall %v3float %tint_GammaCorrection %85 %105 + %110 = OpMatrixTimesVector %v3float %107 %108 + %95 = OpFunctionCall %v3float %tint_GammaCorrection %110 %106 + OpBranch %91 + %93 = OpLabel + OpBranch %91 + %91 = OpLabel + %94 = OpPhi %v3float %95 %92 %85 %93 + %96 = OpCompositeConstruct %v4float %94 %88 + OpReturnValue %96 OpFunctionEnd %tint_GammaCorrection = OpFunction %v3float None %113 %v = OpFunctionParameter %v3float @@ -842,40 +842,40 @@ OpSelectionMerge %89 None OpBranchConditional %87 %90 %91 %90 = OpLabel - %92 = OpImageFetch %v4float %plane_0 %85 Lod %uint_0 - %93 = OpVectorShuffle %v3float %92 %92 0 1 2 - %94 = OpCompositeExtract %float %92 3 + %104 = OpImageFetch %v4float %plane_0 %85 Lod %uint_0 + %93 = OpVectorShuffle %v3float %104 %104 0 1 2 + %96 = OpCompositeExtract %float %104 3 OpBranch %89 %91 = OpLabel - %95 = OpImageFetch %v4float %plane_0 %85 Lod %uint_0 - %96 = OpCompositeExtract %float %95 0 - %97 = OpFMul %v2float %84 %78 - %98 = OpConvertFToU %v2uint %97 - %99 = OpImageFetch %v4float %plane_1 %98 Lod %uint_0 - %100 = OpVectorShuffle %v2float %99 %99 0 1 - %101 = OpCompositeConstruct %v4float %96 %100 %float_1 - %102 = OpVectorTimesMatrix %v3float %101 %75 + %105 = OpImageFetch %v4float %plane_0 %85 Lod %uint_0 + %106 = OpCompositeExtract %float %105 0 + %107 = OpFMul %v2float %84 %78 + %108 = OpConvertFToU %v2uint %107 + %109 = OpImageFetch %v4float %plane_1 %108 Lod %uint_0 + %110 = OpVectorShuffle %v2float %109 %109 0 1 + %111 = OpCompositeConstruct %v4float %106 %110 %float_1 + %94 = OpVectorTimesMatrix %v3float %111 %75 OpBranch %89 %89 = OpLabel - %103 = OpPhi %v3float %93 %90 %102 %91 - %104 = OpPhi %float %94 %90 %float_1 %91 - %105 = OpIEqual %bool %74 %uint_0 - OpSelectionMerge %106 None - OpBranchConditional %105 %107 %108 - %107 = OpLabel - %109 = OpCompositeExtract %tint_GammaTransferParams %params 3 - %110 = OpCompositeExtract %tint_GammaTransferParams %params 4 - %111 = OpCompositeExtract %mat3v3float %params 5 - %112 = OpFunctionCall %v3float %tint_GammaCorrection %103 %109 - %114 = OpMatrixTimesVector %v3float %111 %112 - %115 = OpFunctionCall %v3float %tint_GammaCorrection %114 %110 - OpBranch %106 - %108 = OpLabel - OpBranch %106 - %106 = OpLabel - %116 = OpPhi %v3float %115 %107 %103 %108 - %117 = OpCompositeConstruct %v4float %116 %104 - OpReturnValue %117 + %92 = OpPhi %v3float %93 %90 %94 %91 + %95 = OpPhi %float %96 %90 %float_1 %91 + %97 = OpIEqual %bool %74 %uint_0 + OpSelectionMerge %98 None + OpBranchConditional %97 %99 %100 + %99 = OpLabel + %112 = OpCompositeExtract %tint_GammaTransferParams %params 3 + %113 = OpCompositeExtract %tint_GammaTransferParams %params 4 + %114 = OpCompositeExtract %mat3v3float %params 5 + %115 = OpFunctionCall %v3float %tint_GammaCorrection %92 %112 + %117 = OpMatrixTimesVector %v3float %114 %115 + %102 = OpFunctionCall %v3float %tint_GammaCorrection %117 %113 + OpBranch %98 + %100 = OpLabel + OpBranch %98 + %98 = OpLabel + %101 = OpPhi %v3float %102 %99 %92 %100 + %103 = OpCompositeConstruct %v4float %101 %95 + OpReturnValue %103 OpFunctionEnd %tint_GammaCorrection = OpFunction %v3float None %120 %v = OpFunctionParameter %v3float
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.spvasm index 46f4e57..7a0f205 100644 --- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.spvasm
@@ -162,7 +162,7 @@ %60 = OpTypeFunction %v4float %8 %8 %tint_ExternalTextureParams %22 %v2float %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %81 = OpTypeSampledImage %8 + %93 = OpTypeSampledImage %8 %float_0 = OpConstant %float 0 %112 = OpTypeFunction %v3float %v3float %tint_GammaTransferParams %v3bool = OpTypeVector %bool 3 @@ -213,42 +213,42 @@ OpSelectionMerge %77 None OpBranchConditional %74 %78 %79 %78 = OpLabel - %80 = OpSampledImage %81 %plane_0 %tint_sampler - %82 = OpImageSampleExplicitLod %v4float %80 %71 Lod %float_0 - %84 = OpVectorShuffle %v3float %82 %82 0 1 2 - %85 = OpCompositeExtract %float %82 3 + %92 = OpSampledImage %93 %plane_0 %tint_sampler + %94 = OpImageSampleExplicitLod %v4float %92 %71 Lod %float_0 + %81 = OpVectorShuffle %v3float %94 %94 0 1 2 + %84 = OpCompositeExtract %float %94 3 OpBranch %77 %79 = OpLabel - %86 = OpSampledImage %81 %plane_0 %tint_sampler - %87 = OpImageSampleExplicitLod %v4float %86 %71 Lod %float_0 - %88 = OpCompositeExtract %float %87 0 - %89 = OpExtInst %v2float %72 NClamp %70 %67 %68 - %90 = OpSampledImage %81 %plane_1 %tint_sampler - %91 = OpImageSampleExplicitLod %v4float %90 %89 Lod %float_0 - %92 = OpVectorShuffle %v2float %91 %91 0 1 - %93 = OpCompositeConstruct %v4float %88 %92 %float_1 - %94 = OpVectorTimesMatrix %v3float %93 %63 + %96 = OpSampledImage %93 %plane_0 %tint_sampler + %97 = OpImageSampleExplicitLod %v4float %96 %71 Lod %float_0 + %98 = OpCompositeExtract %float %97 0 + %99 = OpExtInst %v2float %72 NClamp %70 %67 %68 + %100 = OpSampledImage %93 %plane_1 %tint_sampler + %101 = OpImageSampleExplicitLod %v4float %100 %99 Lod %float_0 + %102 = OpVectorShuffle %v2float %101 %101 0 1 + %103 = OpCompositeConstruct %v4float %98 %102 %float_1 + %82 = OpVectorTimesMatrix %v3float %103 %63 OpBranch %77 %77 = OpLabel - %95 = OpPhi %v3float %84 %78 %94 %79 - %96 = OpPhi %float %85 %78 %float_1 %79 - %97 = OpIEqual %bool %62 %uint_0 - OpSelectionMerge %98 None - OpBranchConditional %97 %99 %100 - %99 = OpLabel - %101 = OpCompositeExtract %tint_GammaTransferParams %params 3 - %102 = OpCompositeExtract %tint_GammaTransferParams %params 4 - %103 = OpCompositeExtract %mat3v3float %params 5 - %104 = OpFunctionCall %v3float %tint_GammaCorrection %95 %101 - %106 = OpMatrixTimesVector %v3float %103 %104 - %107 = OpFunctionCall %v3float %tint_GammaCorrection %106 %102 - OpBranch %98 - %100 = OpLabel - OpBranch %98 - %98 = OpLabel - %108 = OpPhi %v3float %107 %99 %95 %100 - %109 = OpCompositeConstruct %v4float %108 %96 - OpReturnValue %109 + %80 = OpPhi %v3float %81 %78 %82 %79 + %83 = OpPhi %float %84 %78 %float_1 %79 + %85 = OpIEqual %bool %62 %uint_0 + OpSelectionMerge %86 None + OpBranchConditional %85 %87 %88 + %87 = OpLabel + %104 = OpCompositeExtract %tint_GammaTransferParams %params 3 + %105 = OpCompositeExtract %tint_GammaTransferParams %params 4 + %106 = OpCompositeExtract %mat3v3float %params 5 + %107 = OpFunctionCall %v3float %tint_GammaCorrection %80 %104 + %109 = OpMatrixTimesVector %v3float %106 %107 + %90 = OpFunctionCall %v3float %tint_GammaCorrection %109 %105 + OpBranch %86 + %88 = OpLabel + OpBranch %86 + %86 = OpLabel + %89 = OpPhi %v3float %90 %87 %80 %88 + %91 = OpCompositeConstruct %v4float %89 %83 + OpReturnValue %91 OpFunctionEnd %tint_GammaCorrection = OpFunction %v3float None %112 %v = OpFunctionParameter %v3float @@ -473,7 +473,7 @@ %60 = OpTypeFunction %v4float %8 %8 %tint_ExternalTextureParams %22 %v2float %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %81 = OpTypeSampledImage %8 + %93 = OpTypeSampledImage %8 %float_0 = OpConstant %float 0 %112 = OpTypeFunction %v3float %v3float %tint_GammaTransferParams %v3bool = OpTypeVector %bool 3 @@ -524,42 +524,42 @@ OpSelectionMerge %77 None OpBranchConditional %74 %78 %79 %78 = OpLabel - %80 = OpSampledImage %81 %plane_0 %tint_sampler - %82 = OpImageSampleExplicitLod %v4float %80 %71 Lod %float_0 - %84 = OpVectorShuffle %v3float %82 %82 0 1 2 - %85 = OpCompositeExtract %float %82 3 + %92 = OpSampledImage %93 %plane_0 %tint_sampler + %94 = OpImageSampleExplicitLod %v4float %92 %71 Lod %float_0 + %81 = OpVectorShuffle %v3float %94 %94 0 1 2 + %84 = OpCompositeExtract %float %94 3 OpBranch %77 %79 = OpLabel - %86 = OpSampledImage %81 %plane_0 %tint_sampler - %87 = OpImageSampleExplicitLod %v4float %86 %71 Lod %float_0 - %88 = OpCompositeExtract %float %87 0 - %89 = OpExtInst %v2float %72 NClamp %70 %67 %68 - %90 = OpSampledImage %81 %plane_1 %tint_sampler - %91 = OpImageSampleExplicitLod %v4float %90 %89 Lod %float_0 - %92 = OpVectorShuffle %v2float %91 %91 0 1 - %93 = OpCompositeConstruct %v4float %88 %92 %float_1 - %94 = OpVectorTimesMatrix %v3float %93 %63 + %96 = OpSampledImage %93 %plane_0 %tint_sampler + %97 = OpImageSampleExplicitLod %v4float %96 %71 Lod %float_0 + %98 = OpCompositeExtract %float %97 0 + %99 = OpExtInst %v2float %72 NClamp %70 %67 %68 + %100 = OpSampledImage %93 %plane_1 %tint_sampler + %101 = OpImageSampleExplicitLod %v4float %100 %99 Lod %float_0 + %102 = OpVectorShuffle %v2float %101 %101 0 1 + %103 = OpCompositeConstruct %v4float %98 %102 %float_1 + %82 = OpVectorTimesMatrix %v3float %103 %63 OpBranch %77 %77 = OpLabel - %95 = OpPhi %v3float %84 %78 %94 %79 - %96 = OpPhi %float %85 %78 %float_1 %79 - %97 = OpIEqual %bool %62 %uint_0 - OpSelectionMerge %98 None - OpBranchConditional %97 %99 %100 - %99 = OpLabel - %101 = OpCompositeExtract %tint_GammaTransferParams %params 3 - %102 = OpCompositeExtract %tint_GammaTransferParams %params 4 - %103 = OpCompositeExtract %mat3v3float %params 5 - %104 = OpFunctionCall %v3float %tint_GammaCorrection %95 %101 - %106 = OpMatrixTimesVector %v3float %103 %104 - %107 = OpFunctionCall %v3float %tint_GammaCorrection %106 %102 - OpBranch %98 - %100 = OpLabel - OpBranch %98 - %98 = OpLabel - %108 = OpPhi %v3float %107 %99 %95 %100 - %109 = OpCompositeConstruct %v4float %108 %96 - OpReturnValue %109 + %80 = OpPhi %v3float %81 %78 %82 %79 + %83 = OpPhi %float %84 %78 %float_1 %79 + %85 = OpIEqual %bool %62 %uint_0 + OpSelectionMerge %86 None + OpBranchConditional %85 %87 %88 + %87 = OpLabel + %104 = OpCompositeExtract %tint_GammaTransferParams %params 3 + %105 = OpCompositeExtract %tint_GammaTransferParams %params 4 + %106 = OpCompositeExtract %mat3v3float %params 5 + %107 = OpFunctionCall %v3float %tint_GammaCorrection %80 %104 + %109 = OpMatrixTimesVector %v3float %106 %107 + %90 = OpFunctionCall %v3float %tint_GammaCorrection %109 %105 + OpBranch %86 + %88 = OpLabel + OpBranch %86 + %86 = OpLabel + %89 = OpPhi %v3float %90 %87 %80 %88 + %91 = OpCompositeConstruct %v4float %89 %83 + OpReturnValue %91 OpFunctionEnd %tint_GammaCorrection = OpFunction %v3float None %112 %v = OpFunctionParameter %v3float @@ -792,7 +792,7 @@ %uint_1 = OpConstant %uint 1 %68 = OpTypeFunction %v4float %3 %3 %tint_ExternalTextureParams %19 %v2float %bool = OpTypeBool - %88 = OpTypeSampledImage %3 + %100 = OpTypeSampledImage %3 %float_0 = OpConstant %float 0 %119 = OpTypeFunction %v3float %v3float %tint_GammaTransferParams %v3bool = OpTypeVector %bool 3 @@ -849,42 +849,42 @@ OpSelectionMerge %84 None OpBranchConditional %82 %85 %86 %85 = OpLabel - %87 = OpSampledImage %88 %plane_0 %tint_sampler - %89 = OpImageSampleExplicitLod %v4float %87 %79 Lod %float_0 - %91 = OpVectorShuffle %v3float %89 %89 0 1 2 - %92 = OpCompositeExtract %float %89 3 + %99 = OpSampledImage %100 %plane_0 %tint_sampler + %101 = OpImageSampleExplicitLod %v4float %99 %79 Lod %float_0 + %88 = OpVectorShuffle %v3float %101 %101 0 1 2 + %91 = OpCompositeExtract %float %101 3 OpBranch %84 %86 = OpLabel - %93 = OpSampledImage %88 %plane_0 %tint_sampler - %94 = OpImageSampleExplicitLod %v4float %93 %79 Lod %float_0 - %95 = OpCompositeExtract %float %94 0 - %96 = OpExtInst %v2float %80 NClamp %78 %75 %76 - %97 = OpSampledImage %88 %plane_1 %tint_sampler - %98 = OpImageSampleExplicitLod %v4float %97 %96 Lod %float_0 - %99 = OpVectorShuffle %v2float %98 %98 0 1 - %100 = OpCompositeConstruct %v4float %95 %99 %float_1 - %101 = OpVectorTimesMatrix %v3float %100 %71 + %103 = OpSampledImage %100 %plane_0 %tint_sampler + %104 = OpImageSampleExplicitLod %v4float %103 %79 Lod %float_0 + %105 = OpCompositeExtract %float %104 0 + %106 = OpExtInst %v2float %80 NClamp %78 %75 %76 + %107 = OpSampledImage %100 %plane_1 %tint_sampler + %108 = OpImageSampleExplicitLod %v4float %107 %106 Lod %float_0 + %109 = OpVectorShuffle %v2float %108 %108 0 1 + %110 = OpCompositeConstruct %v4float %105 %109 %float_1 + %89 = OpVectorTimesMatrix %v3float %110 %71 OpBranch %84 %84 = OpLabel - %102 = OpPhi %v3float %91 %85 %101 %86 - %103 = OpPhi %float %92 %85 %float_1 %86 - %104 = OpIEqual %bool %70 %uint_0 - OpSelectionMerge %105 None - OpBranchConditional %104 %106 %107 - %106 = OpLabel - %108 = OpCompositeExtract %tint_GammaTransferParams %params 3 - %109 = OpCompositeExtract %tint_GammaTransferParams %params 4 - %110 = OpCompositeExtract %mat3v3float %params 5 - %111 = OpFunctionCall %v3float %tint_GammaCorrection %102 %108 - %113 = OpMatrixTimesVector %v3float %110 %111 - %114 = OpFunctionCall %v3float %tint_GammaCorrection %113 %109 - OpBranch %105 - %107 = OpLabel - OpBranch %105 - %105 = OpLabel - %115 = OpPhi %v3float %114 %106 %102 %107 - %116 = OpCompositeConstruct %v4float %115 %103 - OpReturnValue %116 + %87 = OpPhi %v3float %88 %85 %89 %86 + %90 = OpPhi %float %91 %85 %float_1 %86 + %92 = OpIEqual %bool %70 %uint_0 + OpSelectionMerge %93 None + OpBranchConditional %92 %94 %95 + %94 = OpLabel + %111 = OpCompositeExtract %tint_GammaTransferParams %params 3 + %112 = OpCompositeExtract %tint_GammaTransferParams %params 4 + %113 = OpCompositeExtract %mat3v3float %params 5 + %114 = OpFunctionCall %v3float %tint_GammaCorrection %87 %111 + %116 = OpMatrixTimesVector %v3float %113 %114 + %97 = OpFunctionCall %v3float %tint_GammaCorrection %116 %112 + OpBranch %93 + %95 = OpLabel + OpBranch %93 + %93 = OpLabel + %96 = OpPhi %v3float %97 %94 %87 %95 + %98 = OpCompositeConstruct %v4float %96 %90 + OpReturnValue %98 OpFunctionEnd %tint_GammaCorrection = OpFunction %v3float None %119 %v = OpFunctionParameter %v3float
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.spvasm index 28446a3..8d1f93f 100644 --- a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.spvasm
@@ -38,8 +38,8 @@ %23 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %uint_0 = OpConstant %uint 0 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint + %uint_0 = OpConstant %uint 0 %36 = OpTypeFunction %void %workgroupUniformLoad_37307c = OpFunction %uint None %10 %11 = OpLabel @@ -62,9 +62,9 @@ OpBranch %28 %28 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %32 = OpFunctionCall %uint %workgroupUniformLoad_37307c - %33 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 - OpStore %33 %32 None + %31 = OpFunctionCall %uint %workgroupUniformLoad_37307c + %32 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 + OpStore %32 %31 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %36
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.spvasm index a6ae6d6..e3ebddd 100644 --- a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.spvasm
@@ -39,9 +39,9 @@ %24 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %float_0 = OpConstant %float 0 %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %uint_0 = OpConstant %uint 0 + %float_0 = OpConstant %float 0 %38 = OpTypeFunction %void %workgroupUniformLoad_7a857c = OpFunction %float None %11 %12 = OpLabel @@ -64,9 +64,9 @@ OpBranch %29 %29 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %33 = OpFunctionCall %float %workgroupUniformLoad_7a857c - %34 = OpAccessChain %_ptr_StorageBuffer_float %1 %uint_0 - OpStore %34 %33 None + %32 = OpFunctionCall %float %workgroupUniformLoad_7a857c + %33 = OpAccessChain %_ptr_StorageBuffer_float %1 %uint_0 + OpStore %33 %32 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %38
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.spvasm b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.spvasm index 70a60b3..e7edf27 100644 --- a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.spvasm
@@ -39,9 +39,9 @@ %24 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int %uint_0 = OpConstant %uint 0 + %int_0 = OpConstant %int 0 %38 = OpTypeFunction %void %workgroupUniformLoad_9d33de = OpFunction %int None %11 %12 = OpLabel @@ -64,9 +64,9 @@ OpBranch %29 %29 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %33 = OpFunctionCall %int %workgroupUniformLoad_9d33de - %34 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 - OpStore %34 %33 None + %32 = OpFunctionCall %int %workgroupUniformLoad_9d33de + %33 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 + OpStore %33 %32 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %38
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.spvasm b/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.spvasm index 1e46f83..ed4fca5 100644 --- a/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.spvasm
@@ -42,9 +42,9 @@ %24 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool -%half_0x0p_0 = OpConstant %half 0x0p+0 %_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half %uint_0 = OpConstant %uint 0 +%half_0x0p_0 = OpConstant %half 0x0p+0 %38 = OpTypeFunction %void %workgroupUniformLoad_e07d08 = OpFunction %half None %11 %12 = OpLabel @@ -67,9 +67,9 @@ OpBranch %29 %29 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %33 = OpFunctionCall %half %workgroupUniformLoad_e07d08 - %34 = OpAccessChain %_ptr_StorageBuffer_half %1 %uint_0 - OpStore %34 %33 None + %32 = OpFunctionCall %half %workgroupUniformLoad_e07d08 + %33 = OpAccessChain %_ptr_StorageBuffer_half %1 %uint_0 + OpStore %33 %32 None OpReturn OpFunctionEnd %compute_main = OpFunction %void None %38
diff --git a/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.spvasm b/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.spvasm index 752e34c..a1ffce7 100644 --- a/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.spvasm +++ b/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.spvasm
@@ -216,40 +216,40 @@ OpSelectionMerge %85 None OpBranchConditional %83 %86 %87 %86 = OpLabel - %88 = OpImageFetch %v4float %plane_0 %81 Lod %uint_0 - %89 = OpVectorShuffle %v3float %88 %88 0 1 2 - %90 = OpCompositeExtract %float %88 3 + %100 = OpImageFetch %v4float %plane_0 %81 Lod %uint_0 + %89 = OpVectorShuffle %v3float %100 %100 0 1 2 + %92 = OpCompositeExtract %float %100 3 OpBranch %85 %87 = OpLabel - %91 = OpImageFetch %v4float %plane_0 %81 Lod %uint_0 - %92 = OpCompositeExtract %float %91 0 - %93 = OpFMul %v2float %80 %74 - %94 = OpConvertFToU %v2uint %93 - %95 = OpImageFetch %v4float %plane_1 %94 Lod %uint_0 - %96 = OpVectorShuffle %v2float %95 %95 0 1 - %97 = OpCompositeConstruct %v4float %92 %96 %float_1 - %98 = OpVectorTimesMatrix %v3float %97 %71 + %101 = OpImageFetch %v4float %plane_0 %81 Lod %uint_0 + %102 = OpCompositeExtract %float %101 0 + %103 = OpFMul %v2float %80 %74 + %104 = OpConvertFToU %v2uint %103 + %105 = OpImageFetch %v4float %plane_1 %104 Lod %uint_0 + %106 = OpVectorShuffle %v2float %105 %105 0 1 + %107 = OpCompositeConstruct %v4float %102 %106 %float_1 + %90 = OpVectorTimesMatrix %v3float %107 %71 OpBranch %85 %85 = OpLabel - %99 = OpPhi %v3float %89 %86 %98 %87 - %100 = OpPhi %float %90 %86 %float_1 %87 - %101 = OpIEqual %bool %70 %uint_0 - OpSelectionMerge %102 None - OpBranchConditional %101 %103 %104 - %103 = OpLabel - %105 = OpCompositeExtract %tint_GammaTransferParams %params 3 - %106 = OpCompositeExtract %tint_GammaTransferParams %params 4 - %107 = OpCompositeExtract %mat3v3float %params 5 - %108 = OpFunctionCall %v3float %tint_GammaCorrection %99 %105 - %110 = OpMatrixTimesVector %v3float %107 %108 - %111 = OpFunctionCall %v3float %tint_GammaCorrection %110 %106 - OpBranch %102 - %104 = OpLabel - OpBranch %102 - %102 = OpLabel - %112 = OpPhi %v3float %111 %103 %99 %104 - %113 = OpCompositeConstruct %v4float %112 %100 - OpReturnValue %113 + %88 = OpPhi %v3float %89 %86 %90 %87 + %91 = OpPhi %float %92 %86 %float_1 %87 + %93 = OpIEqual %bool %70 %uint_0 + OpSelectionMerge %94 None + OpBranchConditional %93 %95 %96 + %95 = OpLabel + %108 = OpCompositeExtract %tint_GammaTransferParams %params 3 + %109 = OpCompositeExtract %tint_GammaTransferParams %params 4 + %110 = OpCompositeExtract %mat3v3float %params 5 + %111 = OpFunctionCall %v3float %tint_GammaCorrection %88 %108 + %113 = OpMatrixTimesVector %v3float %110 %111 + %98 = OpFunctionCall %v3float %tint_GammaCorrection %113 %109 + OpBranch %94 + %96 = OpLabel + OpBranch %94 + %94 = OpLabel + %97 = OpPhi %v3float %98 %95 %88 %96 + %99 = OpCompositeConstruct %v4float %97 %91 + OpReturnValue %99 OpFunctionEnd %tint_GammaCorrection = OpFunction %v3float None %116 %v = OpFunctionParameter %v3float @@ -525,40 +525,40 @@ OpSelectionMerge %79 None OpBranchConditional %77 %80 %81 %80 = OpLabel - %82 = OpImageFetch %v4float %plane_0 %75 Lod %uint_0 - %83 = OpVectorShuffle %v3float %82 %82 0 1 2 - %84 = OpCompositeExtract %float %82 3 + %94 = OpImageFetch %v4float %plane_0 %75 Lod %uint_0 + %83 = OpVectorShuffle %v3float %94 %94 0 1 2 + %86 = OpCompositeExtract %float %94 3 OpBranch %79 %81 = OpLabel - %85 = OpImageFetch %v4float %plane_0 %75 Lod %uint_0 - %86 = OpCompositeExtract %float %85 0 - %87 = OpFMul %v2float %74 %68 - %88 = OpConvertFToU %v2uint %87 - %89 = OpImageFetch %v4float %plane_1 %88 Lod %uint_0 - %90 = OpVectorShuffle %v2float %89 %89 0 1 - %91 = OpCompositeConstruct %v4float %86 %90 %float_1 - %92 = OpVectorTimesMatrix %v3float %91 %65 + %95 = OpImageFetch %v4float %plane_0 %75 Lod %uint_0 + %96 = OpCompositeExtract %float %95 0 + %97 = OpFMul %v2float %74 %68 + %98 = OpConvertFToU %v2uint %97 + %99 = OpImageFetch %v4float %plane_1 %98 Lod %uint_0 + %100 = OpVectorShuffle %v2float %99 %99 0 1 + %101 = OpCompositeConstruct %v4float %96 %100 %float_1 + %84 = OpVectorTimesMatrix %v3float %101 %65 OpBranch %79 %79 = OpLabel - %93 = OpPhi %v3float %83 %80 %92 %81 - %94 = OpPhi %float %84 %80 %float_1 %81 - %95 = OpIEqual %bool %64 %uint_0 - OpSelectionMerge %96 None - OpBranchConditional %95 %97 %98 - %97 = OpLabel - %99 = OpCompositeExtract %tint_GammaTransferParams %params 3 - %100 = OpCompositeExtract %tint_GammaTransferParams %params 4 - %101 = OpCompositeExtract %mat3v3float %params 5 - %102 = OpFunctionCall %v3float %tint_GammaCorrection %93 %99 - %104 = OpMatrixTimesVector %v3float %101 %102 - %105 = OpFunctionCall %v3float %tint_GammaCorrection %104 %100 - OpBranch %96 - %98 = OpLabel - OpBranch %96 - %96 = OpLabel - %106 = OpPhi %v3float %105 %97 %93 %98 - %107 = OpCompositeConstruct %v4float %106 %94 - OpReturnValue %107 + %82 = OpPhi %v3float %83 %80 %84 %81 + %85 = OpPhi %float %86 %80 %float_1 %81 + %87 = OpIEqual %bool %64 %uint_0 + OpSelectionMerge %88 None + OpBranchConditional %87 %89 %90 + %89 = OpLabel + %102 = OpCompositeExtract %tint_GammaTransferParams %params 3 + %103 = OpCompositeExtract %tint_GammaTransferParams %params 4 + %104 = OpCompositeExtract %mat3v3float %params 5 + %105 = OpFunctionCall %v3float %tint_GammaCorrection %82 %102 + %107 = OpMatrixTimesVector %v3float %104 %105 + %92 = OpFunctionCall %v3float %tint_GammaCorrection %107 %103 + OpBranch %88 + %90 = OpLabel + OpBranch %88 + %88 = OpLabel + %91 = OpPhi %v3float %92 %89 %82 %90 + %93 = OpCompositeConstruct %v4float %91 %85 + OpReturnValue %93 OpFunctionEnd %tint_GammaCorrection = OpFunction %v3float None %110 %v = OpFunctionParameter %v3float @@ -827,40 +827,40 @@ OpSelectionMerge %79 None OpBranchConditional %77 %80 %81 %80 = OpLabel - %82 = OpImageFetch %v4float %plane_0 %75 Lod %uint_0 - %83 = OpVectorShuffle %v3float %82 %82 0 1 2 - %84 = OpCompositeExtract %float %82 3 + %94 = OpImageFetch %v4float %plane_0 %75 Lod %uint_0 + %83 = OpVectorShuffle %v3float %94 %94 0 1 2 + %86 = OpCompositeExtract %float %94 3 OpBranch %79 %81 = OpLabel - %85 = OpImageFetch %v4float %plane_0 %75 Lod %uint_0 - %86 = OpCompositeExtract %float %85 0 - %87 = OpFMul %v2float %74 %68 - %88 = OpConvertFToU %v2uint %87 - %89 = OpImageFetch %v4float %plane_1 %88 Lod %uint_0 - %90 = OpVectorShuffle %v2float %89 %89 0 1 - %91 = OpCompositeConstruct %v4float %86 %90 %float_1 - %92 = OpVectorTimesMatrix %v3float %91 %65 + %95 = OpImageFetch %v4float %plane_0 %75 Lod %uint_0 + %96 = OpCompositeExtract %float %95 0 + %97 = OpFMul %v2float %74 %68 + %98 = OpConvertFToU %v2uint %97 + %99 = OpImageFetch %v4float %plane_1 %98 Lod %uint_0 + %100 = OpVectorShuffle %v2float %99 %99 0 1 + %101 = OpCompositeConstruct %v4float %96 %100 %float_1 + %84 = OpVectorTimesMatrix %v3float %101 %65 OpBranch %79 %79 = OpLabel - %93 = OpPhi %v3float %83 %80 %92 %81 - %94 = OpPhi %float %84 %80 %float_1 %81 - %95 = OpIEqual %bool %64 %uint_0 - OpSelectionMerge %96 None - OpBranchConditional %95 %97 %98 - %97 = OpLabel - %99 = OpCompositeExtract %tint_GammaTransferParams %params 3 - %100 = OpCompositeExtract %tint_GammaTransferParams %params 4 - %101 = OpCompositeExtract %mat3v3float %params 5 - %102 = OpFunctionCall %v3float %tint_GammaCorrection %93 %99 - %104 = OpMatrixTimesVector %v3float %101 %102 - %105 = OpFunctionCall %v3float %tint_GammaCorrection %104 %100 - OpBranch %96 - %98 = OpLabel - OpBranch %96 - %96 = OpLabel - %106 = OpPhi %v3float %105 %97 %93 %98 - %107 = OpCompositeConstruct %v4float %106 %94 - OpReturnValue %107 + %82 = OpPhi %v3float %83 %80 %84 %81 + %85 = OpPhi %float %86 %80 %float_1 %81 + %87 = OpIEqual %bool %64 %uint_0 + OpSelectionMerge %88 None + OpBranchConditional %87 %89 %90 + %89 = OpLabel + %102 = OpCompositeExtract %tint_GammaTransferParams %params 3 + %103 = OpCompositeExtract %tint_GammaTransferParams %params 4 + %104 = OpCompositeExtract %mat3v3float %params 5 + %105 = OpFunctionCall %v3float %tint_GammaCorrection %82 %102 + %107 = OpMatrixTimesVector %v3float %104 %105 + %92 = OpFunctionCall %v3float %tint_GammaCorrection %107 %103 + OpBranch %88 + %90 = OpLabel + OpBranch %88 + %88 = OpLabel + %91 = OpPhi %v3float %92 %89 %82 %90 + %93 = OpCompositeConstruct %v4float %91 %85 + OpReturnValue %93 OpFunctionEnd %tint_GammaCorrection = OpFunction %v3float None %110 %v = OpFunctionParameter %v3float
diff --git a/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.spvasm b/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.spvasm index cf9f3b1..9d59da1 100644 --- a/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.spvasm +++ b/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.spvasm
@@ -44,15 +44,15 @@ OpStore %return_value %int_42 None OpBranch %21 %21 = OpLabel - %25 = OpLoad %bool %continue_execution None - OpSelectionMerge %26 None - OpBranchConditional %25 %27 %26 - %27 = OpLabel + %23 = OpLoad %bool %continue_execution None + OpSelectionMerge %24 None + OpBranchConditional %23 %25 %24 + %25 = OpLabel OpStore %return_value %int_0 None - OpBranch %26 - %26 = OpLabel - %29 = OpLoad %int %return_value None - OpReturnValue %29 + OpBranch %24 + %24 = OpLabel + %26 = OpLoad %int %return_value None + OpReturnValue %26 OpFunctionEnd %unused_entry_point = OpFunction %void None %31 %32 = OpLabel
diff --git a/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.spvasm b/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.spvasm index 7595172..0353a46 100644 --- a/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.spvasm +++ b/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.spvasm
@@ -61,14 +61,14 @@ %15 = OpFunctionCall %int %tint_f32_to_i32 %x OpSelectionMerge %20 None OpSwitch %15 %18 0 %19 + %18 = OpLabel + OpBranch %20 %19 = OpLabel %21 = OpLoad %3 %t None %22 = OpLoad %7 %s None %23 = OpSampledImage %24 %21 %22 %25 = OpImageSampleImplicitLod %v4float %23 %27 None OpBranch %20 - %18 = OpLabel - OpBranch %20 %20 = OpLabel OpReturn OpFunctionEnd
diff --git a/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.spvasm b/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.spvasm index 28ce4b1..a4c42f8 100644 --- a/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.spvasm +++ b/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.spvasm
@@ -46,11 +46,11 @@ %v2bool = OpTypeVector %bool 2 %_ptr_Function_float = OpTypePointer Function %float %uint_0 = OpConstant %uint 0 - %float_1 = OpConstant %float 1 - %float_0 = OpConstant %float 0 %false = OpConstantFalse %bool %_ptr_Function_uint = OpTypePointer Function %uint %uint_1 = OpConstant %uint 1 + %float_1 = OpConstant %float 1 + %float_0 = OpConstant %float 0 %61 = OpTypeFunction %void %main_inner = OpFunction %void None %7 %x = OpFunctionParameter %float @@ -80,32 +80,32 @@ OpSelectionMerge %37 None OpBranchConditional %36 %38 %39 %38 = OpLabel - %40 = OpDPdx %float %float_1 - %42 = OpFOrdGreaterThan %bool %40 %float_0 + %57 = OpDPdx %float %float_1 + %41 = OpFOrdGreaterThan %bool %57 %float_0 OpBranch %37 %39 = OpLabel OpBranch %37 %37 = OpLabel - %44 = OpPhi %bool %42 %38 %false %39 - OpSelectionMerge %46 None - OpBranchConditional %44 %46 %47 - %47 = OpLabel + %40 = OpPhi %bool %41 %38 %false %39 + OpSelectionMerge %43 None + OpBranchConditional %40 %43 %44 + %44 = OpLabel OpBranch %17 - %46 = OpLabel + %43 = OpLabel OpBranch %15 %15 = OpLabel - %48 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %50 = OpLoad %uint %48 None -%tint_low_inc = OpISub %uint %50 %uint_1 - %53 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %53 %tint_low_inc None - %54 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %54 %uint_1 %uint_0 + %45 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %47 = OpLoad %uint %45 None +%tint_low_inc = OpISub %uint %47 %uint_1 + %50 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %50 %tint_low_inc None + %51 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %51 %uint_1 %uint_0 + %53 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %54 = OpLoad %uint %53 None + %55 = OpISub %uint %54 %tint_carry %56 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %57 = OpLoad %uint %56 None - %58 = OpISub %uint %57 %tint_carry - %59 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %59 %58 None + OpStore %56 %55 None OpBranch %16 %17 = OpLabel OpReturn
diff --git a/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.spvasm b/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.spvasm index 4a2c68b..ce683af 100644 --- a/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.spvasm +++ b/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.spvasm
@@ -31,11 +31,11 @@ %7 = OpTypeFunction %void %float %float_0 = OpConstant %float 0 %bool = OpTypeBool - %float_1 = OpConstant %float 1 %false = OpConstantFalse %bool %int = OpTypeInt 32 1 %int_1 = OpConstant %int 1 %int_0 = OpConstant %int 0 + %float_1 = OpConstant %float 1 %27 = OpTypeFunction %void %main_inner = OpFunction %void None %7 %x = OpFunctionParameter %float @@ -44,19 +44,19 @@ OpSelectionMerge %12 None OpBranchConditional %9 %13 %14 %13 = OpLabel - %15 = OpDPdx %float %float_1 - %17 = OpFOrdEqual %bool %15 %float_0 + %24 = OpDPdx %float %float_1 + %16 = OpFOrdEqual %bool %24 %float_0 OpBranch %12 %14 = OpLabel OpBranch %12 %12 = OpLabel - %18 = OpPhi %bool %17 %13 %false %14 - %21 = OpSelect %int %18 %int_1 %int_0 - OpSelectionMerge %25 None - OpSwitch %21 %24 - %24 = OpLabel - OpBranch %25 - %25 = OpLabel + %15 = OpPhi %bool %16 %13 %false %14 + %19 = OpSelect %int %15 %int_1 %int_0 + OpSelectionMerge %23 None + OpSwitch %19 %22 + %22 = OpLabel + OpBranch %23 + %23 = OpLabel OpReturn OpFunctionEnd %main = OpFunction %void None %27
diff --git a/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.spvasm b/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.spvasm index 3599b83..e6ab140 100644 --- a/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.spvasm +++ b/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.spvasm
@@ -45,11 +45,11 @@ %bool = OpTypeBool %v2bool = OpTypeVector %bool 2 %float_0 = OpConstant %float 0 - %float_1 = OpConstant %float 1 %false = OpConstantFalse %bool %_ptr_Function_uint = OpTypePointer Function %uint %uint_0 = OpConstant %uint 0 %uint_1 = OpConstant %uint 1 + %float_1 = OpConstant %float 1 %58 = OpTypeFunction %void %main_inner = OpFunction %void None %7 %x = OpFunctionParameter %float @@ -77,32 +77,32 @@ OpSelectionMerge %34 None OpBranchConditional %32 %35 %36 %35 = OpLabel - %37 = OpDPdx %float %float_1 - %39 = OpFOrdGreaterThan %bool %37 %float_0 + %55 = OpDPdx %float %float_1 + %38 = OpFOrdGreaterThan %bool %55 %float_0 OpBranch %34 %36 = OpLabel OpBranch %34 %34 = OpLabel - %40 = OpPhi %bool %39 %35 %false %36 - OpSelectionMerge %42 None - OpBranchConditional %40 %42 %43 - %43 = OpLabel + %37 = OpPhi %bool %38 %35 %false %36 + OpSelectionMerge %40 None + OpBranchConditional %37 %40 %41 + %41 = OpLabel OpBranch %17 - %42 = OpLabel + %40 = OpLabel OpBranch %15 %15 = OpLabel - %44 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %47 = OpLoad %uint %44 None -%tint_low_inc = OpISub %uint %47 %uint_1 - %50 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %50 %tint_low_inc None - %51 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %51 %uint_1 %uint_0 - %53 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %54 = OpLoad %uint %53 None - %55 = OpISub %uint %54 %tint_carry - %56 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %56 %55 None + %42 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %45 = OpLoad %uint %42 None +%tint_low_inc = OpISub %uint %45 %uint_1 + %48 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %48 %tint_low_inc None + %49 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %49 %uint_1 %uint_0 + %51 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %52 = OpLoad %uint %51 None + %53 = OpISub %uint %52 %tint_carry + %54 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %54 %53 None OpBranch %16 %17 = OpLabel OpReturn
diff --git a/test/tint/loops/continue_in_switch.wgsl.expected.spvasm b/test/tint/loops/continue_in_switch.wgsl.expected.spvasm index b7807ce..c129631 100644 --- a/test/tint/loops/continue_in_switch.wgsl.expected.spvasm +++ b/test/tint/loops/continue_in_switch.wgsl.expected.spvasm
@@ -38,10 +38,10 @@ %20 = OpLoad %int %i None OpSelectionMerge %23 None OpSwitch %20 %21 0 %22 - %22 = OpLabel - OpBranch %7 %21 = OpLabel OpBranch %23 + %22 = OpLabel + OpBranch %7 %23 = OpLabel OpBranch %7 %7 = OpLabel
diff --git a/test/tint/loops/continue_in_switch_robustness.wgsl.expected.spvasm b/test/tint/loops/continue_in_switch_robustness.wgsl.expected.spvasm index b7807ce..c129631 100644 --- a/test/tint/loops/continue_in_switch_robustness.wgsl.expected.spvasm +++ b/test/tint/loops/continue_in_switch_robustness.wgsl.expected.spvasm
@@ -38,10 +38,10 @@ %20 = OpLoad %int %i None OpSelectionMerge %23 None OpSwitch %20 %21 0 %22 - %22 = OpLabel - OpBranch %7 %21 = OpLabel OpBranch %23 + %22 = OpLabel + OpBranch %7 %23 = OpLabel OpBranch %7 %7 = OpLabel
diff --git a/test/tint/loops/continue_in_switch_with_breakif.wgsl.expected.spvasm b/test/tint/loops/continue_in_switch_with_breakif.wgsl.expected.spvasm index e731380..4d678b1a 100644 --- a/test/tint/loops/continue_in_switch_with_breakif.wgsl.expected.spvasm +++ b/test/tint/loops/continue_in_switch_with_breakif.wgsl.expected.spvasm
@@ -54,10 +54,10 @@ %28 = OpLoad %int %i None OpSelectionMerge %31 None OpSwitch %28 %29 0 %30 - %30 = OpLabel - OpBranch %11 %29 = OpLabel OpBranch %31 + %30 = OpLabel + OpBranch %11 %31 = OpLabel OpBranch %11 %11 = OpLabel
diff --git a/test/tint/loops/continue_in_switch_with_breakif_robustness.wgsl.expected.spvasm b/test/tint/loops/continue_in_switch_with_breakif_robustness.wgsl.expected.spvasm index e731380..4d678b1a 100644 --- a/test/tint/loops/continue_in_switch_with_breakif_robustness.wgsl.expected.spvasm +++ b/test/tint/loops/continue_in_switch_with_breakif_robustness.wgsl.expected.spvasm
@@ -54,10 +54,10 @@ %28 = OpLoad %int %i None OpSelectionMerge %31 None OpSwitch %28 %29 0 %30 - %30 = OpLabel - OpBranch %11 %29 = OpLabel OpBranch %31 + %30 = OpLabel + OpBranch %11 %31 = OpLabel OpBranch %11 %11 = OpLabel
diff --git a/test/tint/loops/loop.wgsl.expected.spvasm b/test/tint/loops/loop.wgsl.expected.spvasm index 60ea043..c1e1f11 100644 --- a/test/tint/loops/loop.wgsl.expected.spvasm +++ b/test/tint/loops/loop.wgsl.expected.spvasm
@@ -26,15 +26,15 @@ %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %22 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %26 = OpConstantNull %v2uint + %23 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %27 = OpConstantNull %v2uint %v2bool = OpTypeVector %bool 2 %int_1 = OpConstant %int 1 %int_4 = OpConstant %int 4 - %false = OpConstantFalse %bool %_ptr_Function_uint = OpTypePointer Function %uint %uint_0 = OpConstant %uint 0 %uint_1 = OpConstant %uint 1 + %false = OpConstantFalse %bool %void = OpTypeVoid %60 = OpTypeFunction %void %f = OpFunction %int None %3 @@ -46,57 +46,57 @@ OpStore %continue_execution %true OpBranch %13 %13 = OpLabel - OpStore %tint_loop_idx %22 + OpStore %tint_loop_idx %23 OpBranch %16 %16 = OpLabel OpLoopMerge %17 %15 None OpBranch %14 %14 = OpLabel - %24 = OpLoad %v2uint %tint_loop_idx None - %25 = OpIEqual %v2bool %24 %26 - %28 = OpAll %bool %25 - OpSelectionMerge %29 None - OpBranchConditional %28 %30 %29 - %30 = OpLabel + %25 = OpLoad %v2uint %tint_loop_idx None + %26 = OpIEqual %v2bool %25 %27 + %29 = OpAll %bool %26 + OpSelectionMerge %30 None + OpBranchConditional %29 %31 %30 + %31 = OpLabel OpBranch %17 - %29 = OpLabel - %31 = OpLoad %int %i None - %32 = OpIAdd %int %31 %int_1 - OpStore %i %32 None - %34 = OpLoad %int %i None - %35 = OpSGreaterThan %bool %34 %int_4 - OpSelectionMerge %37 None - OpBranchConditional %35 %38 %37 - %38 = OpLabel - %39 = OpLoad %int %i None + %30 = OpLabel + %32 = OpLoad %int %i None + %33 = OpIAdd %int %32 %int_1 + OpStore %i %33 None + %35 = OpLoad %int %i None + %36 = OpSGreaterThan %bool %35 %int_4 + OpSelectionMerge %38 None + OpBranchConditional %36 %39 %38 + %39 = OpLabel + %56 = OpLoad %int %i None OpStore %continue_execution %false None - OpStore %return_value %39 None - OpBranch %37 - %37 = OpLabel - %41 = OpLoad %bool %continue_execution None - OpSelectionMerge %42 None - OpBranchConditional %41 %43 %42 - %43 = OpLabel - OpBranch %15 + OpStore %return_value %56 None + OpBranch %38 + %38 = OpLabel + %40 = OpLoad %bool %continue_execution None + OpSelectionMerge %41 None + OpBranchConditional %40 %42 %41 %42 = OpLabel + OpBranch %15 + %41 = OpLabel OpBranch %17 %15 = OpLabel - %44 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %47 = OpLoad %uint %44 None -%tint_low_inc = OpISub %uint %47 %uint_1 - %50 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %50 %tint_low_inc None - %51 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %51 %uint_1 %uint_0 - %53 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %54 = OpLoad %uint %53 None - %55 = OpISub %uint %54 %tint_carry - %56 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %56 %55 None + %43 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %46 = OpLoad %uint %43 None +%tint_low_inc = OpISub %uint %46 %uint_1 + %49 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %49 %tint_low_inc None + %50 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %50 %uint_1 %uint_0 + %52 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %53 = OpLoad %uint %52 None + %54 = OpISub %uint %53 %tint_carry + %55 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %55 %54 None OpBranch %16 %17 = OpLabel - %57 = OpLoad %int %return_value None - OpReturnValue %57 + %18 = OpLoad %int %return_value None + OpReturnValue %18 OpFunctionEnd %unused_entry_point = OpFunction %void None %60 %61 = OpLabel
diff --git a/test/tint/loops/loop_robustness.wgsl.expected.spvasm b/test/tint/loops/loop_robustness.wgsl.expected.spvasm index 60ea043..c1e1f11 100644 --- a/test/tint/loops/loop_robustness.wgsl.expected.spvasm +++ b/test/tint/loops/loop_robustness.wgsl.expected.spvasm
@@ -26,15 +26,15 @@ %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %22 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %26 = OpConstantNull %v2uint + %23 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %27 = OpConstantNull %v2uint %v2bool = OpTypeVector %bool 2 %int_1 = OpConstant %int 1 %int_4 = OpConstant %int 4 - %false = OpConstantFalse %bool %_ptr_Function_uint = OpTypePointer Function %uint %uint_0 = OpConstant %uint 0 %uint_1 = OpConstant %uint 1 + %false = OpConstantFalse %bool %void = OpTypeVoid %60 = OpTypeFunction %void %f = OpFunction %int None %3 @@ -46,57 +46,57 @@ OpStore %continue_execution %true OpBranch %13 %13 = OpLabel - OpStore %tint_loop_idx %22 + OpStore %tint_loop_idx %23 OpBranch %16 %16 = OpLabel OpLoopMerge %17 %15 None OpBranch %14 %14 = OpLabel - %24 = OpLoad %v2uint %tint_loop_idx None - %25 = OpIEqual %v2bool %24 %26 - %28 = OpAll %bool %25 - OpSelectionMerge %29 None - OpBranchConditional %28 %30 %29 - %30 = OpLabel + %25 = OpLoad %v2uint %tint_loop_idx None + %26 = OpIEqual %v2bool %25 %27 + %29 = OpAll %bool %26 + OpSelectionMerge %30 None + OpBranchConditional %29 %31 %30 + %31 = OpLabel OpBranch %17 - %29 = OpLabel - %31 = OpLoad %int %i None - %32 = OpIAdd %int %31 %int_1 - OpStore %i %32 None - %34 = OpLoad %int %i None - %35 = OpSGreaterThan %bool %34 %int_4 - OpSelectionMerge %37 None - OpBranchConditional %35 %38 %37 - %38 = OpLabel - %39 = OpLoad %int %i None + %30 = OpLabel + %32 = OpLoad %int %i None + %33 = OpIAdd %int %32 %int_1 + OpStore %i %33 None + %35 = OpLoad %int %i None + %36 = OpSGreaterThan %bool %35 %int_4 + OpSelectionMerge %38 None + OpBranchConditional %36 %39 %38 + %39 = OpLabel + %56 = OpLoad %int %i None OpStore %continue_execution %false None - OpStore %return_value %39 None - OpBranch %37 - %37 = OpLabel - %41 = OpLoad %bool %continue_execution None - OpSelectionMerge %42 None - OpBranchConditional %41 %43 %42 - %43 = OpLabel - OpBranch %15 + OpStore %return_value %56 None + OpBranch %38 + %38 = OpLabel + %40 = OpLoad %bool %continue_execution None + OpSelectionMerge %41 None + OpBranchConditional %40 %42 %41 %42 = OpLabel + OpBranch %15 + %41 = OpLabel OpBranch %17 %15 = OpLabel - %44 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %47 = OpLoad %uint %44 None -%tint_low_inc = OpISub %uint %47 %uint_1 - %50 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %50 %tint_low_inc None - %51 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %51 %uint_1 %uint_0 - %53 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %54 = OpLoad %uint %53 None - %55 = OpISub %uint %54 %tint_carry - %56 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %56 %55 None + %43 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %46 = OpLoad %uint %43 None +%tint_low_inc = OpISub %uint %46 %uint_1 + %49 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %49 %tint_low_inc None + %50 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %50 %uint_1 %uint_0 + %52 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %53 = OpLoad %uint %52 None + %54 = OpISub %uint %53 %tint_carry + %55 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %55 %54 None OpBranch %16 %17 = OpLabel - %57 = OpLoad %int %return_value None - OpReturnValue %57 + %18 = OpLoad %int %return_value None + OpReturnValue %18 OpFunctionEnd %unused_entry_point = OpFunction %void None %60 %61 = OpLabel
diff --git a/test/tint/loops/loop_with_break_if.wgsl.expected.spvasm b/test/tint/loops/loop_with_break_if.wgsl.expected.spvasm index 24c8a4e..897b399 100644 --- a/test/tint/loops/loop_with_break_if.wgsl.expected.spvasm +++ b/test/tint/loops/loop_with_break_if.wgsl.expected.spvasm
@@ -26,15 +26,15 @@ %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %22 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %26 = OpConstantNull %v2uint + %26 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %30 = OpConstantNull %v2uint %v2bool = OpTypeVector %bool 2 %int_4 = OpConstant %int 4 - %false = OpConstantFalse %bool %_ptr_Function_uint = OpTypePointer Function %uint %uint_0 = OpConstant %uint 0 %uint_1 = OpConstant %uint 1 %int_1 = OpConstant %int 1 + %false = OpConstantFalse %bool %void = OpTypeVoid %66 = OpTypeFunction %void %f = OpFunction %int None %3 @@ -46,67 +46,67 @@ OpStore %continue_execution %true OpBranch %13 %13 = OpLabel - OpStore %tint_loop_idx %22 + OpStore %tint_loop_idx %26 OpBranch %16 %16 = OpLabel OpLoopMerge %17 %15 None OpBranch %14 %14 = OpLabel - %24 = OpLoad %v2uint %tint_loop_idx None - %25 = OpIEqual %v2bool %24 %26 - %28 = OpAll %bool %25 - OpSelectionMerge %29 None - OpBranchConditional %28 %30 %29 - %30 = OpLabel - OpBranch %17 - %29 = OpLabel - %31 = OpLoad %int %i None - %32 = OpSGreaterThan %bool %31 %int_4 - OpSelectionMerge %34 None - OpBranchConditional %32 %35 %34 - %35 = OpLabel - %36 = OpLoad %int %i None - OpStore %continue_execution %false None - OpStore %return_value %36 None - OpBranch %34 + %28 = OpLoad %v2uint %tint_loop_idx None + %29 = OpIEqual %v2bool %28 %30 + %32 = OpAll %bool %29 + OpSelectionMerge %33 None + OpBranchConditional %32 %34 %33 %34 = OpLabel - %38 = OpLoad %bool %continue_execution None - OpSelectionMerge %39 None - OpBranchConditional %38 %40 %39 - %40 = OpLabel - OpBranch %15 + OpBranch %17 + %33 = OpLabel + %35 = OpLoad %int %i None + %36 = OpSGreaterThan %bool %35 %int_4 + OpSelectionMerge %38 None + OpBranchConditional %36 %39 %38 %39 = OpLabel + %62 = OpLoad %int %i None + OpStore %continue_execution %false None + OpStore %return_value %62 None + OpBranch %38 + %38 = OpLabel + %40 = OpLoad %bool %continue_execution None + OpSelectionMerge %41 None + OpBranchConditional %40 %42 %41 + %42 = OpLabel + OpBranch %15 + %41 = OpLabel OpBranch %17 %15 = OpLabel - %41 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %44 = OpLoad %uint %41 None -%tint_low_inc = OpISub %uint %44 %uint_1 - %47 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %47 %tint_low_inc None - %48 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %48 %uint_1 %uint_0 - %50 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %51 = OpLoad %uint %50 None - %52 = OpISub %uint %51 %tint_carry - %53 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %53 %52 None - %54 = OpLoad %int %i None - %55 = OpIAdd %int %54 %int_1 - OpStore %i %55 None - %57 = OpLoad %int %i None - %58 = OpIEqual %bool %57 %int_4 - OpBranchConditional %58 %17 %16 + %43 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %46 = OpLoad %uint %43 None +%tint_low_inc = OpISub %uint %46 %uint_1 + %49 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %49 %tint_low_inc None + %50 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %50 %uint_1 %uint_0 + %52 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %53 = OpLoad %uint %52 None + %54 = OpISub %uint %53 %tint_carry + %55 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %55 %54 None + %56 = OpLoad %int %i None + %57 = OpIAdd %int %56 %int_1 + OpStore %i %57 None + %59 = OpLoad %int %i None + %60 = OpIEqual %bool %59 %int_4 + OpBranchConditional %60 %17 %16 %17 = OpLabel - %59 = OpLoad %bool %continue_execution None - OpSelectionMerge %60 None - OpBranchConditional %59 %61 %60 - %61 = OpLabel - %62 = OpLoad %int %i None - OpStore %return_value %62 None - OpBranch %60 - %60 = OpLabel - %63 = OpLoad %int %return_value None - OpReturnValue %63 + %18 = OpLoad %bool %continue_execution None + OpSelectionMerge %19 None + OpBranchConditional %18 %20 %19 + %20 = OpLabel + %61 = OpLoad %int %i None + OpStore %return_value %61 None + OpBranch %19 + %19 = OpLabel + %21 = OpLoad %int %return_value None + OpReturnValue %21 OpFunctionEnd %unused_entry_point = OpFunction %void None %66 %67 = OpLabel
diff --git a/test/tint/loops/loop_with_break_if_robustness.wgsl.expected.spvasm b/test/tint/loops/loop_with_break_if_robustness.wgsl.expected.spvasm index 24c8a4e..897b399 100644 --- a/test/tint/loops/loop_with_break_if_robustness.wgsl.expected.spvasm +++ b/test/tint/loops/loop_with_break_if_robustness.wgsl.expected.spvasm
@@ -26,15 +26,15 @@ %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %22 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %26 = OpConstantNull %v2uint + %26 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %30 = OpConstantNull %v2uint %v2bool = OpTypeVector %bool 2 %int_4 = OpConstant %int 4 - %false = OpConstantFalse %bool %_ptr_Function_uint = OpTypePointer Function %uint %uint_0 = OpConstant %uint 0 %uint_1 = OpConstant %uint 1 %int_1 = OpConstant %int 1 + %false = OpConstantFalse %bool %void = OpTypeVoid %66 = OpTypeFunction %void %f = OpFunction %int None %3 @@ -46,67 +46,67 @@ OpStore %continue_execution %true OpBranch %13 %13 = OpLabel - OpStore %tint_loop_idx %22 + OpStore %tint_loop_idx %26 OpBranch %16 %16 = OpLabel OpLoopMerge %17 %15 None OpBranch %14 %14 = OpLabel - %24 = OpLoad %v2uint %tint_loop_idx None - %25 = OpIEqual %v2bool %24 %26 - %28 = OpAll %bool %25 - OpSelectionMerge %29 None - OpBranchConditional %28 %30 %29 - %30 = OpLabel - OpBranch %17 - %29 = OpLabel - %31 = OpLoad %int %i None - %32 = OpSGreaterThan %bool %31 %int_4 - OpSelectionMerge %34 None - OpBranchConditional %32 %35 %34 - %35 = OpLabel - %36 = OpLoad %int %i None - OpStore %continue_execution %false None - OpStore %return_value %36 None - OpBranch %34 + %28 = OpLoad %v2uint %tint_loop_idx None + %29 = OpIEqual %v2bool %28 %30 + %32 = OpAll %bool %29 + OpSelectionMerge %33 None + OpBranchConditional %32 %34 %33 %34 = OpLabel - %38 = OpLoad %bool %continue_execution None - OpSelectionMerge %39 None - OpBranchConditional %38 %40 %39 - %40 = OpLabel - OpBranch %15 + OpBranch %17 + %33 = OpLabel + %35 = OpLoad %int %i None + %36 = OpSGreaterThan %bool %35 %int_4 + OpSelectionMerge %38 None + OpBranchConditional %36 %39 %38 %39 = OpLabel + %62 = OpLoad %int %i None + OpStore %continue_execution %false None + OpStore %return_value %62 None + OpBranch %38 + %38 = OpLabel + %40 = OpLoad %bool %continue_execution None + OpSelectionMerge %41 None + OpBranchConditional %40 %42 %41 + %42 = OpLabel + OpBranch %15 + %41 = OpLabel OpBranch %17 %15 = OpLabel - %41 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %44 = OpLoad %uint %41 None -%tint_low_inc = OpISub %uint %44 %uint_1 - %47 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %47 %tint_low_inc None - %48 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %48 %uint_1 %uint_0 - %50 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %51 = OpLoad %uint %50 None - %52 = OpISub %uint %51 %tint_carry - %53 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %53 %52 None - %54 = OpLoad %int %i None - %55 = OpIAdd %int %54 %int_1 - OpStore %i %55 None - %57 = OpLoad %int %i None - %58 = OpIEqual %bool %57 %int_4 - OpBranchConditional %58 %17 %16 + %43 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %46 = OpLoad %uint %43 None +%tint_low_inc = OpISub %uint %46 %uint_1 + %49 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %49 %tint_low_inc None + %50 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %50 %uint_1 %uint_0 + %52 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %53 = OpLoad %uint %52 None + %54 = OpISub %uint %53 %tint_carry + %55 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %55 %54 None + %56 = OpLoad %int %i None + %57 = OpIAdd %int %56 %int_1 + OpStore %i %57 None + %59 = OpLoad %int %i None + %60 = OpIEqual %bool %59 %int_4 + OpBranchConditional %60 %17 %16 %17 = OpLabel - %59 = OpLoad %bool %continue_execution None - OpSelectionMerge %60 None - OpBranchConditional %59 %61 %60 - %61 = OpLabel - %62 = OpLoad %int %i None - OpStore %return_value %62 None - OpBranch %60 - %60 = OpLabel - %63 = OpLoad %int %return_value None - OpReturnValue %63 + %18 = OpLoad %bool %continue_execution None + OpSelectionMerge %19 None + OpBranchConditional %18 %20 %19 + %20 = OpLabel + %61 = OpLoad %int %i None + OpStore %return_value %61 None + OpBranch %19 + %19 = OpLabel + %21 = OpLoad %int %return_value None + OpReturnValue %21 OpFunctionEnd %unused_entry_point = OpFunction %void None %66 %67 = OpLabel
diff --git a/test/tint/loops/loop_with_continuing.wgsl.expected.spvasm b/test/tint/loops/loop_with_continuing.wgsl.expected.spvasm index 704b9ee..cc669b5 100644 --- a/test/tint/loops/loop_with_continuing.wgsl.expected.spvasm +++ b/test/tint/loops/loop_with_continuing.wgsl.expected.spvasm
@@ -26,15 +26,15 @@ %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %22 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %26 = OpConstantNull %v2uint + %23 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %27 = OpConstantNull %v2uint %v2bool = OpTypeVector %bool 2 %int_4 = OpConstant %int 4 - %false = OpConstantFalse %bool %_ptr_Function_uint = OpTypePointer Function %uint %uint_0 = OpConstant %uint 0 %uint_1 = OpConstant %uint 1 %int_1 = OpConstant %int 1 + %false = OpConstantFalse %bool %void = OpTypeVoid %60 = OpTypeFunction %void %f = OpFunction %int None %3 @@ -46,57 +46,57 @@ OpStore %continue_execution %true OpBranch %13 %13 = OpLabel - OpStore %tint_loop_idx %22 + OpStore %tint_loop_idx %23 OpBranch %16 %16 = OpLabel OpLoopMerge %17 %15 None OpBranch %14 %14 = OpLabel - %24 = OpLoad %v2uint %tint_loop_idx None - %25 = OpIEqual %v2bool %24 %26 - %28 = OpAll %bool %25 - OpSelectionMerge %29 None - OpBranchConditional %28 %30 %29 - %30 = OpLabel + %25 = OpLoad %v2uint %tint_loop_idx None + %26 = OpIEqual %v2bool %25 %27 + %29 = OpAll %bool %26 + OpSelectionMerge %30 None + OpBranchConditional %29 %31 %30 + %31 = OpLabel OpBranch %17 - %29 = OpLabel - %31 = OpLoad %int %i None - %32 = OpSGreaterThan %bool %31 %int_4 - OpSelectionMerge %34 None - OpBranchConditional %32 %35 %34 - %35 = OpLabel - %36 = OpLoad %int %i None + %30 = OpLabel + %32 = OpLoad %int %i None + %33 = OpSGreaterThan %bool %32 %int_4 + OpSelectionMerge %35 None + OpBranchConditional %33 %36 %35 + %36 = OpLabel + %56 = OpLoad %int %i None OpStore %continue_execution %false None - OpStore %return_value %36 None - OpBranch %34 - %34 = OpLabel - %38 = OpLoad %bool %continue_execution None - OpSelectionMerge %39 None - OpBranchConditional %38 %40 %39 - %40 = OpLabel - OpBranch %15 + OpStore %return_value %56 None + OpBranch %35 + %35 = OpLabel + %37 = OpLoad %bool %continue_execution None + OpSelectionMerge %38 None + OpBranchConditional %37 %39 %38 %39 = OpLabel + OpBranch %15 + %38 = OpLabel OpBranch %17 %15 = OpLabel - %41 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %44 = OpLoad %uint %41 None -%tint_low_inc = OpISub %uint %44 %uint_1 - %47 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %47 %tint_low_inc None - %48 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %48 %uint_1 %uint_0 - %50 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %51 = OpLoad %uint %50 None - %52 = OpISub %uint %51 %tint_carry - %53 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %53 %52 None - %54 = OpLoad %int %i None - %55 = OpIAdd %int %54 %int_1 - OpStore %i %55 None + %40 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %43 = OpLoad %uint %40 None +%tint_low_inc = OpISub %uint %43 %uint_1 + %46 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %46 %tint_low_inc None + %47 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %47 %uint_1 %uint_0 + %49 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %50 = OpLoad %uint %49 None + %51 = OpISub %uint %50 %tint_carry + %52 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %52 %51 None + %53 = OpLoad %int %i None + %54 = OpIAdd %int %53 %int_1 + OpStore %i %54 None OpBranch %16 %17 = OpLabel - %57 = OpLoad %int %return_value None - OpReturnValue %57 + %18 = OpLoad %int %return_value None + OpReturnValue %18 OpFunctionEnd %unused_entry_point = OpFunction %void None %60 %61 = OpLabel
diff --git a/test/tint/loops/loop_with_continuing_robustness.wgsl.expected.spvasm b/test/tint/loops/loop_with_continuing_robustness.wgsl.expected.spvasm index 704b9ee..cc669b5 100644 --- a/test/tint/loops/loop_with_continuing_robustness.wgsl.expected.spvasm +++ b/test/tint/loops/loop_with_continuing_robustness.wgsl.expected.spvasm
@@ -26,15 +26,15 @@ %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %22 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %26 = OpConstantNull %v2uint + %23 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %27 = OpConstantNull %v2uint %v2bool = OpTypeVector %bool 2 %int_4 = OpConstant %int 4 - %false = OpConstantFalse %bool %_ptr_Function_uint = OpTypePointer Function %uint %uint_0 = OpConstant %uint 0 %uint_1 = OpConstant %uint 1 %int_1 = OpConstant %int 1 + %false = OpConstantFalse %bool %void = OpTypeVoid %60 = OpTypeFunction %void %f = OpFunction %int None %3 @@ -46,57 +46,57 @@ OpStore %continue_execution %true OpBranch %13 %13 = OpLabel - OpStore %tint_loop_idx %22 + OpStore %tint_loop_idx %23 OpBranch %16 %16 = OpLabel OpLoopMerge %17 %15 None OpBranch %14 %14 = OpLabel - %24 = OpLoad %v2uint %tint_loop_idx None - %25 = OpIEqual %v2bool %24 %26 - %28 = OpAll %bool %25 - OpSelectionMerge %29 None - OpBranchConditional %28 %30 %29 - %30 = OpLabel + %25 = OpLoad %v2uint %tint_loop_idx None + %26 = OpIEqual %v2bool %25 %27 + %29 = OpAll %bool %26 + OpSelectionMerge %30 None + OpBranchConditional %29 %31 %30 + %31 = OpLabel OpBranch %17 - %29 = OpLabel - %31 = OpLoad %int %i None - %32 = OpSGreaterThan %bool %31 %int_4 - OpSelectionMerge %34 None - OpBranchConditional %32 %35 %34 - %35 = OpLabel - %36 = OpLoad %int %i None + %30 = OpLabel + %32 = OpLoad %int %i None + %33 = OpSGreaterThan %bool %32 %int_4 + OpSelectionMerge %35 None + OpBranchConditional %33 %36 %35 + %36 = OpLabel + %56 = OpLoad %int %i None OpStore %continue_execution %false None - OpStore %return_value %36 None - OpBranch %34 - %34 = OpLabel - %38 = OpLoad %bool %continue_execution None - OpSelectionMerge %39 None - OpBranchConditional %38 %40 %39 - %40 = OpLabel - OpBranch %15 + OpStore %return_value %56 None + OpBranch %35 + %35 = OpLabel + %37 = OpLoad %bool %continue_execution None + OpSelectionMerge %38 None + OpBranchConditional %37 %39 %38 %39 = OpLabel + OpBranch %15 + %38 = OpLabel OpBranch %17 %15 = OpLabel - %41 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %44 = OpLoad %uint %41 None -%tint_low_inc = OpISub %uint %44 %uint_1 - %47 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %47 %tint_low_inc None - %48 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %48 %uint_1 %uint_0 - %50 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %51 = OpLoad %uint %50 None - %52 = OpISub %uint %51 %tint_carry - %53 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %53 %52 None - %54 = OpLoad %int %i None - %55 = OpIAdd %int %54 %int_1 - OpStore %i %55 None + %40 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %43 = OpLoad %uint %40 None +%tint_low_inc = OpISub %uint %43 %uint_1 + %46 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %46 %tint_low_inc None + %47 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %47 %uint_1 %uint_0 + %49 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %50 = OpLoad %uint %49 None + %51 = OpISub %uint %50 %tint_carry + %52 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %52 %51 None + %53 = OpLoad %int %i None + %54 = OpIAdd %int %53 %int_1 + OpStore %i %54 None OpBranch %16 %17 = OpLabel - %57 = OpLoad %int %return_value None - OpReturnValue %57 + %18 = OpLoad %int %return_value None + OpReturnValue %18 OpFunctionEnd %unused_entry_point = OpFunction %void None %60 %61 = OpLabel
diff --git a/test/tint/loops/multiple_continues.wgsl.expected.spvasm b/test/tint/loops/multiple_continues.wgsl.expected.spvasm index 7e77949..6a5bed9 100644 --- a/test/tint/loops/multiple_continues.wgsl.expected.spvasm +++ b/test/tint/loops/multiple_continues.wgsl.expected.spvasm
@@ -38,14 +38,14 @@ %20 = OpLoad %int %i None OpSelectionMerge %25 None OpSwitch %20 %21 0 %22 1 %23 2 %24 + %21 = OpLabel + OpBranch %25 %22 = OpLabel OpBranch %7 %23 = OpLabel OpBranch %7 %24 = OpLabel OpBranch %7 - %21 = OpLabel - OpBranch %25 %25 = OpLabel OpBranch %7 %7 = OpLabel
diff --git a/test/tint/loops/multiple_continues_robustness.wgsl.expected.spvasm b/test/tint/loops/multiple_continues_robustness.wgsl.expected.spvasm index 7e77949..6a5bed9 100644 --- a/test/tint/loops/multiple_continues_robustness.wgsl.expected.spvasm +++ b/test/tint/loops/multiple_continues_robustness.wgsl.expected.spvasm
@@ -38,14 +38,14 @@ %20 = OpLoad %int %i None OpSelectionMerge %25 None OpSwitch %20 %21 0 %22 1 %23 2 %24 + %21 = OpLabel + OpBranch %25 %22 = OpLabel OpBranch %7 %23 = OpLabel OpBranch %7 %24 = OpLabel OpBranch %7 - %21 = OpLabel - OpBranch %25 %25 = OpLabel OpBranch %7 %7 = OpLabel
diff --git a/test/tint/loops/multiple_switch.wgsl.expected.spvasm b/test/tint/loops/multiple_switch.wgsl.expected.spvasm index 1863d97..688e102 100644 --- a/test/tint/loops/multiple_switch.wgsl.expected.spvasm +++ b/test/tint/loops/multiple_switch.wgsl.expected.spvasm
@@ -41,18 +41,18 @@ %21 = OpLoad %int %i_0 None OpSelectionMerge %24 None OpSwitch %21 %22 0 %23 - %23 = OpLabel - OpBranch %11 %22 = OpLabel OpBranch %24 + %23 = OpLabel + OpBranch %11 %24 = OpLabel %25 = OpLoad %int %i_0 None OpSelectionMerge %28 None OpSwitch %25 %26 0 %27 - %27 = OpLabel - OpBranch %11 %26 = OpLabel OpBranch %28 + %27 = OpLabel + OpBranch %11 %28 = OpLabel OpBranch %11 %11 = OpLabel
diff --git a/test/tint/loops/multiple_switch_robustness.wgsl.expected.spvasm b/test/tint/loops/multiple_switch_robustness.wgsl.expected.spvasm index 1863d97..688e102 100644 --- a/test/tint/loops/multiple_switch_robustness.wgsl.expected.spvasm +++ b/test/tint/loops/multiple_switch_robustness.wgsl.expected.spvasm
@@ -41,18 +41,18 @@ %21 = OpLoad %int %i_0 None OpSelectionMerge %24 None OpSwitch %21 %22 0 %23 - %23 = OpLabel - OpBranch %11 %22 = OpLabel OpBranch %24 + %23 = OpLabel + OpBranch %11 %24 = OpLabel %25 = OpLoad %int %i_0 None OpSelectionMerge %28 None OpSwitch %25 %26 0 %27 - %27 = OpLabel - OpBranch %11 %26 = OpLabel OpBranch %28 + %27 = OpLabel + OpBranch %11 %28 = OpLabel OpBranch %11 %11 = OpLabel
diff --git a/test/tint/loops/nested_loop_loop_switch.wgsl.expected.spvasm b/test/tint/loops/nested_loop_loop_switch.wgsl.expected.spvasm index cce3d97..e79293e 100644 --- a/test/tint/loops/nested_loop_loop_switch.wgsl.expected.spvasm +++ b/test/tint/loops/nested_loop_loop_switch.wgsl.expected.spvasm
@@ -10,12 +10,12 @@ OpName %main "main" OpName %tint_loop_idx "tint_loop_idx" OpName %i "i" + OpName %tint_low_inc "tint_low_inc" + OpName %tint_carry "tint_carry" OpName %tint_loop_idx_0 "tint_loop_idx" OpName %j "j" OpName %tint_low_inc_1 "tint_low_inc_1" OpName %tint_carry_1 "tint_carry_1" - OpName %tint_low_inc "tint_low_inc" - OpName %tint_carry "tint_carry" %void = OpTypeVoid %3 = OpTypeFunction %void %uint = OpTypeInt 32 0 @@ -72,65 +72,65 @@ OpLoopMerge %37 %35 None OpBranch %34 %34 = OpLabel - %40 = OpLoad %v2uint %tint_loop_idx_0 None - %41 = OpIEqual %v2bool %40 %22 - %42 = OpAll %bool %41 - OpSelectionMerge %43 None - OpBranchConditional %42 %44 %43 - %44 = OpLabel + %55 = OpLoad %v2uint %tint_loop_idx_0 None + %56 = OpIEqual %v2bool %55 %22 + %57 = OpAll %bool %56 + OpSelectionMerge %58 None + OpBranchConditional %57 %59 %58 + %59 = OpLabel OpBranch %37 - %43 = OpLabel - %45 = OpLoad %int %j None - %46 = OpSLessThan %bool %45 %int_2 - OpSelectionMerge %47 None - OpBranchConditional %46 %47 %48 - %48 = OpLabel + %58 = OpLabel + %60 = OpLoad %int %j None + %61 = OpSLessThan %bool %60 %int_2 + OpSelectionMerge %62 None + OpBranchConditional %61 %62 %63 + %63 = OpLabel OpBranch %37 - %47 = OpLabel - %49 = OpLoad %int %i None - OpSelectionMerge %52 None - OpSwitch %49 %50 0 %51 - %51 = OpLabel + %62 = OpLabel + %64 = OpLoad %int %i None + OpSelectionMerge %67 None + OpSwitch %64 %65 0 %66 + %65 = OpLabel + OpBranch %67 + %66 = OpLabel OpBranch %35 - %50 = OpLabel - OpBranch %52 - %52 = OpLabel + %67 = OpLabel OpBranch %35 %35 = OpLabel - %53 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - %56 = OpLoad %uint %53 None -%tint_low_inc_1 = OpISub %uint %56 %uint_1 - %59 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - OpStore %59 %tint_low_inc_1 None - %60 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 -%tint_carry_1 = OpSelect %uint %60 %uint_1 %uint_0 - %62 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - %63 = OpLoad %uint %62 None - %64 = OpISub %uint %63 %tint_carry_1 - %65 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - OpStore %65 %64 None - %66 = OpLoad %int %j None - %67 = OpIAdd %int %66 %int_2 - OpStore %j %67 None + %68 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + %69 = OpLoad %uint %68 None +%tint_low_inc_1 = OpISub %uint %69 %uint_1 + %71 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + OpStore %71 %tint_low_inc_1 None + %72 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 +%tint_carry_1 = OpSelect %uint %72 %uint_1 %uint_0 + %74 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + %75 = OpLoad %uint %74 None + %76 = OpISub %uint %75 %tint_carry_1 + %77 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + OpStore %77 %76 None + %78 = OpLoad %int %j None + %79 = OpIAdd %int %78 %int_2 + OpStore %j %79 None OpBranch %36 %37 = OpLabel OpBranch %7 %7 = OpLabel - %68 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %69 = OpLoad %uint %68 None -%tint_low_inc = OpISub %uint %69 %uint_1 - %71 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %71 %tint_low_inc None - %72 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %72 %uint_1 %uint_0 - %74 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %75 = OpLoad %uint %74 None - %76 = OpISub %uint %75 %tint_carry - %77 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %77 %76 None - %78 = OpLoad %int %i None - %79 = OpIAdd %int %78 %int_2 - OpStore %i %79 None + %38 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %41 = OpLoad %uint %38 None +%tint_low_inc = OpISub %uint %41 %uint_1 + %44 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %44 %tint_low_inc None + %45 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %45 %uint_1 %uint_0 + %47 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %48 = OpLoad %uint %47 None + %49 = OpISub %uint %48 %tint_carry + %50 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %50 %49 None + %51 = OpLoad %int %i None + %52 = OpIAdd %int %51 %int_2 + OpStore %i %52 None OpBranch %8 %9 = OpLabel OpReturn
diff --git a/test/tint/loops/nested_loop_loop_switch_robustness.wgsl.expected.spvasm b/test/tint/loops/nested_loop_loop_switch_robustness.wgsl.expected.spvasm index cce3d97..e79293e 100644 --- a/test/tint/loops/nested_loop_loop_switch_robustness.wgsl.expected.spvasm +++ b/test/tint/loops/nested_loop_loop_switch_robustness.wgsl.expected.spvasm
@@ -10,12 +10,12 @@ OpName %main "main" OpName %tint_loop_idx "tint_loop_idx" OpName %i "i" + OpName %tint_low_inc "tint_low_inc" + OpName %tint_carry "tint_carry" OpName %tint_loop_idx_0 "tint_loop_idx" OpName %j "j" OpName %tint_low_inc_1 "tint_low_inc_1" OpName %tint_carry_1 "tint_carry_1" - OpName %tint_low_inc "tint_low_inc" - OpName %tint_carry "tint_carry" %void = OpTypeVoid %3 = OpTypeFunction %void %uint = OpTypeInt 32 0 @@ -72,65 +72,65 @@ OpLoopMerge %37 %35 None OpBranch %34 %34 = OpLabel - %40 = OpLoad %v2uint %tint_loop_idx_0 None - %41 = OpIEqual %v2bool %40 %22 - %42 = OpAll %bool %41 - OpSelectionMerge %43 None - OpBranchConditional %42 %44 %43 - %44 = OpLabel + %55 = OpLoad %v2uint %tint_loop_idx_0 None + %56 = OpIEqual %v2bool %55 %22 + %57 = OpAll %bool %56 + OpSelectionMerge %58 None + OpBranchConditional %57 %59 %58 + %59 = OpLabel OpBranch %37 - %43 = OpLabel - %45 = OpLoad %int %j None - %46 = OpSLessThan %bool %45 %int_2 - OpSelectionMerge %47 None - OpBranchConditional %46 %47 %48 - %48 = OpLabel + %58 = OpLabel + %60 = OpLoad %int %j None + %61 = OpSLessThan %bool %60 %int_2 + OpSelectionMerge %62 None + OpBranchConditional %61 %62 %63 + %63 = OpLabel OpBranch %37 - %47 = OpLabel - %49 = OpLoad %int %i None - OpSelectionMerge %52 None - OpSwitch %49 %50 0 %51 - %51 = OpLabel + %62 = OpLabel + %64 = OpLoad %int %i None + OpSelectionMerge %67 None + OpSwitch %64 %65 0 %66 + %65 = OpLabel + OpBranch %67 + %66 = OpLabel OpBranch %35 - %50 = OpLabel - OpBranch %52 - %52 = OpLabel + %67 = OpLabel OpBranch %35 %35 = OpLabel - %53 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - %56 = OpLoad %uint %53 None -%tint_low_inc_1 = OpISub %uint %56 %uint_1 - %59 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - OpStore %59 %tint_low_inc_1 None - %60 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 -%tint_carry_1 = OpSelect %uint %60 %uint_1 %uint_0 - %62 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - %63 = OpLoad %uint %62 None - %64 = OpISub %uint %63 %tint_carry_1 - %65 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - OpStore %65 %64 None - %66 = OpLoad %int %j None - %67 = OpIAdd %int %66 %int_2 - OpStore %j %67 None + %68 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + %69 = OpLoad %uint %68 None +%tint_low_inc_1 = OpISub %uint %69 %uint_1 + %71 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + OpStore %71 %tint_low_inc_1 None + %72 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 +%tint_carry_1 = OpSelect %uint %72 %uint_1 %uint_0 + %74 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + %75 = OpLoad %uint %74 None + %76 = OpISub %uint %75 %tint_carry_1 + %77 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + OpStore %77 %76 None + %78 = OpLoad %int %j None + %79 = OpIAdd %int %78 %int_2 + OpStore %j %79 None OpBranch %36 %37 = OpLabel OpBranch %7 %7 = OpLabel - %68 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %69 = OpLoad %uint %68 None -%tint_low_inc = OpISub %uint %69 %uint_1 - %71 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %71 %tint_low_inc None - %72 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %72 %uint_1 %uint_0 - %74 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %75 = OpLoad %uint %74 None - %76 = OpISub %uint %75 %tint_carry - %77 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %77 %76 None - %78 = OpLoad %int %i None - %79 = OpIAdd %int %78 %int_2 - OpStore %i %79 None + %38 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %41 = OpLoad %uint %38 None +%tint_low_inc = OpISub %uint %41 %uint_1 + %44 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %44 %tint_low_inc None + %45 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %45 %uint_1 %uint_0 + %47 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %48 = OpLoad %uint %47 None + %49 = OpISub %uint %48 %tint_carry + %50 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %50 %49 None + %51 = OpLoad %int %i None + %52 = OpIAdd %int %51 %int_2 + OpStore %i %52 None OpBranch %8 %9 = OpLabel OpReturn
diff --git a/test/tint/loops/nested_loop_switch_loop_switch.wgsl.expected.spvasm b/test/tint/loops/nested_loop_switch_loop_switch.wgsl.expected.spvasm index 595ec2d..7463eab 100644 --- a/test/tint/loops/nested_loop_switch_loop_switch.wgsl.expected.spvasm +++ b/test/tint/loops/nested_loop_switch_loop_switch.wgsl.expected.spvasm
@@ -10,12 +10,12 @@ OpName %main "main" OpName %tint_loop_idx "tint_loop_idx" OpName %i "i" + OpName %tint_low_inc "tint_low_inc" + OpName %tint_carry "tint_carry" OpName %tint_loop_idx_0 "tint_loop_idx" OpName %j "j" OpName %tint_low_inc_1 "tint_low_inc_1" OpName %tint_carry_1 "tint_carry_1" - OpName %tint_low_inc "tint_low_inc" - OpName %tint_carry "tint_carry" %void = OpTypeVoid %3 = OpTypeFunction %void %uint = OpTypeInt 32 0 @@ -66,79 +66,79 @@ %33 = OpLoad %int %i None OpSelectionMerge %36 None OpSwitch %33 %34 0 %35 - %35 = OpLabel - OpBranch %37 - %37 = OpLabel - OpStore %tint_loop_idx_0 %14 - OpStore %j %int_0 - OpBranch %40 - %40 = OpLabel - OpLoopMerge %41 %39 None - OpBranch %38 - %38 = OpLabel - %44 = OpLoad %v2uint %tint_loop_idx_0 None - %45 = OpIEqual %v2bool %44 %22 - %46 = OpAll %bool %45 - OpSelectionMerge %47 None - OpBranchConditional %46 %48 %47 - %48 = OpLabel - OpBranch %41 - %47 = OpLabel - %49 = OpLoad %int %j None - %50 = OpSLessThan %bool %49 %int_2 - OpSelectionMerge %51 None - OpBranchConditional %50 %51 %52 - %52 = OpLabel - OpBranch %41 - %51 = OpLabel - %53 = OpLoad %int %j None - OpSelectionMerge %56 None - OpSwitch %53 %54 0 %55 - %55 = OpLabel - OpBranch %39 - %54 = OpLabel - OpBranch %56 - %56 = OpLabel - OpBranch %39 - %39 = OpLabel - %57 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - %60 = OpLoad %uint %57 None -%tint_low_inc_1 = OpISub %uint %60 %uint_1 - %63 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - OpStore %63 %tint_low_inc_1 None - %64 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 -%tint_carry_1 = OpSelect %uint %64 %uint_1 %uint_0 - %66 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - %67 = OpLoad %uint %66 None - %68 = OpISub %uint %67 %tint_carry_1 - %69 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - OpStore %69 %68 None - %70 = OpLoad %int %j None - %71 = OpIAdd %int %70 %int_2 - OpStore %j %71 None - OpBranch %40 - %41 = OpLabel - OpBranch %7 %34 = OpLabel OpBranch %36 + %35 = OpLabel + OpBranch %52 + %52 = OpLabel + OpStore %tint_loop_idx_0 %14 + OpStore %j %int_0 + OpBranch %55 + %55 = OpLabel + OpLoopMerge %56 %54 None + OpBranch %53 + %53 = OpLabel + %59 = OpLoad %v2uint %tint_loop_idx_0 None + %60 = OpIEqual %v2bool %59 %22 + %61 = OpAll %bool %60 + OpSelectionMerge %62 None + OpBranchConditional %61 %63 %62 + %63 = OpLabel + OpBranch %56 + %62 = OpLabel + %64 = OpLoad %int %j None + %65 = OpSLessThan %bool %64 %int_2 + OpSelectionMerge %66 None + OpBranchConditional %65 %66 %67 + %67 = OpLabel + OpBranch %56 + %66 = OpLabel + %68 = OpLoad %int %j None + OpSelectionMerge %71 None + OpSwitch %68 %69 0 %70 + %69 = OpLabel + OpBranch %71 + %70 = OpLabel + OpBranch %54 + %71 = OpLabel + OpBranch %54 + %54 = OpLabel + %72 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + %73 = OpLoad %uint %72 None +%tint_low_inc_1 = OpISub %uint %73 %uint_1 + %75 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + OpStore %75 %tint_low_inc_1 None + %76 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 +%tint_carry_1 = OpSelect %uint %76 %uint_1 %uint_0 + %78 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + %79 = OpLoad %uint %78 None + %80 = OpISub %uint %79 %tint_carry_1 + %81 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + OpStore %81 %80 None + %82 = OpLoad %int %j None + %83 = OpIAdd %int %82 %int_2 + OpStore %j %83 None + OpBranch %55 + %56 = OpLabel + OpBranch %7 %36 = OpLabel OpBranch %7 %7 = OpLabel - %72 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %73 = OpLoad %uint %72 None -%tint_low_inc = OpISub %uint %73 %uint_1 - %75 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %75 %tint_low_inc None - %76 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %76 %uint_1 %uint_0 - %78 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %79 = OpLoad %uint %78 None - %80 = OpISub %uint %79 %tint_carry - %81 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %81 %80 None - %82 = OpLoad %int %i None - %83 = OpIAdd %int %82 %int_2 - OpStore %i %83 None + %37 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %40 = OpLoad %uint %37 None +%tint_low_inc = OpISub %uint %40 %uint_1 + %43 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %43 %tint_low_inc None + %44 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %44 %uint_1 %uint_0 + %46 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %47 = OpLoad %uint %46 None + %48 = OpISub %uint %47 %tint_carry + %49 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %49 %48 None + %50 = OpLoad %int %i None + %51 = OpIAdd %int %50 %int_2 + OpStore %i %51 None OpBranch %8 %9 = OpLabel OpReturn
diff --git a/test/tint/loops/nested_loop_switch_loop_switch_robustness.wgsl.expected.spvasm b/test/tint/loops/nested_loop_switch_loop_switch_robustness.wgsl.expected.spvasm index 595ec2d..7463eab 100644 --- a/test/tint/loops/nested_loop_switch_loop_switch_robustness.wgsl.expected.spvasm +++ b/test/tint/loops/nested_loop_switch_loop_switch_robustness.wgsl.expected.spvasm
@@ -10,12 +10,12 @@ OpName %main "main" OpName %tint_loop_idx "tint_loop_idx" OpName %i "i" + OpName %tint_low_inc "tint_low_inc" + OpName %tint_carry "tint_carry" OpName %tint_loop_idx_0 "tint_loop_idx" OpName %j "j" OpName %tint_low_inc_1 "tint_low_inc_1" OpName %tint_carry_1 "tint_carry_1" - OpName %tint_low_inc "tint_low_inc" - OpName %tint_carry "tint_carry" %void = OpTypeVoid %3 = OpTypeFunction %void %uint = OpTypeInt 32 0 @@ -66,79 +66,79 @@ %33 = OpLoad %int %i None OpSelectionMerge %36 None OpSwitch %33 %34 0 %35 - %35 = OpLabel - OpBranch %37 - %37 = OpLabel - OpStore %tint_loop_idx_0 %14 - OpStore %j %int_0 - OpBranch %40 - %40 = OpLabel - OpLoopMerge %41 %39 None - OpBranch %38 - %38 = OpLabel - %44 = OpLoad %v2uint %tint_loop_idx_0 None - %45 = OpIEqual %v2bool %44 %22 - %46 = OpAll %bool %45 - OpSelectionMerge %47 None - OpBranchConditional %46 %48 %47 - %48 = OpLabel - OpBranch %41 - %47 = OpLabel - %49 = OpLoad %int %j None - %50 = OpSLessThan %bool %49 %int_2 - OpSelectionMerge %51 None - OpBranchConditional %50 %51 %52 - %52 = OpLabel - OpBranch %41 - %51 = OpLabel - %53 = OpLoad %int %j None - OpSelectionMerge %56 None - OpSwitch %53 %54 0 %55 - %55 = OpLabel - OpBranch %39 - %54 = OpLabel - OpBranch %56 - %56 = OpLabel - OpBranch %39 - %39 = OpLabel - %57 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - %60 = OpLoad %uint %57 None -%tint_low_inc_1 = OpISub %uint %60 %uint_1 - %63 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - OpStore %63 %tint_low_inc_1 None - %64 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 -%tint_carry_1 = OpSelect %uint %64 %uint_1 %uint_0 - %66 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - %67 = OpLoad %uint %66 None - %68 = OpISub %uint %67 %tint_carry_1 - %69 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - OpStore %69 %68 None - %70 = OpLoad %int %j None - %71 = OpIAdd %int %70 %int_2 - OpStore %j %71 None - OpBranch %40 - %41 = OpLabel - OpBranch %7 %34 = OpLabel OpBranch %36 + %35 = OpLabel + OpBranch %52 + %52 = OpLabel + OpStore %tint_loop_idx_0 %14 + OpStore %j %int_0 + OpBranch %55 + %55 = OpLabel + OpLoopMerge %56 %54 None + OpBranch %53 + %53 = OpLabel + %59 = OpLoad %v2uint %tint_loop_idx_0 None + %60 = OpIEqual %v2bool %59 %22 + %61 = OpAll %bool %60 + OpSelectionMerge %62 None + OpBranchConditional %61 %63 %62 + %63 = OpLabel + OpBranch %56 + %62 = OpLabel + %64 = OpLoad %int %j None + %65 = OpSLessThan %bool %64 %int_2 + OpSelectionMerge %66 None + OpBranchConditional %65 %66 %67 + %67 = OpLabel + OpBranch %56 + %66 = OpLabel + %68 = OpLoad %int %j None + OpSelectionMerge %71 None + OpSwitch %68 %69 0 %70 + %69 = OpLabel + OpBranch %71 + %70 = OpLabel + OpBranch %54 + %71 = OpLabel + OpBranch %54 + %54 = OpLabel + %72 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + %73 = OpLoad %uint %72 None +%tint_low_inc_1 = OpISub %uint %73 %uint_1 + %75 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + OpStore %75 %tint_low_inc_1 None + %76 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 +%tint_carry_1 = OpSelect %uint %76 %uint_1 %uint_0 + %78 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + %79 = OpLoad %uint %78 None + %80 = OpISub %uint %79 %tint_carry_1 + %81 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + OpStore %81 %80 None + %82 = OpLoad %int %j None + %83 = OpIAdd %int %82 %int_2 + OpStore %j %83 None + OpBranch %55 + %56 = OpLabel + OpBranch %7 %36 = OpLabel OpBranch %7 %7 = OpLabel - %72 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %73 = OpLoad %uint %72 None -%tint_low_inc = OpISub %uint %73 %uint_1 - %75 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %75 %tint_low_inc None - %76 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %76 %uint_1 %uint_0 - %78 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %79 = OpLoad %uint %78 None - %80 = OpISub %uint %79 %tint_carry - %81 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %81 %80 None - %82 = OpLoad %int %i None - %83 = OpIAdd %int %82 %int_2 - OpStore %i %83 None + %37 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %40 = OpLoad %uint %37 None +%tint_low_inc = OpISub %uint %40 %uint_1 + %43 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %43 %tint_low_inc None + %44 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %44 %uint_1 %uint_0 + %46 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %47 = OpLoad %uint %46 None + %48 = OpISub %uint %47 %tint_carry + %49 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %49 %48 None + %50 = OpLoad %int %i None + %51 = OpIAdd %int %50 %int_2 + OpStore %i %51 None OpBranch %8 %9 = OpLabel OpReturn
diff --git a/test/tint/loops/nested_loop_switch_loop_switch_switch.wgsl.expected.spvasm b/test/tint/loops/nested_loop_switch_loop_switch_switch.wgsl.expected.spvasm index 93290c9..8484bee 100644 --- a/test/tint/loops/nested_loop_switch_loop_switch_switch.wgsl.expected.spvasm +++ b/test/tint/loops/nested_loop_switch_loop_switch_switch.wgsl.expected.spvasm
@@ -11,12 +11,12 @@ OpName %k "k" OpName %tint_loop_idx "tint_loop_idx" OpName %i "i" + OpName %tint_low_inc "tint_low_inc" + OpName %tint_carry "tint_carry" OpName %tint_loop_idx_0 "tint_loop_idx" OpName %j "j" OpName %tint_low_inc_1 "tint_low_inc_1" OpName %tint_carry_1 "tint_carry_1" - OpName %tint_low_inc "tint_low_inc" - OpName %tint_carry "tint_carry" %void = OpTypeVoid %3 = OpTypeFunction %void %int = OpTypeInt 32 1 @@ -69,89 +69,89 @@ %34 = OpLoad %int %i None OpSelectionMerge %37 None OpSwitch %34 %35 0 %36 - %36 = OpLabel - OpBranch %38 - %38 = OpLabel - OpStore %tint_loop_idx_0 %18 - OpStore %j %int_0 - OpBranch %41 - %41 = OpLabel - OpLoopMerge %42 %40 None - OpBranch %39 - %39 = OpLabel - %45 = OpLoad %v2uint %tint_loop_idx_0 None - %46 = OpIEqual %v2bool %45 %23 - %47 = OpAll %bool %46 - OpSelectionMerge %48 None - OpBranchConditional %47 %49 %48 - %49 = OpLabel - OpBranch %42 - %48 = OpLabel - %50 = OpLoad %int %j None - %51 = OpSLessThan %bool %50 %int_2 - OpSelectionMerge %52 None - OpBranchConditional %51 %52 %53 - %53 = OpLabel - OpBranch %42 - %52 = OpLabel - %54 = OpLoad %int %j None - OpSelectionMerge %58 None - OpSwitch %54 %55 0 %56 1 %57 - %56 = OpLabel - OpBranch %40 - %57 = OpLabel - %59 = OpLoad %int %k None - OpSelectionMerge %62 None - OpSwitch %59 %60 0 %61 - %61 = OpLabel - OpBranch %40 - %60 = OpLabel - OpBranch %62 - %62 = OpLabel - OpBranch %58 - %55 = OpLabel - OpBranch %58 - %58 = OpLabel - OpBranch %40 - %40 = OpLabel - %63 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - %66 = OpLoad %uint %63 None -%tint_low_inc_1 = OpISub %uint %66 %uint_1 - %69 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - OpStore %69 %tint_low_inc_1 None - %70 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 -%tint_carry_1 = OpSelect %uint %70 %uint_1 %uint_0 - %72 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - %73 = OpLoad %uint %72 None - %74 = OpISub %uint %73 %tint_carry_1 - %75 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - OpStore %75 %74 None - %76 = OpLoad %int %j None - %77 = OpIAdd %int %76 %int_2 - OpStore %j %77 None - OpBranch %41 - %42 = OpLabel - OpBranch %11 %35 = OpLabel OpBranch %37 + %36 = OpLabel + OpBranch %53 + %53 = OpLabel + OpStore %tint_loop_idx_0 %18 + OpStore %j %int_0 + OpBranch %56 + %56 = OpLabel + OpLoopMerge %57 %55 None + OpBranch %54 + %54 = OpLabel + %60 = OpLoad %v2uint %tint_loop_idx_0 None + %61 = OpIEqual %v2bool %60 %23 + %62 = OpAll %bool %61 + OpSelectionMerge %63 None + OpBranchConditional %62 %64 %63 + %64 = OpLabel + OpBranch %57 + %63 = OpLabel + %65 = OpLoad %int %j None + %66 = OpSLessThan %bool %65 %int_2 + OpSelectionMerge %67 None + OpBranchConditional %66 %67 %68 + %68 = OpLabel + OpBranch %57 + %67 = OpLabel + %69 = OpLoad %int %j None + OpSelectionMerge %73 None + OpSwitch %69 %70 0 %71 1 %72 + %70 = OpLabel + OpBranch %73 + %71 = OpLabel + OpBranch %55 + %72 = OpLabel + %86 = OpLoad %int %k None + OpSelectionMerge %89 None + OpSwitch %86 %87 0 %88 + %87 = OpLabel + OpBranch %89 + %88 = OpLabel + OpBranch %55 + %89 = OpLabel + OpBranch %73 + %73 = OpLabel + OpBranch %55 + %55 = OpLabel + %74 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + %75 = OpLoad %uint %74 None +%tint_low_inc_1 = OpISub %uint %75 %uint_1 + %77 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + OpStore %77 %tint_low_inc_1 None + %78 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 +%tint_carry_1 = OpSelect %uint %78 %uint_1 %uint_0 + %80 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + %81 = OpLoad %uint %80 None + %82 = OpISub %uint %81 %tint_carry_1 + %83 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + OpStore %83 %82 None + %84 = OpLoad %int %j None + %85 = OpIAdd %int %84 %int_2 + OpStore %j %85 None + OpBranch %56 + %57 = OpLabel + OpBranch %11 %37 = OpLabel OpBranch %11 %11 = OpLabel - %78 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %79 = OpLoad %uint %78 None -%tint_low_inc = OpISub %uint %79 %uint_1 - %81 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %81 %tint_low_inc None - %82 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %82 %uint_1 %uint_0 - %84 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %85 = OpLoad %uint %84 None - %86 = OpISub %uint %85 %tint_carry - %87 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %87 %86 None - %88 = OpLoad %int %i None - %89 = OpIAdd %int %88 %int_2 - OpStore %i %89 None + %38 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %41 = OpLoad %uint %38 None +%tint_low_inc = OpISub %uint %41 %uint_1 + %44 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %44 %tint_low_inc None + %45 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %45 %uint_1 %uint_0 + %47 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %48 = OpLoad %uint %47 None + %49 = OpISub %uint %48 %tint_carry + %50 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %50 %49 None + %51 = OpLoad %int %i None + %52 = OpIAdd %int %51 %int_2 + OpStore %i %52 None OpBranch %12 %13 = OpLabel OpReturn
diff --git a/test/tint/loops/nested_loop_switch_loop_switch_switch_robustness.wgsl.expected.spvasm b/test/tint/loops/nested_loop_switch_loop_switch_switch_robustness.wgsl.expected.spvasm index 93290c9..8484bee 100644 --- a/test/tint/loops/nested_loop_switch_loop_switch_switch_robustness.wgsl.expected.spvasm +++ b/test/tint/loops/nested_loop_switch_loop_switch_switch_robustness.wgsl.expected.spvasm
@@ -11,12 +11,12 @@ OpName %k "k" OpName %tint_loop_idx "tint_loop_idx" OpName %i "i" + OpName %tint_low_inc "tint_low_inc" + OpName %tint_carry "tint_carry" OpName %tint_loop_idx_0 "tint_loop_idx" OpName %j "j" OpName %tint_low_inc_1 "tint_low_inc_1" OpName %tint_carry_1 "tint_carry_1" - OpName %tint_low_inc "tint_low_inc" - OpName %tint_carry "tint_carry" %void = OpTypeVoid %3 = OpTypeFunction %void %int = OpTypeInt 32 1 @@ -69,89 +69,89 @@ %34 = OpLoad %int %i None OpSelectionMerge %37 None OpSwitch %34 %35 0 %36 - %36 = OpLabel - OpBranch %38 - %38 = OpLabel - OpStore %tint_loop_idx_0 %18 - OpStore %j %int_0 - OpBranch %41 - %41 = OpLabel - OpLoopMerge %42 %40 None - OpBranch %39 - %39 = OpLabel - %45 = OpLoad %v2uint %tint_loop_idx_0 None - %46 = OpIEqual %v2bool %45 %23 - %47 = OpAll %bool %46 - OpSelectionMerge %48 None - OpBranchConditional %47 %49 %48 - %49 = OpLabel - OpBranch %42 - %48 = OpLabel - %50 = OpLoad %int %j None - %51 = OpSLessThan %bool %50 %int_2 - OpSelectionMerge %52 None - OpBranchConditional %51 %52 %53 - %53 = OpLabel - OpBranch %42 - %52 = OpLabel - %54 = OpLoad %int %j None - OpSelectionMerge %58 None - OpSwitch %54 %55 0 %56 1 %57 - %56 = OpLabel - OpBranch %40 - %57 = OpLabel - %59 = OpLoad %int %k None - OpSelectionMerge %62 None - OpSwitch %59 %60 0 %61 - %61 = OpLabel - OpBranch %40 - %60 = OpLabel - OpBranch %62 - %62 = OpLabel - OpBranch %58 - %55 = OpLabel - OpBranch %58 - %58 = OpLabel - OpBranch %40 - %40 = OpLabel - %63 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - %66 = OpLoad %uint %63 None -%tint_low_inc_1 = OpISub %uint %66 %uint_1 - %69 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - OpStore %69 %tint_low_inc_1 None - %70 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 -%tint_carry_1 = OpSelect %uint %70 %uint_1 %uint_0 - %72 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - %73 = OpLoad %uint %72 None - %74 = OpISub %uint %73 %tint_carry_1 - %75 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - OpStore %75 %74 None - %76 = OpLoad %int %j None - %77 = OpIAdd %int %76 %int_2 - OpStore %j %77 None - OpBranch %41 - %42 = OpLabel - OpBranch %11 %35 = OpLabel OpBranch %37 + %36 = OpLabel + OpBranch %53 + %53 = OpLabel + OpStore %tint_loop_idx_0 %18 + OpStore %j %int_0 + OpBranch %56 + %56 = OpLabel + OpLoopMerge %57 %55 None + OpBranch %54 + %54 = OpLabel + %60 = OpLoad %v2uint %tint_loop_idx_0 None + %61 = OpIEqual %v2bool %60 %23 + %62 = OpAll %bool %61 + OpSelectionMerge %63 None + OpBranchConditional %62 %64 %63 + %64 = OpLabel + OpBranch %57 + %63 = OpLabel + %65 = OpLoad %int %j None + %66 = OpSLessThan %bool %65 %int_2 + OpSelectionMerge %67 None + OpBranchConditional %66 %67 %68 + %68 = OpLabel + OpBranch %57 + %67 = OpLabel + %69 = OpLoad %int %j None + OpSelectionMerge %73 None + OpSwitch %69 %70 0 %71 1 %72 + %70 = OpLabel + OpBranch %73 + %71 = OpLabel + OpBranch %55 + %72 = OpLabel + %86 = OpLoad %int %k None + OpSelectionMerge %89 None + OpSwitch %86 %87 0 %88 + %87 = OpLabel + OpBranch %89 + %88 = OpLabel + OpBranch %55 + %89 = OpLabel + OpBranch %73 + %73 = OpLabel + OpBranch %55 + %55 = OpLabel + %74 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + %75 = OpLoad %uint %74 None +%tint_low_inc_1 = OpISub %uint %75 %uint_1 + %77 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + OpStore %77 %tint_low_inc_1 None + %78 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 +%tint_carry_1 = OpSelect %uint %78 %uint_1 %uint_0 + %80 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + %81 = OpLoad %uint %80 None + %82 = OpISub %uint %81 %tint_carry_1 + %83 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + OpStore %83 %82 None + %84 = OpLoad %int %j None + %85 = OpIAdd %int %84 %int_2 + OpStore %j %85 None + OpBranch %56 + %57 = OpLabel + OpBranch %11 %37 = OpLabel OpBranch %11 %11 = OpLabel - %78 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %79 = OpLoad %uint %78 None -%tint_low_inc = OpISub %uint %79 %uint_1 - %81 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %81 %tint_low_inc None - %82 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %82 %uint_1 %uint_0 - %84 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %85 = OpLoad %uint %84 None - %86 = OpISub %uint %85 %tint_carry - %87 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %87 %86 None - %88 = OpLoad %int %i None - %89 = OpIAdd %int %88 %int_2 - OpStore %i %89 None + %38 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %41 = OpLoad %uint %38 None +%tint_low_inc = OpISub %uint %41 %uint_1 + %44 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %44 %tint_low_inc None + %45 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %45 %uint_1 %uint_0 + %47 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %48 = OpLoad %uint %47 None + %49 = OpISub %uint %48 %tint_carry + %50 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %50 %49 None + %51 = OpLoad %int %i None + %52 = OpIAdd %int %51 %int_2 + OpStore %i %52 None OpBranch %12 %13 = OpLabel OpReturn
diff --git a/test/tint/loops/nested_loop_switch_switch.wgsl.expected.spvasm b/test/tint/loops/nested_loop_switch_switch.wgsl.expected.spvasm index 2b6ba7f..458006a 100644 --- a/test/tint/loops/nested_loop_switch_switch.wgsl.expected.spvasm +++ b/test/tint/loops/nested_loop_switch_switch.wgsl.expected.spvasm
@@ -63,36 +63,36 @@ %34 = OpLoad %int %i None OpSelectionMerge %37 None OpSwitch %34 %35 0 %36 - %36 = OpLabel - %38 = OpLoad %int %j None - OpSelectionMerge %41 None - OpSwitch %38 %39 0 %40 - %40 = OpLabel - OpBranch %11 - %39 = OpLabel - OpBranch %41 - %41 = OpLabel - OpBranch %37 %35 = OpLabel OpBranch %37 + %36 = OpLabel + %53 = OpLoad %int %j None + OpSelectionMerge %56 None + OpSwitch %53 %54 0 %55 + %54 = OpLabel + OpBranch %56 + %55 = OpLabel + OpBranch %11 + %56 = OpLabel + OpBranch %37 %37 = OpLabel OpBranch %11 %11 = OpLabel - %42 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %45 = OpLoad %uint %42 None -%tint_low_inc = OpISub %uint %45 %uint_1 - %48 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %48 %tint_low_inc None - %49 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %49 %uint_1 %uint_0 - %51 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %52 = OpLoad %uint %51 None - %53 = OpISub %uint %52 %tint_carry - %54 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %54 %53 None - %55 = OpLoad %int %i None - %56 = OpIAdd %int %55 %int_2 - OpStore %i %56 None + %38 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %41 = OpLoad %uint %38 None +%tint_low_inc = OpISub %uint %41 %uint_1 + %44 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %44 %tint_low_inc None + %45 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %45 %uint_1 %uint_0 + %47 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %48 = OpLoad %uint %47 None + %49 = OpISub %uint %48 %tint_carry + %50 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %50 %49 None + %51 = OpLoad %int %i None + %52 = OpIAdd %int %51 %int_2 + OpStore %i %52 None OpBranch %12 %13 = OpLabel OpReturn
diff --git a/test/tint/loops/nested_loop_switch_switch_robustness.wgsl.expected.spvasm b/test/tint/loops/nested_loop_switch_switch_robustness.wgsl.expected.spvasm index 2b6ba7f..458006a 100644 --- a/test/tint/loops/nested_loop_switch_switch_robustness.wgsl.expected.spvasm +++ b/test/tint/loops/nested_loop_switch_switch_robustness.wgsl.expected.spvasm
@@ -63,36 +63,36 @@ %34 = OpLoad %int %i None OpSelectionMerge %37 None OpSwitch %34 %35 0 %36 - %36 = OpLabel - %38 = OpLoad %int %j None - OpSelectionMerge %41 None - OpSwitch %38 %39 0 %40 - %40 = OpLabel - OpBranch %11 - %39 = OpLabel - OpBranch %41 - %41 = OpLabel - OpBranch %37 %35 = OpLabel OpBranch %37 + %36 = OpLabel + %53 = OpLoad %int %j None + OpSelectionMerge %56 None + OpSwitch %53 %54 0 %55 + %54 = OpLabel + OpBranch %56 + %55 = OpLabel + OpBranch %11 + %56 = OpLabel + OpBranch %37 %37 = OpLabel OpBranch %11 %11 = OpLabel - %42 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %45 = OpLoad %uint %42 None -%tint_low_inc = OpISub %uint %45 %uint_1 - %48 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %48 %tint_low_inc None - %49 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %49 %uint_1 %uint_0 - %51 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %52 = OpLoad %uint %51 None - %53 = OpISub %uint %52 %tint_carry - %54 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %54 %53 None - %55 = OpLoad %int %i None - %56 = OpIAdd %int %55 %int_2 - OpStore %i %56 None + %38 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %41 = OpLoad %uint %38 None +%tint_low_inc = OpISub %uint %41 %uint_1 + %44 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %44 %tint_low_inc None + %45 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %45 %uint_1 %uint_0 + %47 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %48 = OpLoad %uint %47 None + %49 = OpISub %uint %48 %tint_carry + %50 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %50 %49 None + %51 = OpLoad %int %i None + %52 = OpIAdd %int %51 %int_2 + OpStore %i %52 None OpBranch %12 %13 = OpLabel OpReturn
diff --git a/test/tint/loops/nested_loops.wgsl.expected.spvasm b/test/tint/loops/nested_loops.wgsl.expected.spvasm index d9a5acf..df3b7fa 100644 --- a/test/tint/loops/nested_loops.wgsl.expected.spvasm +++ b/test/tint/loops/nested_loops.wgsl.expected.spvasm
@@ -13,11 +13,11 @@ OpName %i "i" OpName %j "j" OpName %tint_loop_idx "tint_loop_idx" + OpName %tint_low_inc "tint_low_inc" + OpName %tint_carry "tint_carry" OpName %tint_loop_idx_0 "tint_loop_idx" OpName %tint_low_inc_1 "tint_low_inc_1" OpName %tint_carry_1 "tint_carry_1" - OpName %tint_low_inc "tint_low_inc" - OpName %tint_carry "tint_carry" OpName %unused_entry_point "unused_entry_point" %int = OpTypeInt 32 1 %3 = OpTypeFunction %int @@ -30,16 +30,16 @@ %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %23 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %27 = OpConstantNull %v2uint + %24 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %28 = OpConstantNull %v2uint %v2bool = OpTypeVector %bool 2 %int_1 = OpConstant %int 1 %int_4 = OpConstant %int 4 - %false = OpConstantFalse %bool - %int_2 = OpConstant %int 2 %_ptr_Function_uint = OpTypePointer Function %uint %uint_0 = OpConstant %uint 0 %uint_1 = OpConstant %uint 1 + %false = OpConstantFalse %bool + %int_2 = OpConstant %int 2 %void = OpTypeVoid %91 = OpTypeFunction %void %f = OpFunction %int None %3 @@ -53,106 +53,106 @@ OpStore %continue_execution %true OpBranch %14 %14 = OpLabel - OpStore %tint_loop_idx %23 + OpStore %tint_loop_idx %24 OpBranch %17 %17 = OpLabel OpLoopMerge %18 %16 None OpBranch %15 %15 = OpLabel - %25 = OpLoad %v2uint %tint_loop_idx None - %26 = OpIEqual %v2bool %25 %27 - %29 = OpAll %bool %26 - OpSelectionMerge %30 None - OpBranchConditional %29 %31 %30 - %31 = OpLabel + %26 = OpLoad %v2uint %tint_loop_idx None + %27 = OpIEqual %v2bool %26 %28 + %30 = OpAll %bool %27 + OpSelectionMerge %31 None + OpBranchConditional %30 %32 %31 + %32 = OpLabel OpBranch %18 - %30 = OpLabel - %32 = OpLoad %int %i None - %33 = OpIAdd %int %32 %int_1 - OpStore %i %33 None - %35 = OpLoad %int %i None - %36 = OpSGreaterThan %bool %35 %int_4 - OpSelectionMerge %38 None - OpBranchConditional %36 %39 %38 - %39 = OpLabel + %31 = OpLabel + %33 = OpLoad %int %i None + %34 = OpIAdd %int %33 %int_1 + OpStore %i %34 None + %36 = OpLoad %int %i None + %37 = OpSGreaterThan %bool %36 %int_4 + OpSelectionMerge %39 None + OpBranchConditional %37 %40 %39 + %40 = OpLabel OpStore %continue_execution %false None OpStore %return_value %int_1 None - OpBranch %38 - %38 = OpLabel + OpBranch %39 + %39 = OpLabel %41 = OpLoad %bool %continue_execution None OpSelectionMerge %42 None OpBranchConditional %41 %43 %42 %43 = OpLabel - OpBranch %44 - %44 = OpLabel - OpStore %tint_loop_idx_0 %23 - OpBranch %47 - %47 = OpLabel - OpLoopMerge %48 %46 None - OpBranch %45 - %45 = OpLabel - %50 = OpLoad %v2uint %tint_loop_idx_0 None - %51 = OpIEqual %v2bool %50 %27 - %52 = OpAll %bool %51 - OpSelectionMerge %53 None - OpBranchConditional %52 %54 %53 - %54 = OpLabel - OpBranch %48 - %53 = OpLabel - %55 = OpLoad %int %j None - %56 = OpIAdd %int %55 %int_1 - OpStore %j %56 None - %57 = OpLoad %int %j None - %58 = OpSGreaterThan %bool %57 %int_4 - OpSelectionMerge %59 None - OpBranchConditional %58 %60 %59 - %60 = OpLabel - OpStore %continue_execution %false None - OpStore %return_value %int_2 None + OpBranch %58 + %58 = OpLabel + OpStore %tint_loop_idx_0 %24 + OpBranch %61 + %61 = OpLabel + OpLoopMerge %62 %60 None OpBranch %59 %59 = OpLabel - %62 = OpLoad %bool %continue_execution None - OpSelectionMerge %63 None - OpBranchConditional %62 %64 %63 - %64 = OpLabel - OpBranch %46 - %63 = OpLabel - OpBranch %48 - %46 = OpLabel - %65 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - %68 = OpLoad %uint %65 None -%tint_low_inc_1 = OpISub %uint %68 %uint_1 - %71 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - OpStore %71 %tint_low_inc_1 None - %72 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 -%tint_carry_1 = OpSelect %uint %72 %uint_1 %uint_0 - %74 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - %75 = OpLoad %uint %74 None - %76 = OpISub %uint %75 %tint_carry_1 - %77 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - OpStore %77 %76 None - OpBranch %47 - %48 = OpLabel + %64 = OpLoad %v2uint %tint_loop_idx_0 None + %65 = OpIEqual %v2bool %64 %28 + %66 = OpAll %bool %65 + OpSelectionMerge %67 None + OpBranchConditional %66 %68 %67 + %68 = OpLabel + OpBranch %62 + %67 = OpLabel + %69 = OpLoad %int %j None + %70 = OpIAdd %int %69 %int_1 + OpStore %j %70 None + %71 = OpLoad %int %j None + %72 = OpSGreaterThan %bool %71 %int_4 + OpSelectionMerge %73 None + OpBranchConditional %72 %74 %73 + %74 = OpLabel + OpStore %continue_execution %false None + OpStore %return_value %int_2 None + OpBranch %73 + %73 = OpLabel + %75 = OpLoad %bool %continue_execution None + OpSelectionMerge %76 None + OpBranchConditional %75 %77 %76 + %77 = OpLabel + OpBranch %60 + %76 = OpLabel + OpBranch %62 + %60 = OpLabel + %78 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + %79 = OpLoad %uint %78 None +%tint_low_inc_1 = OpISub %uint %79 %uint_1 + %81 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + OpStore %81 %tint_low_inc_1 None + %82 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 +%tint_carry_1 = OpSelect %uint %82 %uint_1 %uint_0 + %84 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + %85 = OpLoad %uint %84 None + %86 = OpISub %uint %85 %tint_carry_1 + %87 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + OpStore %87 %86 None + OpBranch %61 + %62 = OpLabel OpBranch %42 %42 = OpLabel OpBranch %18 %16 = OpLabel - %78 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %79 = OpLoad %uint %78 None -%tint_low_inc = OpISub %uint %79 %uint_1 - %81 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %81 %tint_low_inc None - %82 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %82 %uint_1 %uint_0 - %84 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %85 = OpLoad %uint %84 None - %86 = OpISub %uint %85 %tint_carry - %87 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %87 %86 None + %44 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %47 = OpLoad %uint %44 None +%tint_low_inc = OpISub %uint %47 %uint_1 + %50 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %50 %tint_low_inc None + %51 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %51 %uint_1 %uint_0 + %53 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %54 = OpLoad %uint %53 None + %55 = OpISub %uint %54 %tint_carry + %56 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %56 %55 None OpBranch %17 %18 = OpLabel - %88 = OpLoad %int %return_value None - OpReturnValue %88 + %19 = OpLoad %int %return_value None + OpReturnValue %19 OpFunctionEnd %unused_entry_point = OpFunction %void None %91 %92 = OpLabel
diff --git a/test/tint/loops/nested_loops_robustness.wgsl.expected.spvasm b/test/tint/loops/nested_loops_robustness.wgsl.expected.spvasm index d9a5acf..df3b7fa 100644 --- a/test/tint/loops/nested_loops_robustness.wgsl.expected.spvasm +++ b/test/tint/loops/nested_loops_robustness.wgsl.expected.spvasm
@@ -13,11 +13,11 @@ OpName %i "i" OpName %j "j" OpName %tint_loop_idx "tint_loop_idx" + OpName %tint_low_inc "tint_low_inc" + OpName %tint_carry "tint_carry" OpName %tint_loop_idx_0 "tint_loop_idx" OpName %tint_low_inc_1 "tint_low_inc_1" OpName %tint_carry_1 "tint_carry_1" - OpName %tint_low_inc "tint_low_inc" - OpName %tint_carry "tint_carry" OpName %unused_entry_point "unused_entry_point" %int = OpTypeInt 32 1 %3 = OpTypeFunction %int @@ -30,16 +30,16 @@ %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %23 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %27 = OpConstantNull %v2uint + %24 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %28 = OpConstantNull %v2uint %v2bool = OpTypeVector %bool 2 %int_1 = OpConstant %int 1 %int_4 = OpConstant %int 4 - %false = OpConstantFalse %bool - %int_2 = OpConstant %int 2 %_ptr_Function_uint = OpTypePointer Function %uint %uint_0 = OpConstant %uint 0 %uint_1 = OpConstant %uint 1 + %false = OpConstantFalse %bool + %int_2 = OpConstant %int 2 %void = OpTypeVoid %91 = OpTypeFunction %void %f = OpFunction %int None %3 @@ -53,106 +53,106 @@ OpStore %continue_execution %true OpBranch %14 %14 = OpLabel - OpStore %tint_loop_idx %23 + OpStore %tint_loop_idx %24 OpBranch %17 %17 = OpLabel OpLoopMerge %18 %16 None OpBranch %15 %15 = OpLabel - %25 = OpLoad %v2uint %tint_loop_idx None - %26 = OpIEqual %v2bool %25 %27 - %29 = OpAll %bool %26 - OpSelectionMerge %30 None - OpBranchConditional %29 %31 %30 - %31 = OpLabel + %26 = OpLoad %v2uint %tint_loop_idx None + %27 = OpIEqual %v2bool %26 %28 + %30 = OpAll %bool %27 + OpSelectionMerge %31 None + OpBranchConditional %30 %32 %31 + %32 = OpLabel OpBranch %18 - %30 = OpLabel - %32 = OpLoad %int %i None - %33 = OpIAdd %int %32 %int_1 - OpStore %i %33 None - %35 = OpLoad %int %i None - %36 = OpSGreaterThan %bool %35 %int_4 - OpSelectionMerge %38 None - OpBranchConditional %36 %39 %38 - %39 = OpLabel + %31 = OpLabel + %33 = OpLoad %int %i None + %34 = OpIAdd %int %33 %int_1 + OpStore %i %34 None + %36 = OpLoad %int %i None + %37 = OpSGreaterThan %bool %36 %int_4 + OpSelectionMerge %39 None + OpBranchConditional %37 %40 %39 + %40 = OpLabel OpStore %continue_execution %false None OpStore %return_value %int_1 None - OpBranch %38 - %38 = OpLabel + OpBranch %39 + %39 = OpLabel %41 = OpLoad %bool %continue_execution None OpSelectionMerge %42 None OpBranchConditional %41 %43 %42 %43 = OpLabel - OpBranch %44 - %44 = OpLabel - OpStore %tint_loop_idx_0 %23 - OpBranch %47 - %47 = OpLabel - OpLoopMerge %48 %46 None - OpBranch %45 - %45 = OpLabel - %50 = OpLoad %v2uint %tint_loop_idx_0 None - %51 = OpIEqual %v2bool %50 %27 - %52 = OpAll %bool %51 - OpSelectionMerge %53 None - OpBranchConditional %52 %54 %53 - %54 = OpLabel - OpBranch %48 - %53 = OpLabel - %55 = OpLoad %int %j None - %56 = OpIAdd %int %55 %int_1 - OpStore %j %56 None - %57 = OpLoad %int %j None - %58 = OpSGreaterThan %bool %57 %int_4 - OpSelectionMerge %59 None - OpBranchConditional %58 %60 %59 - %60 = OpLabel - OpStore %continue_execution %false None - OpStore %return_value %int_2 None + OpBranch %58 + %58 = OpLabel + OpStore %tint_loop_idx_0 %24 + OpBranch %61 + %61 = OpLabel + OpLoopMerge %62 %60 None OpBranch %59 %59 = OpLabel - %62 = OpLoad %bool %continue_execution None - OpSelectionMerge %63 None - OpBranchConditional %62 %64 %63 - %64 = OpLabel - OpBranch %46 - %63 = OpLabel - OpBranch %48 - %46 = OpLabel - %65 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - %68 = OpLoad %uint %65 None -%tint_low_inc_1 = OpISub %uint %68 %uint_1 - %71 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - OpStore %71 %tint_low_inc_1 None - %72 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 -%tint_carry_1 = OpSelect %uint %72 %uint_1 %uint_0 - %74 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - %75 = OpLoad %uint %74 None - %76 = OpISub %uint %75 %tint_carry_1 - %77 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - OpStore %77 %76 None - OpBranch %47 - %48 = OpLabel + %64 = OpLoad %v2uint %tint_loop_idx_0 None + %65 = OpIEqual %v2bool %64 %28 + %66 = OpAll %bool %65 + OpSelectionMerge %67 None + OpBranchConditional %66 %68 %67 + %68 = OpLabel + OpBranch %62 + %67 = OpLabel + %69 = OpLoad %int %j None + %70 = OpIAdd %int %69 %int_1 + OpStore %j %70 None + %71 = OpLoad %int %j None + %72 = OpSGreaterThan %bool %71 %int_4 + OpSelectionMerge %73 None + OpBranchConditional %72 %74 %73 + %74 = OpLabel + OpStore %continue_execution %false None + OpStore %return_value %int_2 None + OpBranch %73 + %73 = OpLabel + %75 = OpLoad %bool %continue_execution None + OpSelectionMerge %76 None + OpBranchConditional %75 %77 %76 + %77 = OpLabel + OpBranch %60 + %76 = OpLabel + OpBranch %62 + %60 = OpLabel + %78 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + %79 = OpLoad %uint %78 None +%tint_low_inc_1 = OpISub %uint %79 %uint_1 + %81 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + OpStore %81 %tint_low_inc_1 None + %82 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 +%tint_carry_1 = OpSelect %uint %82 %uint_1 %uint_0 + %84 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + %85 = OpLoad %uint %84 None + %86 = OpISub %uint %85 %tint_carry_1 + %87 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + OpStore %87 %86 None + OpBranch %61 + %62 = OpLabel OpBranch %42 %42 = OpLabel OpBranch %18 %16 = OpLabel - %78 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %79 = OpLoad %uint %78 None -%tint_low_inc = OpISub %uint %79 %uint_1 - %81 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %81 %tint_low_inc None - %82 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %82 %uint_1 %uint_0 - %84 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %85 = OpLoad %uint %84 None - %86 = OpISub %uint %85 %tint_carry - %87 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %87 %86 None + %44 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %47 = OpLoad %uint %44 None +%tint_low_inc = OpISub %uint %47 %uint_1 + %50 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %50 %tint_low_inc None + %51 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %51 %uint_1 %uint_0 + %53 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %54 = OpLoad %uint %53 None + %55 = OpISub %uint %54 %tint_carry + %56 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %56 %55 None OpBranch %17 %18 = OpLabel - %88 = OpLoad %int %return_value None - OpReturnValue %88 + %19 = OpLoad %int %return_value None + OpReturnValue %19 OpFunctionEnd %unused_entry_point = OpFunction %void None %91 %92 = OpLabel
diff --git a/test/tint/loops/nested_loops_with_continuing.wgsl.expected.spvasm b/test/tint/loops/nested_loops_with_continuing.wgsl.expected.spvasm index 69c96e7..99f96c1 100644 --- a/test/tint/loops/nested_loops_with_continuing.wgsl.expected.spvasm +++ b/test/tint/loops/nested_loops_with_continuing.wgsl.expected.spvasm
@@ -13,11 +13,11 @@ OpName %i "i" OpName %j "j" OpName %tint_loop_idx "tint_loop_idx" + OpName %tint_low_inc "tint_low_inc" + OpName %tint_carry "tint_carry" OpName %tint_loop_idx_0 "tint_loop_idx" OpName %tint_low_inc_1 "tint_low_inc_1" OpName %tint_carry_1 "tint_carry_1" - OpName %tint_low_inc "tint_low_inc" - OpName %tint_carry "tint_carry" OpName %unused_entry_point "unused_entry_point" %int = OpTypeInt 32 1 %3 = OpTypeFunction %int @@ -30,16 +30,16 @@ %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %23 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %27 = OpConstantNull %v2uint + %24 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %28 = OpConstantNull %v2uint %v2bool = OpTypeVector %bool 2 %int_4 = OpConstant %int 4 - %false = OpConstantFalse %bool - %int_1 = OpConstant %int 1 - %int_2 = OpConstant %int 2 %_ptr_Function_uint = OpTypePointer Function %uint %uint_0 = OpConstant %uint 0 %uint_1 = OpConstant %uint 1 + %false = OpConstantFalse %bool + %int_1 = OpConstant %int 1 + %int_2 = OpConstant %int 2 %void = OpTypeVoid %89 = OpTypeFunction %void %f = OpFunction %int None %3 @@ -53,103 +53,103 @@ OpStore %continue_execution %true OpBranch %14 %14 = OpLabel - OpStore %tint_loop_idx %23 + OpStore %tint_loop_idx %24 OpBranch %17 %17 = OpLabel OpLoopMerge %18 %16 None OpBranch %15 %15 = OpLabel - %25 = OpLoad %v2uint %tint_loop_idx None - %26 = OpIEqual %v2bool %25 %27 - %29 = OpAll %bool %26 - OpSelectionMerge %30 None - OpBranchConditional %29 %31 %30 - %31 = OpLabel + %26 = OpLoad %v2uint %tint_loop_idx None + %27 = OpIEqual %v2bool %26 %28 + %30 = OpAll %bool %27 + OpSelectionMerge %31 None + OpBranchConditional %30 %32 %31 + %32 = OpLabel OpBranch %18 - %30 = OpLabel - %32 = OpLoad %int %i None - %33 = OpSGreaterThan %bool %32 %int_4 - OpSelectionMerge %35 None - OpBranchConditional %33 %36 %35 - %36 = OpLabel + %31 = OpLabel + %33 = OpLoad %int %i None + %34 = OpSGreaterThan %bool %33 %int_4 + OpSelectionMerge %36 None + OpBranchConditional %34 %37 %36 + %37 = OpLabel OpStore %continue_execution %false None OpStore %return_value %int_1 None - OpBranch %35 - %35 = OpLabel - %39 = OpLoad %bool %continue_execution None - OpSelectionMerge %40 None - OpBranchConditional %39 %41 %40 - %41 = OpLabel - OpBranch %42 - %42 = OpLabel - OpStore %tint_loop_idx_0 %23 - OpBranch %45 - %45 = OpLabel - OpLoopMerge %46 %44 None - OpBranch %43 - %43 = OpLabel - %48 = OpLoad %v2uint %tint_loop_idx_0 None - %49 = OpIEqual %v2bool %48 %27 - %50 = OpAll %bool %49 - OpSelectionMerge %51 None - OpBranchConditional %50 %52 %51 - %52 = OpLabel - OpBranch %46 - %51 = OpLabel - %53 = OpLoad %int %j None - %54 = OpSGreaterThan %bool %53 %int_4 - OpSelectionMerge %55 None - OpBranchConditional %54 %56 %55 + OpBranch %36 + %36 = OpLabel + %38 = OpLoad %bool %continue_execution None + OpSelectionMerge %39 None + OpBranchConditional %38 %40 %39 + %40 = OpLabel + OpBranch %56 %56 = OpLabel + OpStore %tint_loop_idx_0 %24 + OpBranch %59 + %59 = OpLabel + OpLoopMerge %60 %58 None + OpBranch %57 + %57 = OpLabel + %62 = OpLoad %v2uint %tint_loop_idx_0 None + %63 = OpIEqual %v2bool %62 %28 + %64 = OpAll %bool %63 + OpSelectionMerge %65 None + OpBranchConditional %64 %66 %65 + %66 = OpLabel + OpBranch %60 + %65 = OpLabel + %67 = OpLoad %int %j None + %68 = OpSGreaterThan %bool %67 %int_4 + OpSelectionMerge %69 None + OpBranchConditional %68 %70 %69 + %70 = OpLabel OpStore %continue_execution %false None OpStore %return_value %int_2 None - OpBranch %55 - %55 = OpLabel - %58 = OpLoad %bool %continue_execution None - OpSelectionMerge %59 None - OpBranchConditional %58 %60 %59 + OpBranch %69 + %69 = OpLabel + %71 = OpLoad %bool %continue_execution None + OpSelectionMerge %72 None + OpBranchConditional %71 %73 %72 + %73 = OpLabel + OpBranch %58 + %72 = OpLabel + OpBranch %60 + %58 = OpLabel + %74 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + %75 = OpLoad %uint %74 None +%tint_low_inc_1 = OpISub %uint %75 %uint_1 + %77 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + OpStore %77 %tint_low_inc_1 None + %78 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 +%tint_carry_1 = OpSelect %uint %78 %uint_1 %uint_0 + %80 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + %81 = OpLoad %uint %80 None + %82 = OpISub %uint %81 %tint_carry_1 + %83 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + OpStore %83 %82 None + %84 = OpLoad %int %j None + %85 = OpIAdd %int %84 %int_1 + OpStore %j %85 None + OpBranch %59 %60 = OpLabel - OpBranch %44 - %59 = OpLabel - OpBranch %46 - %44 = OpLabel - %61 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - %64 = OpLoad %uint %61 None -%tint_low_inc_1 = OpISub %uint %64 %uint_1 - %67 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - OpStore %67 %tint_low_inc_1 None - %68 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 -%tint_carry_1 = OpSelect %uint %68 %uint_1 %uint_0 - %70 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - %71 = OpLoad %uint %70 None - %72 = OpISub %uint %71 %tint_carry_1 - %73 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - OpStore %73 %72 None - %74 = OpLoad %int %j None - %75 = OpIAdd %int %74 %int_1 - OpStore %j %75 None - OpBranch %45 - %46 = OpLabel - OpBranch %40 - %40 = OpLabel + OpBranch %39 + %39 = OpLabel OpBranch %18 %16 = OpLabel - %76 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %77 = OpLoad %uint %76 None -%tint_low_inc = OpISub %uint %77 %uint_1 - %79 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %79 %tint_low_inc None - %80 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %80 %uint_1 %uint_0 - %82 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %83 = OpLoad %uint %82 None - %84 = OpISub %uint %83 %tint_carry - %85 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %85 %84 None + %41 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %44 = OpLoad %uint %41 None +%tint_low_inc = OpISub %uint %44 %uint_1 + %47 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %47 %tint_low_inc None + %48 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %48 %uint_1 %uint_0 + %50 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %51 = OpLoad %uint %50 None + %52 = OpISub %uint %51 %tint_carry + %53 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %53 %52 None OpBranch %17 %18 = OpLabel - %86 = OpLoad %int %return_value None - OpReturnValue %86 + %19 = OpLoad %int %return_value None + OpReturnValue %19 OpFunctionEnd %unused_entry_point = OpFunction %void None %89 %90 = OpLabel
diff --git a/test/tint/loops/nested_loops_with_continuing_robustness.wgsl.expected.spvasm b/test/tint/loops/nested_loops_with_continuing_robustness.wgsl.expected.spvasm index 69c96e7..99f96c1 100644 --- a/test/tint/loops/nested_loops_with_continuing_robustness.wgsl.expected.spvasm +++ b/test/tint/loops/nested_loops_with_continuing_robustness.wgsl.expected.spvasm
@@ -13,11 +13,11 @@ OpName %i "i" OpName %j "j" OpName %tint_loop_idx "tint_loop_idx" + OpName %tint_low_inc "tint_low_inc" + OpName %tint_carry "tint_carry" OpName %tint_loop_idx_0 "tint_loop_idx" OpName %tint_low_inc_1 "tint_low_inc_1" OpName %tint_carry_1 "tint_carry_1" - OpName %tint_low_inc "tint_low_inc" - OpName %tint_carry "tint_carry" OpName %unused_entry_point "unused_entry_point" %int = OpTypeInt 32 1 %3 = OpTypeFunction %int @@ -30,16 +30,16 @@ %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %23 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %27 = OpConstantNull %v2uint + %24 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %28 = OpConstantNull %v2uint %v2bool = OpTypeVector %bool 2 %int_4 = OpConstant %int 4 - %false = OpConstantFalse %bool - %int_1 = OpConstant %int 1 - %int_2 = OpConstant %int 2 %_ptr_Function_uint = OpTypePointer Function %uint %uint_0 = OpConstant %uint 0 %uint_1 = OpConstant %uint 1 + %false = OpConstantFalse %bool + %int_1 = OpConstant %int 1 + %int_2 = OpConstant %int 2 %void = OpTypeVoid %89 = OpTypeFunction %void %f = OpFunction %int None %3 @@ -53,103 +53,103 @@ OpStore %continue_execution %true OpBranch %14 %14 = OpLabel - OpStore %tint_loop_idx %23 + OpStore %tint_loop_idx %24 OpBranch %17 %17 = OpLabel OpLoopMerge %18 %16 None OpBranch %15 %15 = OpLabel - %25 = OpLoad %v2uint %tint_loop_idx None - %26 = OpIEqual %v2bool %25 %27 - %29 = OpAll %bool %26 - OpSelectionMerge %30 None - OpBranchConditional %29 %31 %30 - %31 = OpLabel + %26 = OpLoad %v2uint %tint_loop_idx None + %27 = OpIEqual %v2bool %26 %28 + %30 = OpAll %bool %27 + OpSelectionMerge %31 None + OpBranchConditional %30 %32 %31 + %32 = OpLabel OpBranch %18 - %30 = OpLabel - %32 = OpLoad %int %i None - %33 = OpSGreaterThan %bool %32 %int_4 - OpSelectionMerge %35 None - OpBranchConditional %33 %36 %35 - %36 = OpLabel + %31 = OpLabel + %33 = OpLoad %int %i None + %34 = OpSGreaterThan %bool %33 %int_4 + OpSelectionMerge %36 None + OpBranchConditional %34 %37 %36 + %37 = OpLabel OpStore %continue_execution %false None OpStore %return_value %int_1 None - OpBranch %35 - %35 = OpLabel - %39 = OpLoad %bool %continue_execution None - OpSelectionMerge %40 None - OpBranchConditional %39 %41 %40 - %41 = OpLabel - OpBranch %42 - %42 = OpLabel - OpStore %tint_loop_idx_0 %23 - OpBranch %45 - %45 = OpLabel - OpLoopMerge %46 %44 None - OpBranch %43 - %43 = OpLabel - %48 = OpLoad %v2uint %tint_loop_idx_0 None - %49 = OpIEqual %v2bool %48 %27 - %50 = OpAll %bool %49 - OpSelectionMerge %51 None - OpBranchConditional %50 %52 %51 - %52 = OpLabel - OpBranch %46 - %51 = OpLabel - %53 = OpLoad %int %j None - %54 = OpSGreaterThan %bool %53 %int_4 - OpSelectionMerge %55 None - OpBranchConditional %54 %56 %55 + OpBranch %36 + %36 = OpLabel + %38 = OpLoad %bool %continue_execution None + OpSelectionMerge %39 None + OpBranchConditional %38 %40 %39 + %40 = OpLabel + OpBranch %56 %56 = OpLabel + OpStore %tint_loop_idx_0 %24 + OpBranch %59 + %59 = OpLabel + OpLoopMerge %60 %58 None + OpBranch %57 + %57 = OpLabel + %62 = OpLoad %v2uint %tint_loop_idx_0 None + %63 = OpIEqual %v2bool %62 %28 + %64 = OpAll %bool %63 + OpSelectionMerge %65 None + OpBranchConditional %64 %66 %65 + %66 = OpLabel + OpBranch %60 + %65 = OpLabel + %67 = OpLoad %int %j None + %68 = OpSGreaterThan %bool %67 %int_4 + OpSelectionMerge %69 None + OpBranchConditional %68 %70 %69 + %70 = OpLabel OpStore %continue_execution %false None OpStore %return_value %int_2 None - OpBranch %55 - %55 = OpLabel - %58 = OpLoad %bool %continue_execution None - OpSelectionMerge %59 None - OpBranchConditional %58 %60 %59 + OpBranch %69 + %69 = OpLabel + %71 = OpLoad %bool %continue_execution None + OpSelectionMerge %72 None + OpBranchConditional %71 %73 %72 + %73 = OpLabel + OpBranch %58 + %72 = OpLabel + OpBranch %60 + %58 = OpLabel + %74 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + %75 = OpLoad %uint %74 None +%tint_low_inc_1 = OpISub %uint %75 %uint_1 + %77 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 + OpStore %77 %tint_low_inc_1 None + %78 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 +%tint_carry_1 = OpSelect %uint %78 %uint_1 %uint_0 + %80 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + %81 = OpLoad %uint %80 None + %82 = OpISub %uint %81 %tint_carry_1 + %83 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 + OpStore %83 %82 None + %84 = OpLoad %int %j None + %85 = OpIAdd %int %84 %int_1 + OpStore %j %85 None + OpBranch %59 %60 = OpLabel - OpBranch %44 - %59 = OpLabel - OpBranch %46 - %44 = OpLabel - %61 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - %64 = OpLoad %uint %61 None -%tint_low_inc_1 = OpISub %uint %64 %uint_1 - %67 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0 - OpStore %67 %tint_low_inc_1 None - %68 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295 -%tint_carry_1 = OpSelect %uint %68 %uint_1 %uint_0 - %70 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - %71 = OpLoad %uint %70 None - %72 = OpISub %uint %71 %tint_carry_1 - %73 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1 - OpStore %73 %72 None - %74 = OpLoad %int %j None - %75 = OpIAdd %int %74 %int_1 - OpStore %j %75 None - OpBranch %45 - %46 = OpLabel - OpBranch %40 - %40 = OpLabel + OpBranch %39 + %39 = OpLabel OpBranch %18 %16 = OpLabel - %76 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %77 = OpLoad %uint %76 None -%tint_low_inc = OpISub %uint %77 %uint_1 - %79 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %79 %tint_low_inc None - %80 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %80 %uint_1 %uint_0 - %82 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %83 = OpLoad %uint %82 None - %84 = OpISub %uint %83 %tint_carry - %85 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %85 %84 None + %41 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %44 = OpLoad %uint %41 None +%tint_low_inc = OpISub %uint %44 %uint_1 + %47 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %47 %tint_low_inc None + %48 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %48 %uint_1 %uint_0 + %50 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %51 = OpLoad %uint %50 None + %52 = OpISub %uint %51 %tint_carry + %53 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %53 %52 None OpBranch %17 %18 = OpLabel - %86 = OpLoad %int %return_value None - OpReturnValue %86 + %19 = OpLoad %int %return_value None + OpReturnValue %19 OpFunctionEnd %unused_entry_point = OpFunction %void None %89 %90 = OpLabel
diff --git a/test/tint/loops/single_continue.wgsl.expected.spvasm b/test/tint/loops/single_continue.wgsl.expected.spvasm index 5d451f6..882a203 100644 --- a/test/tint/loops/single_continue.wgsl.expected.spvasm +++ b/test/tint/loops/single_continue.wgsl.expected.spvasm
@@ -38,10 +38,10 @@ %20 = OpLoad %int %i None OpSelectionMerge %23 None OpSwitch %20 %21 0 %22 - %22 = OpLabel - OpBranch %7 %21 = OpLabel OpBranch %23 + %22 = OpLabel + OpBranch %7 %23 = OpLabel OpBranch %7 %7 = OpLabel
diff --git a/test/tint/loops/single_continue_robustness.wgsl.expected.spvasm b/test/tint/loops/single_continue_robustness.wgsl.expected.spvasm index 5d451f6..882a203 100644 --- a/test/tint/loops/single_continue_robustness.wgsl.expected.spvasm +++ b/test/tint/loops/single_continue_robustness.wgsl.expected.spvasm
@@ -38,10 +38,10 @@ %20 = OpLoad %int %i None OpSelectionMerge %23 None OpSwitch %20 %21 0 %22 - %22 = OpLabel - OpBranch %7 %21 = OpLabel OpBranch %23 + %22 = OpLabel + OpBranch %7 %23 = OpLabel OpBranch %7 %7 = OpLabel
diff --git a/test/tint/loops/while.wgsl.expected.spvasm b/test/tint/loops/while.wgsl.expected.spvasm index 0506437..b26011f 100644 --- a/test/tint/loops/while.wgsl.expected.spvasm +++ b/test/tint/loops/while.wgsl.expected.spvasm
@@ -21,8 +21,8 @@ %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %17 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %21 = OpConstantNull %v2uint + %18 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %22 = OpConstantNull %v2uint %bool = OpTypeBool %v2bool = OpTypeVector %bool 2 %int_4 = OpConstant %int 4 @@ -38,48 +38,48 @@ %tint_loop_idx = OpVariable %_ptr_Function_v2uint Function OpBranch %8 %8 = OpLabel - OpStore %tint_loop_idx %17 + OpStore %tint_loop_idx %18 OpBranch %11 %11 = OpLabel OpLoopMerge %12 %10 None OpBranch %9 %9 = OpLabel - %19 = OpLoad %v2uint %tint_loop_idx None - %20 = OpIEqual %v2bool %19 %21 - %24 = OpAll %bool %20 - OpSelectionMerge %25 None - OpBranchConditional %24 %26 %25 + %20 = OpLoad %v2uint %tint_loop_idx None + %21 = OpIEqual %v2bool %20 %22 + %25 = OpAll %bool %21 + OpSelectionMerge %26 None + OpBranchConditional %25 %27 %26 + %27 = OpLabel + OpBranch %12 %26 = OpLabel + %28 = OpLoad %int %i None + %29 = OpSLessThan %bool %28 %int_4 + OpSelectionMerge %31 None + OpBranchConditional %29 %31 %32 + %32 = OpLabel OpBranch %12 - %25 = OpLabel - %27 = OpLoad %int %i None - %28 = OpSLessThan %bool %27 %int_4 - OpSelectionMerge %30 None - OpBranchConditional %28 %30 %31 %31 = OpLabel - OpBranch %12 - %30 = OpLabel - %32 = OpLoad %int %i None - %33 = OpIAdd %int %32 %int_1 - OpStore %i %33 None + %33 = OpLoad %int %i None + %34 = OpIAdd %int %33 %int_1 + OpStore %i %34 None OpBranch %10 %10 = OpLabel - %35 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %38 = OpLoad %uint %35 None -%tint_low_inc = OpISub %uint %38 %uint_1 - %41 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %41 %tint_low_inc None - %42 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %42 %uint_1 %uint_0 - %44 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %45 = OpLoad %uint %44 None - %46 = OpISub %uint %45 %tint_carry - %47 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %47 %46 None + %36 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %39 = OpLoad %uint %36 None +%tint_low_inc = OpISub %uint %39 %uint_1 + %42 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %42 %tint_low_inc None + %43 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %43 %uint_1 %uint_0 + %45 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %46 = OpLoad %uint %45 None + %47 = OpISub %uint %46 %tint_carry + %48 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %48 %47 None OpBranch %11 %12 = OpLabel - %48 = OpLoad %int %i None - OpReturnValue %48 + %13 = OpLoad %int %i None + OpReturnValue %13 OpFunctionEnd %unused_entry_point = OpFunction %void None %51 %52 = OpLabel
diff --git a/test/tint/loops/while_robustness.wgsl.expected.spvasm b/test/tint/loops/while_robustness.wgsl.expected.spvasm index 0506437..b26011f 100644 --- a/test/tint/loops/while_robustness.wgsl.expected.spvasm +++ b/test/tint/loops/while_robustness.wgsl.expected.spvasm
@@ -21,8 +21,8 @@ %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %17 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %21 = OpConstantNull %v2uint + %18 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %22 = OpConstantNull %v2uint %bool = OpTypeBool %v2bool = OpTypeVector %bool 2 %int_4 = OpConstant %int 4 @@ -38,48 +38,48 @@ %tint_loop_idx = OpVariable %_ptr_Function_v2uint Function OpBranch %8 %8 = OpLabel - OpStore %tint_loop_idx %17 + OpStore %tint_loop_idx %18 OpBranch %11 %11 = OpLabel OpLoopMerge %12 %10 None OpBranch %9 %9 = OpLabel - %19 = OpLoad %v2uint %tint_loop_idx None - %20 = OpIEqual %v2bool %19 %21 - %24 = OpAll %bool %20 - OpSelectionMerge %25 None - OpBranchConditional %24 %26 %25 + %20 = OpLoad %v2uint %tint_loop_idx None + %21 = OpIEqual %v2bool %20 %22 + %25 = OpAll %bool %21 + OpSelectionMerge %26 None + OpBranchConditional %25 %27 %26 + %27 = OpLabel + OpBranch %12 %26 = OpLabel + %28 = OpLoad %int %i None + %29 = OpSLessThan %bool %28 %int_4 + OpSelectionMerge %31 None + OpBranchConditional %29 %31 %32 + %32 = OpLabel OpBranch %12 - %25 = OpLabel - %27 = OpLoad %int %i None - %28 = OpSLessThan %bool %27 %int_4 - OpSelectionMerge %30 None - OpBranchConditional %28 %30 %31 %31 = OpLabel - OpBranch %12 - %30 = OpLabel - %32 = OpLoad %int %i None - %33 = OpIAdd %int %32 %int_1 - OpStore %i %33 None + %33 = OpLoad %int %i None + %34 = OpIAdd %int %33 %int_1 + OpStore %i %34 None OpBranch %10 %10 = OpLabel - %35 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %38 = OpLoad %uint %35 None -%tint_low_inc = OpISub %uint %38 %uint_1 - %41 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %41 %tint_low_inc None - %42 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %42 %uint_1 %uint_0 - %44 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %45 = OpLoad %uint %44 None - %46 = OpISub %uint %45 %tint_carry - %47 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %47 %46 None + %36 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %39 = OpLoad %uint %36 None +%tint_low_inc = OpISub %uint %39 %uint_1 + %42 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %42 %tint_low_inc None + %43 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %43 %uint_1 %uint_0 + %45 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %46 = OpLoad %uint %45 None + %47 = OpISub %uint %46 %tint_carry + %48 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %48 %47 None OpBranch %11 %12 = OpLabel - %48 = OpLoad %int %i None - OpReturnValue %48 + %13 = OpLoad %int %i None + OpReturnValue %13 OpFunctionEnd %unused_entry_point = OpFunction %void None %51 %52 = OpLabel
diff --git a/test/tint/loops/while_with_continue.wgsl.expected.spvasm b/test/tint/loops/while_with_continue.wgsl.expected.spvasm index 0506437..b26011f 100644 --- a/test/tint/loops/while_with_continue.wgsl.expected.spvasm +++ b/test/tint/loops/while_with_continue.wgsl.expected.spvasm
@@ -21,8 +21,8 @@ %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %17 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %21 = OpConstantNull %v2uint + %18 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %22 = OpConstantNull %v2uint %bool = OpTypeBool %v2bool = OpTypeVector %bool 2 %int_4 = OpConstant %int 4 @@ -38,48 +38,48 @@ %tint_loop_idx = OpVariable %_ptr_Function_v2uint Function OpBranch %8 %8 = OpLabel - OpStore %tint_loop_idx %17 + OpStore %tint_loop_idx %18 OpBranch %11 %11 = OpLabel OpLoopMerge %12 %10 None OpBranch %9 %9 = OpLabel - %19 = OpLoad %v2uint %tint_loop_idx None - %20 = OpIEqual %v2bool %19 %21 - %24 = OpAll %bool %20 - OpSelectionMerge %25 None - OpBranchConditional %24 %26 %25 + %20 = OpLoad %v2uint %tint_loop_idx None + %21 = OpIEqual %v2bool %20 %22 + %25 = OpAll %bool %21 + OpSelectionMerge %26 None + OpBranchConditional %25 %27 %26 + %27 = OpLabel + OpBranch %12 %26 = OpLabel + %28 = OpLoad %int %i None + %29 = OpSLessThan %bool %28 %int_4 + OpSelectionMerge %31 None + OpBranchConditional %29 %31 %32 + %32 = OpLabel OpBranch %12 - %25 = OpLabel - %27 = OpLoad %int %i None - %28 = OpSLessThan %bool %27 %int_4 - OpSelectionMerge %30 None - OpBranchConditional %28 %30 %31 %31 = OpLabel - OpBranch %12 - %30 = OpLabel - %32 = OpLoad %int %i None - %33 = OpIAdd %int %32 %int_1 - OpStore %i %33 None + %33 = OpLoad %int %i None + %34 = OpIAdd %int %33 %int_1 + OpStore %i %34 None OpBranch %10 %10 = OpLabel - %35 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %38 = OpLoad %uint %35 None -%tint_low_inc = OpISub %uint %38 %uint_1 - %41 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %41 %tint_low_inc None - %42 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %42 %uint_1 %uint_0 - %44 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %45 = OpLoad %uint %44 None - %46 = OpISub %uint %45 %tint_carry - %47 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %47 %46 None + %36 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %39 = OpLoad %uint %36 None +%tint_low_inc = OpISub %uint %39 %uint_1 + %42 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %42 %tint_low_inc None + %43 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %43 %uint_1 %uint_0 + %45 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %46 = OpLoad %uint %45 None + %47 = OpISub %uint %46 %tint_carry + %48 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %48 %47 None OpBranch %11 %12 = OpLabel - %48 = OpLoad %int %i None - OpReturnValue %48 + %13 = OpLoad %int %i None + OpReturnValue %13 OpFunctionEnd %unused_entry_point = OpFunction %void None %51 %52 = OpLabel
diff --git a/test/tint/loops/while_with_continue_robustness.wgsl.expected.spvasm b/test/tint/loops/while_with_continue_robustness.wgsl.expected.spvasm index 0506437..b26011f 100644 --- a/test/tint/loops/while_with_continue_robustness.wgsl.expected.spvasm +++ b/test/tint/loops/while_with_continue_robustness.wgsl.expected.spvasm
@@ -21,8 +21,8 @@ %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %17 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %21 = OpConstantNull %v2uint + %18 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %22 = OpConstantNull %v2uint %bool = OpTypeBool %v2bool = OpTypeVector %bool 2 %int_4 = OpConstant %int 4 @@ -38,48 +38,48 @@ %tint_loop_idx = OpVariable %_ptr_Function_v2uint Function OpBranch %8 %8 = OpLabel - OpStore %tint_loop_idx %17 + OpStore %tint_loop_idx %18 OpBranch %11 %11 = OpLabel OpLoopMerge %12 %10 None OpBranch %9 %9 = OpLabel - %19 = OpLoad %v2uint %tint_loop_idx None - %20 = OpIEqual %v2bool %19 %21 - %24 = OpAll %bool %20 - OpSelectionMerge %25 None - OpBranchConditional %24 %26 %25 + %20 = OpLoad %v2uint %tint_loop_idx None + %21 = OpIEqual %v2bool %20 %22 + %25 = OpAll %bool %21 + OpSelectionMerge %26 None + OpBranchConditional %25 %27 %26 + %27 = OpLabel + OpBranch %12 %26 = OpLabel + %28 = OpLoad %int %i None + %29 = OpSLessThan %bool %28 %int_4 + OpSelectionMerge %31 None + OpBranchConditional %29 %31 %32 + %32 = OpLabel OpBranch %12 - %25 = OpLabel - %27 = OpLoad %int %i None - %28 = OpSLessThan %bool %27 %int_4 - OpSelectionMerge %30 None - OpBranchConditional %28 %30 %31 %31 = OpLabel - OpBranch %12 - %30 = OpLabel - %32 = OpLoad %int %i None - %33 = OpIAdd %int %32 %int_1 - OpStore %i %33 None + %33 = OpLoad %int %i None + %34 = OpIAdd %int %33 %int_1 + OpStore %i %34 None OpBranch %10 %10 = OpLabel - %35 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %38 = OpLoad %uint %35 None -%tint_low_inc = OpISub %uint %38 %uint_1 - %41 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %41 %tint_low_inc None - %42 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %42 %uint_1 %uint_0 - %44 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %45 = OpLoad %uint %44 None - %46 = OpISub %uint %45 %tint_carry - %47 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %47 %46 None + %36 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %39 = OpLoad %uint %36 None +%tint_low_inc = OpISub %uint %39 %uint_1 + %42 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %42 %tint_low_inc None + %43 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %43 %uint_1 %uint_0 + %45 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %46 = OpLoad %uint %45 None + %47 = OpISub %uint %46 %tint_carry + %48 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %48 %47 None OpBranch %11 %12 = OpLabel - %48 = OpLoad %int %i None - OpReturnValue %48 + %13 = OpLoad %int %i None + OpReturnValue %13 OpFunctionEnd %unused_entry_point = OpFunction %void None %51 %52 = OpLabel
diff --git a/test/tint/ptr_ref/load/local/ptr_workgroup.wgsl.expected.spvasm b/test/tint/ptr_ref/load/local/ptr_workgroup.wgsl.expected.spvasm index 534383a..74a2de5 100644 --- a/test/tint/ptr_ref/load/local/ptr_workgroup.wgsl.expected.spvasm +++ b/test/tint/ptr_ref/load/local/ptr_workgroup.wgsl.expected.spvasm
@@ -25,11 +25,11 @@ %10 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %int_123 = OpConstant %int 123 %int_1 = OpConstant %int 1 + %int_0 = OpConstant %int 0 %26 = OpTypeFunction %void %main_inner = OpFunction %void None %10 %tint_local_index = OpFunctionParameter %uint @@ -43,8 +43,8 @@ %15 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 OpStore %i %int_123 None - %22 = OpLoad %int %i None - %u = OpIAdd %int %22 %int_1 + %21 = OpLoad %int %i None + %u = OpIAdd %int %21 %int_1 OpReturn OpFunctionEnd %main = OpFunction %void None %26
diff --git a/test/tint/ptr_ref/load/param/storage/array_in_struct.wgsl.expected.spvasm b/test/tint/ptr_ref/load/param/storage/array_in_struct.wgsl.expected.spvasm index ea31ed1..a074fab 100644 --- a/test/tint/ptr_ref/load/param/storage/array_in_struct.wgsl.expected.spvasm +++ b/test/tint/ptr_ref/load/param/storage/array_in_struct.wgsl.expected.spvasm
@@ -70,21 +70,21 @@ OpLoopMerge %36 %34 None OpBranch %33 %33 = OpLabel - %39 = OpUGreaterThanEqual %bool %37 %uint_4 - OpSelectionMerge %41 None - OpBranchConditional %39 %42 %41 - %42 = OpLabel + %40 = OpUGreaterThanEqual %bool %37 %uint_4 + OpSelectionMerge %42 None + OpBranchConditional %40 %43 %42 + %43 = OpLabel OpBranch %36 - %41 = OpLabel - %43 = OpAccessChain %_ptr_Function_int %27 %37 - %45 = OpLoad %int %43 None - %46 = OpAccessChain %_ptr_Function_int %29 %37 - OpStore %46 %45 None + %42 = OpLabel + %44 = OpAccessChain %_ptr_Function_int %27 %37 + %46 = OpLoad %int %44 None + %47 = OpAccessChain %_ptr_Function_int %29 %37 + OpStore %47 %46 None OpBranch %34 %34 = OpLabel %38 = OpIAdd %uint %37 %uint_1 OpBranch %35 %36 = OpLabel - %48 = OpLoad %_arr_int_uint_4_0 %29 None - OpReturnValue %48 + %39 = OpLoad %_arr_int_uint_4_0 %29 None + OpReturnValue %39 OpFunctionEnd
diff --git a/test/tint/ptr_ref/load/param/uniform/array_in_struct.wgsl.expected.spvasm b/test/tint/ptr_ref/load/param/uniform/array_in_struct.wgsl.expected.spvasm index d733c66..69f9661 100644 --- a/test/tint/ptr_ref/load/param/uniform/array_in_struct.wgsl.expected.spvasm +++ b/test/tint/ptr_ref/load/param/uniform/array_in_struct.wgsl.expected.spvasm
@@ -71,21 +71,21 @@ OpLoopMerge %37 %35 None OpBranch %34 %34 = OpLabel - %40 = OpUGreaterThanEqual %bool %38 %uint_4 - OpSelectionMerge %42 None - OpBranchConditional %40 %43 %42 - %43 = OpLabel + %41 = OpUGreaterThanEqual %bool %38 %uint_4 + OpSelectionMerge %43 None + OpBranchConditional %41 %44 %43 + %44 = OpLabel OpBranch %37 - %42 = OpLabel - %44 = OpAccessChain %_ptr_Function_v4int %28 %38 - %46 = OpLoad %v4int %44 None - %47 = OpAccessChain %_ptr_Function_v4int %30 %38 - OpStore %47 %46 None + %43 = OpLabel + %45 = OpAccessChain %_ptr_Function_v4int %28 %38 + %47 = OpLoad %v4int %45 None + %48 = OpAccessChain %_ptr_Function_v4int %30 %38 + OpStore %48 %47 None OpBranch %35 %35 = OpLabel %39 = OpIAdd %uint %38 %uint_1 OpBranch %36 %37 = OpLabel - %49 = OpLoad %_arr_v4int_uint_4_0 %30 None - OpReturnValue %49 + %40 = OpLoad %_arr_v4int_uint_4_0 %30 None + OpReturnValue %40 OpFunctionEnd
diff --git a/test/tint/ptr_ref/load/param/workgroup/array_in_struct.wgsl.expected.spvasm b/test/tint/ptr_ref/load/param/workgroup/array_in_struct.wgsl.expected.spvasm index 1b447fc..4d09117 100644 --- a/test/tint/ptr_ref/load/param/workgroup/array_in_struct.wgsl.expected.spvasm +++ b/test/tint/ptr_ref/load/param/workgroup/array_in_struct.wgsl.expected.spvasm
@@ -31,12 +31,12 @@ %uint_0 = OpConstant %uint 0 %void = OpTypeVoid %20 = OpTypeFunction %void %uint + %uint_2 = OpConstant %uint 2 + %uint_264 = OpConstant %uint 264 %bool = OpTypeBool %_ptr_Workgroup_int = OpTypePointer Workgroup %int %int_0 = OpConstant %int 0 %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_264 = OpConstant %uint 264 %42 = OpTypeFunction %void %func = OpFunction %_arr_int_uint_4 None %11 %12 = OpLabel @@ -55,14 +55,14 @@ OpLoopMerge %26 %24 None OpBranch %23 %23 = OpLabel - %29 = OpUGreaterThanEqual %bool %27 %uint_4 - OpSelectionMerge %31 None - OpBranchConditional %29 %32 %31 - %32 = OpLabel + %33 = OpUGreaterThanEqual %bool %27 %uint_4 + OpSelectionMerge %35 None + OpBranchConditional %33 %36 %35 + %36 = OpLabel OpBranch %26 - %31 = OpLabel - %33 = OpAccessChain %_ptr_Workgroup_int %S %uint_0 %27 - OpStore %33 %int_0 None + %35 = OpLabel + %37 = OpAccessChain %_ptr_Workgroup_int %S %uint_0 %27 + OpStore %37 %int_0 None OpBranch %24 %24 = OpLabel %28 = OpIAdd %uint %27 %uint_1
diff --git a/test/tint/ptr_ref/load/param/workgroup/i32.wgsl.expected.spvasm b/test/tint/ptr_ref/load/param/workgroup/i32.wgsl.expected.spvasm index a262c58..b819870 100644 --- a/test/tint/ptr_ref/load/param/workgroup/i32.wgsl.expected.spvasm +++ b/test/tint/ptr_ref/load/param/workgroup/i32.wgsl.expected.spvasm
@@ -26,9 +26,9 @@ %14 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 + %int_0 = OpConstant %int 0 %27 = OpTypeFunction %void %func = OpFunction %int None %8 %9 = OpLabel
diff --git a/test/tint/ptr_ref/load/param/workgroup/i32_in_struct.wgsl.expected.spvasm b/test/tint/ptr_ref/load/param/workgroup/i32_in_struct.wgsl.expected.spvasm index 933315f..32a01fd 100644 --- a/test/tint/ptr_ref/load/param/workgroup/i32_in_struct.wgsl.expected.spvasm +++ b/test/tint/ptr_ref/load/param/workgroup/i32_in_struct.wgsl.expected.spvasm
@@ -31,9 +31,9 @@ %18 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %25 = OpConstantNull %str %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 + %29 = OpConstantNull %str %31 = OpTypeFunction %void %func = OpFunction %int None %9 %10 = OpLabel @@ -48,7 +48,7 @@ OpSelectionMerge %23 None OpBranchConditional %20 %24 %23 %24 = OpLabel - OpStore %S %25 None + OpStore %S %29 None OpBranch %23 %23 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264
diff --git a/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.spvasm b/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.spvasm index c65f153..5ba6128 100644 --- a/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.spvasm +++ b/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.spvasm
@@ -33,10 +33,10 @@ %_ptr_Workgroup_str = OpTypePointer Workgroup %str %void = OpTypeVoid %23 = OpTypeFunction %void %uint - %bool = OpTypeBool - %37 = OpConstantNull %str %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 + %bool = OpTypeBool + %42 = OpConstantNull %str %44 = OpTypeFunction %void %func = OpFunction %str None %14 %pointer_indices = OpFunctionParameter %_arr_uint_uint_1 @@ -57,22 +57,22 @@ OpLoopMerge %29 %27 None OpBranch %26 %26 = OpLabel - %32 = OpUGreaterThanEqual %bool %30 %uint_4 - OpSelectionMerge %34 None - OpBranchConditional %32 %35 %34 - %35 = OpLabel + %37 = OpUGreaterThanEqual %bool %30 %uint_4 + OpSelectionMerge %39 None + OpBranchConditional %37 %40 %39 + %40 = OpLabel OpBranch %29 - %34 = OpLabel - %36 = OpAccessChain %_ptr_Workgroup_str %S %30 - OpStore %36 %37 None + %39 = OpLabel + %41 = OpAccessChain %_ptr_Workgroup_str %S %30 + OpStore %41 %42 None OpBranch %27 %27 = OpLabel %31 = OpIAdd %uint %30 %uint_1 OpBranch %28 %29 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %41 = OpCompositeConstruct %_arr_uint_uint_1 %uint_2 - %r = OpFunctionCall %str %func %41 + %35 = OpCompositeConstruct %_arr_uint_uint_1 %uint_2 + %r = OpFunctionCall %str %func %35 OpReturn OpFunctionEnd %main = OpFunction %void None %44
diff --git a/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.spvasm b/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.spvasm index bd409a5..60ebd60 100644 --- a/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.spvasm +++ b/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.spvasm
@@ -31,9 +31,9 @@ %void = OpTypeVoid %22 = OpTypeFunction %void %uint %bool = OpTypeBool - %28 = OpConstantNull %mat2v2float %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 + %33 = OpConstantNull %mat2v2float %35 = OpTypeFunction %void %func = OpFunction %v2float None %13 %pointer_indices = OpFunctionParameter %_arr_uint_uint_1 @@ -50,12 +50,12 @@ OpSelectionMerge %26 None OpBranchConditional %24 %27 %26 %27 = OpLabel - OpStore %S %28 None + OpStore %S %33 None OpBranch %26 %26 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %32 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 - %r = OpFunctionCall %v2float %func %32 + %31 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 + %r = OpFunctionCall %v2float %func %31 OpReturn OpFunctionEnd %main = OpFunction %void None %35
diff --git a/test/tint/ptr_ref/load/param/workgroup/vec4_f32.wgsl.expected.spvasm b/test/tint/ptr_ref/load/param/workgroup/vec4_f32.wgsl.expected.spvasm index 295a0b9..b378ce0 100644 --- a/test/tint/ptr_ref/load/param/workgroup/vec4_f32.wgsl.expected.spvasm +++ b/test/tint/ptr_ref/load/param/workgroup/vec4_f32.wgsl.expected.spvasm
@@ -27,9 +27,9 @@ %15 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %22 = OpConstantNull %v4float %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 + %26 = OpConstantNull %v4float %28 = OpTypeFunction %void %func = OpFunction %v4float None %9 %10 = OpLabel @@ -43,7 +43,7 @@ OpSelectionMerge %20 None OpBranchConditional %17 %21 %20 %21 = OpLabel - OpStore %S %22 None + OpStore %S %26 None OpBranch %20 %20 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264
diff --git a/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.spvasm b/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.spvasm index 59db803..ddf14b2 100644 --- a/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.spvasm +++ b/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.spvasm
@@ -31,9 +31,9 @@ %void = OpTypeVoid %22 = OpTypeFunction %void %uint %bool = OpTypeBool - %28 = OpConstantNull %mat2v4float %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 + %33 = OpConstantNull %mat2v4float %35 = OpTypeFunction %void %func = OpFunction %v4float None %13 %pointer_indices = OpFunctionParameter %_arr_uint_uint_1 @@ -50,12 +50,12 @@ OpSelectionMerge %26 None OpBranchConditional %24 %27 %26 %27 = OpLabel - OpStore %S %28 None + OpStore %S %33 None OpBranch %26 %26 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %32 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 - %r = OpFunctionCall %v4float %func %32 + %31 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 + %r = OpFunctionCall %v4float %func %31 OpReturn OpFunctionEnd %main = OpFunction %void None %35
diff --git a/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_struct.wgsl.expected.spvasm b/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_struct.wgsl.expected.spvasm index 6be6003..5d761a8 100644 --- a/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_struct.wgsl.expected.spvasm +++ b/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_struct.wgsl.expected.spvasm
@@ -32,9 +32,9 @@ %19 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %26 = OpConstantNull %str %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 + %30 = OpConstantNull %str %32 = OpTypeFunction %void %func = OpFunction %v4float None %10 %11 = OpLabel @@ -49,7 +49,7 @@ OpSelectionMerge %24 None OpBranchConditional %21 %25 %24 %25 = OpLabel - OpStore %S %26 None + OpStore %S %30 None OpBranch %24 %24 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264
diff --git a/test/tint/ptr_ref/store/param/storage/array_in_struct.wgsl.expected.spvasm b/test/tint/ptr_ref/store/param/storage/array_in_struct.wgsl.expected.spvasm index 94defa82..fc0e99d 100644 --- a/test/tint/ptr_ref/store/param/storage/array_in_struct.wgsl.expected.spvasm +++ b/test/tint/ptr_ref/store/param/storage/array_in_struct.wgsl.expected.spvasm
@@ -69,21 +69,21 @@ OpLoopMerge %35 %33 None OpBranch %32 %32 = OpLabel - %38 = OpUGreaterThanEqual %bool %36 %uint_4 - OpSelectionMerge %40 None - OpBranchConditional %38 %41 %40 - %41 = OpLabel + %39 = OpUGreaterThanEqual %bool %36 %uint_4 + OpSelectionMerge %41 None + OpBranchConditional %39 %42 %41 + %42 = OpLabel OpBranch %35 - %40 = OpLabel - %42 = OpAccessChain %_ptr_Function_int %26 %36 - %44 = OpLoad %int %42 None - %45 = OpAccessChain %_ptr_Function_int %28 %36 - OpStore %45 %44 None + %41 = OpLabel + %43 = OpAccessChain %_ptr_Function_int %26 %36 + %45 = OpLoad %int %43 None + %46 = OpAccessChain %_ptr_Function_int %28 %36 + OpStore %46 %45 None OpBranch %33 %33 = OpLabel %37 = OpIAdd %uint %36 %uint_1 OpBranch %34 %35 = OpLabel - %47 = OpLoad %_arr_int_uint_4 %28 None - OpReturnValue %47 + %38 = OpLoad %_arr_int_uint_4 %28 None + OpReturnValue %38 OpFunctionEnd
diff --git a/test/tint/ptr_ref/store/param/workgroup/array_in_struct.wgsl.expected.spvasm b/test/tint/ptr_ref/store/param/workgroup/array_in_struct.wgsl.expected.spvasm index f140ec6..5b2f265 100644 --- a/test/tint/ptr_ref/store/param/workgroup/array_in_struct.wgsl.expected.spvasm +++ b/test/tint/ptr_ref/store/param/workgroup/array_in_struct.wgsl.expected.spvasm
@@ -31,12 +31,12 @@ %uint_0 = OpConstant %uint 0 %17 = OpConstantNull %_arr_int_uint_4 %20 = OpTypeFunction %void %uint + %uint_2 = OpConstant %uint 2 + %uint_264 = OpConstant %uint 264 %bool = OpTypeBool %_ptr_Workgroup_int = OpTypePointer Workgroup %int %int_0 = OpConstant %int 0 %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_264 = OpConstant %uint 264 %func = OpFunction %void None %12 %13 = OpLabel %14 = OpAccessChain %_ptr_Workgroup__arr_int_uint_4 %S %uint_0 @@ -54,21 +54,21 @@ OpLoopMerge %26 %24 None OpBranch %23 %23 = OpLabel - %29 = OpUGreaterThanEqual %bool %27 %uint_4 - OpSelectionMerge %31 None - OpBranchConditional %29 %32 %31 - %32 = OpLabel + %33 = OpUGreaterThanEqual %bool %27 %uint_4 + OpSelectionMerge %35 None + OpBranchConditional %33 %36 %35 + %36 = OpLabel OpBranch %26 - %31 = OpLabel - %33 = OpAccessChain %_ptr_Workgroup_int %S %uint_0 %27 - OpStore %33 %int_0 None + %35 = OpLabel + %37 = OpAccessChain %_ptr_Workgroup_int %S %uint_0 %27 + OpStore %37 %int_0 None OpBranch %24 %24 = OpLabel %28 = OpIAdd %uint %27 %uint_1 OpBranch %25 %26 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %40 = OpFunctionCall %void %func + %32 = OpFunctionCall %void %func OpReturn OpFunctionEnd %main = OpFunction %void None %12
diff --git a/test/tint/ptr_ref/store/param/workgroup/i32.wgsl.expected.spvasm b/test/tint/ptr_ref/store/param/workgroup/i32.wgsl.expected.spvasm index 75fa397..d5ac19f 100644 --- a/test/tint/ptr_ref/store/param/workgroup/i32.wgsl.expected.spvasm +++ b/test/tint/ptr_ref/store/param/workgroup/i32.wgsl.expected.spvasm
@@ -26,9 +26,9 @@ %14 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 + %int_0 = OpConstant %int 0 %func = OpFunction %void None %9 %10 = OpLabel OpStore %S %int_42 None @@ -45,7 +45,7 @@ OpBranch %19 %19 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %25 = OpFunctionCall %void %func + %24 = OpFunctionCall %void %func OpReturn OpFunctionEnd %main = OpFunction %void None %9
diff --git a/test/tint/ptr_ref/store/param/workgroup/i32_in_struct.wgsl.expected.spvasm b/test/tint/ptr_ref/store/param/workgroup/i32_in_struct.wgsl.expected.spvasm index ad39911..8f7cd42 100644 --- a/test/tint/ptr_ref/store/param/workgroup/i32_in_struct.wgsl.expected.spvasm +++ b/test/tint/ptr_ref/store/param/workgroup/i32_in_struct.wgsl.expected.spvasm
@@ -31,9 +31,9 @@ %18 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %25 = OpConstantNull %str %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 + %29 = OpConstantNull %str %func = OpFunction %void None %10 %11 = OpLabel %12 = OpAccessChain %_ptr_Workgroup_int %S %uint_0 @@ -47,11 +47,11 @@ OpSelectionMerge %23 None OpBranchConditional %20 %24 %23 %24 = OpLabel - OpStore %S %25 None + OpStore %S %29 None OpBranch %23 %23 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %29 = OpFunctionCall %void %func + %28 = OpFunctionCall %void %func OpReturn OpFunctionEnd %main = OpFunction %void None %10
diff --git a/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.spvasm b/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.spvasm index 7433052..0c726c6 100644 --- a/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.spvasm +++ b/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.spvasm
@@ -33,9 +33,9 @@ %_ptr_Workgroup_str = OpTypePointer Workgroup %str %20 = OpConstantNull %str %23 = OpTypeFunction %void %uint - %bool = OpTypeBool %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 + %bool = OpTypeBool %43 = OpTypeFunction %void %func = OpFunction %void None %15 %pointer_indices = OpFunctionParameter %_arr_uint_uint_1 @@ -56,22 +56,22 @@ OpLoopMerge %29 %27 None OpBranch %26 %26 = OpLabel - %32 = OpUGreaterThanEqual %bool %30 %uint_4 - OpSelectionMerge %34 None - OpBranchConditional %32 %35 %34 - %35 = OpLabel + %37 = OpUGreaterThanEqual %bool %30 %uint_4 + OpSelectionMerge %39 None + OpBranchConditional %37 %40 %39 + %40 = OpLabel OpBranch %29 - %34 = OpLabel - %36 = OpAccessChain %_ptr_Workgroup_str %S %30 - OpStore %36 %20 None + %39 = OpLabel + %41 = OpAccessChain %_ptr_Workgroup_str %S %30 + OpStore %41 %20 None OpBranch %27 %27 = OpLabel %31 = OpIAdd %uint %30 %uint_1 OpBranch %28 %29 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %40 = OpCompositeConstruct %_arr_uint_uint_1 %uint_2 - %41 = OpFunctionCall %void %func %40 + %35 = OpCompositeConstruct %_arr_uint_uint_1 %uint_2 + %36 = OpFunctionCall %void %func %35 OpReturn OpFunctionEnd %main = OpFunction %void None %43
diff --git a/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.spvasm b/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.spvasm index c45bccc..e9996c0 100644 --- a/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.spvasm +++ b/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.spvasm
@@ -31,9 +31,9 @@ %19 = OpConstantNull %v2float %22 = OpTypeFunction %void %uint %bool = OpTypeBool - %28 = OpConstantNull %mat2v2float %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 + %33 = OpConstantNull %mat2v2float %35 = OpTypeFunction %void %func = OpFunction %void None %14 %pointer_indices = OpFunctionParameter %_arr_uint_uint_1 @@ -50,12 +50,12 @@ OpSelectionMerge %26 None OpBranchConditional %24 %27 %26 %27 = OpLabel - OpStore %S %28 None + OpStore %S %33 None OpBranch %26 %26 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %32 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 - %33 = OpFunctionCall %void %func %32 + %31 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 + %32 = OpFunctionCall %void %func %31 OpReturn OpFunctionEnd %main = OpFunction %void None %35
diff --git a/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.spvasm b/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.spvasm index 18ffd6a..5a3ca06 100644 --- a/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.spvasm +++ b/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.spvasm
@@ -31,9 +31,9 @@ %19 = OpConstantNull %v4float %22 = OpTypeFunction %void %uint %bool = OpTypeBool - %28 = OpConstantNull %mat2v4float %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 + %33 = OpConstantNull %mat2v4float %35 = OpTypeFunction %void %func = OpFunction %void None %14 %pointer_indices = OpFunctionParameter %_arr_uint_uint_1 @@ -50,12 +50,12 @@ OpSelectionMerge %26 None OpBranchConditional %24 %27 %26 %27 = OpLabel - OpStore %S %28 None + OpStore %S %33 None OpBranch %26 %26 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %32 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 - %33 = OpFunctionCall %void %func %32 + %31 = OpCompositeConstruct %_arr_uint_uint_1 %uint_1 + %32 = OpFunctionCall %void %func %31 OpReturn OpFunctionEnd %main = OpFunction %void None %35
diff --git a/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_struct.wgsl.expected.spvasm b/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_struct.wgsl.expected.spvasm index 38cf9bd..4f051be 100644 --- a/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_struct.wgsl.expected.spvasm +++ b/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_struct.wgsl.expected.spvasm
@@ -32,9 +32,9 @@ %19 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %26 = OpConstantNull %str %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 + %30 = OpConstantNull %str %func = OpFunction %void None %11 %12 = OpLabel %13 = OpAccessChain %_ptr_Workgroup_v4float %S %uint_0 @@ -48,11 +48,11 @@ OpSelectionMerge %24 None OpBranchConditional %21 %25 %24 %25 = OpLabel - OpStore %S %26 None + OpStore %S %30 None OpBranch %24 %24 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %30 = OpFunctionCall %void %func + %29 = OpFunctionCall %void %func OpReturn OpFunctionEnd %main = OpFunction %void None %11
diff --git a/test/tint/samples/compute_boids.wgsl.expected.spvasm b/test/tint/samples/compute_boids.wgsl.expected.spvasm index 3b9c2a3..dbea510 100644 --- a/test/tint/samples/compute_boids.wgsl.expected.spvasm +++ b/test/tint/samples/compute_boids.wgsl.expected.spvasm
@@ -235,15 +235,15 @@ %_ptr_Function_int = OpTypePointer Function %int %int_0 = OpConstant %int 0 %_ptr_Uniform_float = OpTypePointer Uniform %float - %int_1 = OpConstant %int 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 %uint_6 = OpConstant %uint 6 %float_0 = OpConstant %float 0 %float_0_100000001 = OpConstant %float 0.100000001 %_ptr_Function_float = OpTypePointer Function %float %float_n1 = OpConstant %float -1 %float_1 = OpConstant %float 1 + %uint_2 = OpConstant %uint 2 + %uint_3 = OpConstant %uint 3 + %int_1 = OpConstant %int 1 %222 = OpTypeFunction %void %comp_main_inner = OpFunction %void None %24 %gl_GlobalInvocationID = OpFunctionParameter %v3uint @@ -291,206 +291,206 @@ OpLoopMerge %65 %63 None OpBranch %62 %62 = OpLabel - %67 = OpLoad %uint %i None - %68 = OpULessThan %bool %67 %uint_5 - OpSelectionMerge %69 None - OpBranchConditional %68 %69 %70 - %70 = OpLabel + %138 = OpLoad %uint %i None + %139 = OpULessThan %bool %138 %uint_5 + OpSelectionMerge %140 None + OpBranchConditional %139 %140 %141 + %141 = OpLabel OpBranch %65 - %69 = OpLabel - %71 = OpLoad %uint %i None - %72 = OpLoad %uint %index None - %73 = OpIEqual %bool %71 %72 - OpSelectionMerge %74 None - OpBranchConditional %73 %75 %74 - %75 = OpLabel + %140 = OpLabel + %142 = OpLoad %uint %i None + %143 = OpLoad %uint %index None + %144 = OpIEqual %bool %142 %143 + OpSelectionMerge %145 None + OpBranchConditional %144 %146 %145 + %146 = OpLabel OpBranch %63 - %74 = OpLabel - %76 = OpLoad %uint %i None - %77 = OpExtInst %uint %36 UMin %76 %uint_4 - %78 = OpAccessChain %_ptr_StorageBuffer_v2float %6 %uint_0 %uint_0 %77 %uint_0 - %79 = OpLoad %v2float %78 None - %80 = OpVectorShuffle %v2float %79 %79 0 1 - OpStore %pos %80 None - %81 = OpLoad %uint %i None - %82 = OpExtInst %uint %36 UMin %81 %uint_4 - %83 = OpAccessChain %_ptr_StorageBuffer_v2float %6 %uint_0 %uint_0 %82 %uint_1 - %84 = OpLoad %v2float %83 None - %85 = OpVectorShuffle %v2float %84 %84 0 1 - OpStore %vel %85 None - %86 = OpLoad %v2float %pos None - %87 = OpLoad %v2float %vPos None - %88 = OpExtInst %float %36 Distance %86 %87 - %89 = OpAccessChain %_ptr_Uniform_float %1 %uint_0 %uint_1 - %91 = OpLoad %float %89 None - %92 = OpFOrdLessThan %bool %88 %91 - OpSelectionMerge %93 None - OpBranchConditional %92 %94 %93 - %94 = OpLabel - %95 = OpLoad %v2float %cMass None - %96 = OpLoad %v2float %pos None - %97 = OpFAdd %v2float %95 %96 - OpStore %cMass %97 None - %98 = OpLoad %int %cMassCount None - %99 = OpIAdd %int %98 %int_1 - OpStore %cMassCount %99 None - OpBranch %93 - %93 = OpLabel - %101 = OpLoad %v2float %pos None - %102 = OpLoad %v2float %vPos None - %103 = OpExtInst %float %36 Distance %101 %102 - %104 = OpAccessChain %_ptr_Uniform_float %1 %uint_0 %uint_2 - %106 = OpLoad %float %104 None - %107 = OpFOrdLessThan %bool %103 %106 - OpSelectionMerge %108 None - OpBranchConditional %107 %109 %108 - %109 = OpLabel - %110 = OpLoad %v2float %colVel None - %111 = OpLoad %v2float %pos None - %112 = OpLoad %v2float %vPos None - %113 = OpFSub %v2float %111 %112 - %114 = OpFSub %v2float %110 %113 - OpStore %colVel %114 None - OpBranch %108 - %108 = OpLabel - %115 = OpLoad %v2float %pos None - %116 = OpLoad %v2float %vPos None - %117 = OpExtInst %float %36 Distance %115 %116 - %118 = OpAccessChain %_ptr_Uniform_float %1 %uint_0 %uint_3 - %120 = OpLoad %float %118 None - %121 = OpFOrdLessThan %bool %117 %120 + %145 = OpLabel + %147 = OpLoad %uint %i None + %148 = OpExtInst %uint %36 UMin %147 %uint_4 + %149 = OpAccessChain %_ptr_StorageBuffer_v2float %6 %uint_0 %uint_0 %148 %uint_0 + %150 = OpLoad %v2float %149 None + %151 = OpVectorShuffle %v2float %150 %150 0 1 + OpStore %pos %151 None + %152 = OpLoad %uint %i None + %153 = OpExtInst %uint %36 UMin %152 %uint_4 + %154 = OpAccessChain %_ptr_StorageBuffer_v2float %6 %uint_0 %uint_0 %153 %uint_1 + %155 = OpLoad %v2float %154 None + %156 = OpVectorShuffle %v2float %155 %155 0 1 + OpStore %vel %156 None + %157 = OpLoad %v2float %pos None + %158 = OpLoad %v2float %vPos None + %159 = OpExtInst %float %36 Distance %157 %158 + %160 = OpAccessChain %_ptr_Uniform_float %1 %uint_0 %uint_1 + %161 = OpLoad %float %160 None + %162 = OpFOrdLessThan %bool %159 %161 + OpSelectionMerge %163 None + OpBranchConditional %162 %164 %163 + %164 = OpLabel + %205 = OpLoad %v2float %cMass None + %206 = OpLoad %v2float %pos None + %207 = OpFAdd %v2float %205 %206 + OpStore %cMass %207 None + %208 = OpLoad %int %cMassCount None + %209 = OpIAdd %int %208 %int_1 + OpStore %cMassCount %209 None + OpBranch %163 + %163 = OpLabel + %165 = OpLoad %v2float %pos None + %166 = OpLoad %v2float %vPos None + %167 = OpExtInst %float %36 Distance %165 %166 + %168 = OpAccessChain %_ptr_Uniform_float %1 %uint_0 %uint_2 + %170 = OpLoad %float %168 None + %171 = OpFOrdLessThan %bool %167 %170 + OpSelectionMerge %172 None + OpBranchConditional %171 %173 %172 + %173 = OpLabel + %211 = OpLoad %v2float %colVel None + %212 = OpLoad %v2float %pos None + %213 = OpLoad %v2float %vPos None + %214 = OpFSub %v2float %212 %213 + %215 = OpFSub %v2float %211 %214 + OpStore %colVel %215 None + OpBranch %172 + %172 = OpLabel + %174 = OpLoad %v2float %pos None + %175 = OpLoad %v2float %vPos None + %176 = OpExtInst %float %36 Distance %174 %175 + %177 = OpAccessChain %_ptr_Uniform_float %1 %uint_0 %uint_3 + %179 = OpLoad %float %177 None + %180 = OpFOrdLessThan %bool %176 %179 + OpSelectionMerge %181 None + OpBranchConditional %180 %182 %181 + %182 = OpLabel + %216 = OpLoad %v2float %cVel None + %217 = OpLoad %v2float %vel None + %218 = OpFAdd %v2float %216 %217 + OpStore %cVel %218 None + %219 = OpLoad %int %cVelCount None + %220 = OpIAdd %int %219 %int_1 + OpStore %cVelCount %220 None + OpBranch %181 + %181 = OpLabel + OpBranch %63 + %63 = OpLabel + %183 = OpLoad %uint %i None + %184 = OpIAdd %uint %183 %uint_1 + OpStore %i %184 None + OpBranch %64 + %65 = OpLabel + %66 = OpLoad %int %cMassCount None + %67 = OpSGreaterThan %bool %66 %int_0 + OpSelectionMerge %68 None + OpBranchConditional %67 %69 %68 + %69 = OpLabel + %185 = OpLoad %v2float %cMass None + %186 = OpLoad %int %cMassCount None + %187 = OpConvertSToF %float %186 + %188 = OpLoad %int %cMassCount None + %189 = OpConvertSToF %float %188 + %190 = OpCompositeConstruct %v2float %187 %189 + %191 = OpFDiv %v2float %185 %190 + %192 = OpLoad %v2float %vPos None + %193 = OpFSub %v2float %191 %192 + OpStore %cMass %193 None + OpBranch %68 + %68 = OpLabel + %70 = OpLoad %int %cVelCount None + %71 = OpSGreaterThan %bool %70 %int_0 + OpSelectionMerge %72 None + OpBranchConditional %71 %73 %72 + %73 = OpLabel + %194 = OpLoad %v2float %cVel None + %195 = OpLoad %int %cVelCount None + %196 = OpConvertSToF %float %195 + %197 = OpLoad %int %cVelCount None + %198 = OpConvertSToF %float %197 + %199 = OpCompositeConstruct %v2float %196 %198 + %200 = OpFDiv %v2float %194 %199 + OpStore %cVel %200 None + OpBranch %72 + %72 = OpLabel + %74 = OpLoad %v2float %vVel None + %75 = OpLoad %v2float %cMass None + %76 = OpAccessChain %_ptr_Uniform_float %1 %uint_0 %uint_4 + %78 = OpLoad %float %76 None + %79 = OpVectorTimesScalar %v2float %75 %78 + %80 = OpFAdd %v2float %74 %79 + %81 = OpLoad %v2float %colVel None + %82 = OpAccessChain %_ptr_Uniform_float %1 %uint_0 %uint_5 + %83 = OpLoad %float %82 None + %84 = OpVectorTimesScalar %v2float %81 %83 + %85 = OpFAdd %v2float %80 %84 + %86 = OpLoad %v2float %cVel None + %87 = OpAccessChain %_ptr_Uniform_float %1 %uint_0 %uint_6 + %89 = OpLoad %float %87 None + %90 = OpVectorTimesScalar %v2float %86 %89 + %91 = OpFAdd %v2float %85 %90 + OpStore %vVel %91 None + %92 = OpLoad %v2float %vVel None + %93 = OpExtInst %v2float %36 Normalize %92 + %94 = OpLoad %v2float %vVel None + %95 = OpExtInst %float %36 Length %94 + %96 = OpExtInst %float %36 NClamp %95 %float_0 %float_0_100000001 + %99 = OpVectorTimesScalar %v2float %93 %96 + OpStore %vVel %99 None + %100 = OpLoad %v2float %vPos None + %101 = OpLoad %v2float %vVel None + %102 = OpAccessChain %_ptr_Uniform_float %1 %uint_0 %uint_0 + %103 = OpLoad %float %102 None + %104 = OpVectorTimesScalar %v2float %101 %103 + %105 = OpFAdd %v2float %100 %104 + OpStore %vPos %105 None + %106 = OpAccessChain %_ptr_Function_float %vPos %uint_0 + %108 = OpLoad %float %106 None + %109 = OpFOrdLessThan %bool %108 %float_n1 + OpSelectionMerge %111 None + OpBranchConditional %109 %112 %111 + %112 = OpLabel + %201 = OpAccessChain %_ptr_Function_float %vPos %uint_0 + OpStore %201 %float_1 None + OpBranch %111 + %111 = OpLabel + %113 = OpAccessChain %_ptr_Function_float %vPos %uint_0 + %114 = OpLoad %float %113 None + %115 = OpFOrdGreaterThan %bool %114 %float_1 + OpSelectionMerge %117 None + OpBranchConditional %115 %118 %117 + %118 = OpLabel + %202 = OpAccessChain %_ptr_Function_float %vPos %uint_0 + OpStore %202 %float_n1 None + OpBranch %117 + %117 = OpLabel + %119 = OpAccessChain %_ptr_Function_float %vPos %uint_1 + %120 = OpLoad %float %119 None + %121 = OpFOrdLessThan %bool %120 %float_n1 OpSelectionMerge %122 None OpBranchConditional %121 %123 %122 %123 = OpLabel - %124 = OpLoad %v2float %cVel None - %125 = OpLoad %v2float %vel None - %126 = OpFAdd %v2float %124 %125 - OpStore %cVel %126 None - %127 = OpLoad %int %cVelCount None - %128 = OpIAdd %int %127 %int_1 - OpStore %cVelCount %128 None + %203 = OpAccessChain %_ptr_Function_float %vPos %uint_1 + OpStore %203 %float_1 None OpBranch %122 %122 = OpLabel - OpBranch %63 - %63 = OpLabel - %129 = OpLoad %uint %i None - %130 = OpIAdd %uint %129 %uint_1 - OpStore %i %130 None - OpBranch %64 - %65 = OpLabel - %131 = OpLoad %int %cMassCount None - %132 = OpSGreaterThan %bool %131 %int_0 - OpSelectionMerge %133 None - OpBranchConditional %132 %134 %133 - %134 = OpLabel - %135 = OpLoad %v2float %cMass None - %136 = OpLoad %int %cMassCount None - %137 = OpConvertSToF %float %136 - %138 = OpLoad %int %cMassCount None - %139 = OpConvertSToF %float %138 - %140 = OpCompositeConstruct %v2float %137 %139 - %141 = OpFDiv %v2float %135 %140 - %142 = OpLoad %v2float %vPos None - %143 = OpFSub %v2float %141 %142 - OpStore %cMass %143 None - OpBranch %133 - %133 = OpLabel - %144 = OpLoad %int %cVelCount None - %145 = OpSGreaterThan %bool %144 %int_0 - OpSelectionMerge %146 None - OpBranchConditional %145 %147 %146 - %147 = OpLabel - %148 = OpLoad %v2float %cVel None - %149 = OpLoad %int %cVelCount None - %150 = OpConvertSToF %float %149 - %151 = OpLoad %int %cVelCount None - %152 = OpConvertSToF %float %151 - %153 = OpCompositeConstruct %v2float %150 %152 - %154 = OpFDiv %v2float %148 %153 - OpStore %cVel %154 None - OpBranch %146 - %146 = OpLabel - %155 = OpLoad %v2float %vVel None - %156 = OpLoad %v2float %cMass None - %157 = OpAccessChain %_ptr_Uniform_float %1 %uint_0 %uint_4 - %158 = OpLoad %float %157 None - %159 = OpVectorTimesScalar %v2float %156 %158 - %160 = OpFAdd %v2float %155 %159 - %161 = OpLoad %v2float %colVel None - %162 = OpAccessChain %_ptr_Uniform_float %1 %uint_0 %uint_5 - %163 = OpLoad %float %162 None - %164 = OpVectorTimesScalar %v2float %161 %163 - %165 = OpFAdd %v2float %160 %164 - %166 = OpLoad %v2float %cVel None - %167 = OpAccessChain %_ptr_Uniform_float %1 %uint_0 %uint_6 - %169 = OpLoad %float %167 None - %170 = OpVectorTimesScalar %v2float %166 %169 - %171 = OpFAdd %v2float %165 %170 - OpStore %vVel %171 None - %172 = OpLoad %v2float %vVel None - %173 = OpExtInst %v2float %36 Normalize %172 - %174 = OpLoad %v2float %vVel None - %175 = OpExtInst %float %36 Length %174 - %176 = OpExtInst %float %36 NClamp %175 %float_0 %float_0_100000001 - %179 = OpVectorTimesScalar %v2float %173 %176 - OpStore %vVel %179 None - %180 = OpLoad %v2float %vPos None - %181 = OpLoad %v2float %vVel None - %182 = OpAccessChain %_ptr_Uniform_float %1 %uint_0 %uint_0 - %183 = OpLoad %float %182 None - %184 = OpVectorTimesScalar %v2float %181 %183 - %185 = OpFAdd %v2float %180 %184 - OpStore %vPos %185 None - %186 = OpAccessChain %_ptr_Function_float %vPos %uint_0 - %188 = OpLoad %float %186 None - %189 = OpFOrdLessThan %bool %188 %float_n1 - OpSelectionMerge %191 None - OpBranchConditional %189 %192 %191 - %192 = OpLabel - %193 = OpAccessChain %_ptr_Function_float %vPos %uint_0 - OpStore %193 %float_1 None - OpBranch %191 - %191 = OpLabel - %195 = OpAccessChain %_ptr_Function_float %vPos %uint_0 - %196 = OpLoad %float %195 None - %197 = OpFOrdGreaterThan %bool %196 %float_1 - OpSelectionMerge %198 None - OpBranchConditional %197 %199 %198 - %199 = OpLabel - %200 = OpAccessChain %_ptr_Function_float %vPos %uint_0 - OpStore %200 %float_n1 None - OpBranch %198 - %198 = OpLabel - %201 = OpAccessChain %_ptr_Function_float %vPos %uint_1 - %202 = OpLoad %float %201 None - %203 = OpFOrdLessThan %bool %202 %float_n1 - OpSelectionMerge %204 None - OpBranchConditional %203 %205 %204 - %205 = OpLabel - %206 = OpAccessChain %_ptr_Function_float %vPos %uint_1 - OpStore %206 %float_1 None - OpBranch %204 - %204 = OpLabel - %207 = OpAccessChain %_ptr_Function_float %vPos %uint_1 - %208 = OpLoad %float %207 None - %209 = OpFOrdGreaterThan %bool %208 %float_1 - OpSelectionMerge %210 None - OpBranchConditional %209 %211 %210 - %211 = OpLabel - %212 = OpAccessChain %_ptr_Function_float %vPos %uint_1 - OpStore %212 %float_n1 None - OpBranch %210 - %210 = OpLabel - %213 = OpLoad %uint %index None - %214 = OpExtInst %uint %36 UMin %213 %uint_4 - %215 = OpAccessChain %_ptr_StorageBuffer_v2float %15 %uint_0 %uint_0 %214 %uint_0 - %216 = OpLoad %v2float %vPos None - OpStore %215 %216 None - %217 = OpLoad %uint %index None - %218 = OpExtInst %uint %36 UMin %217 %uint_4 - %219 = OpAccessChain %_ptr_StorageBuffer_v2float %15 %uint_0 %uint_0 %218 %uint_1 - %220 = OpLoad %v2float %vVel None - OpStore %219 %220 None + %124 = OpAccessChain %_ptr_Function_float %vPos %uint_1 + %125 = OpLoad %float %124 None + %126 = OpFOrdGreaterThan %bool %125 %float_1 + OpSelectionMerge %127 None + OpBranchConditional %126 %128 %127 + %128 = OpLabel + %204 = OpAccessChain %_ptr_Function_float %vPos %uint_1 + OpStore %204 %float_n1 None + OpBranch %127 + %127 = OpLabel + %129 = OpLoad %uint %index None + %130 = OpExtInst %uint %36 UMin %129 %uint_4 + %131 = OpAccessChain %_ptr_StorageBuffer_v2float %15 %uint_0 %uint_0 %130 %uint_0 + %132 = OpLoad %v2float %vPos None + OpStore %131 %132 None + %133 = OpLoad %uint %index None + %134 = OpExtInst %uint %36 UMin %133 %uint_4 + %135 = OpAccessChain %_ptr_StorageBuffer_v2float %15 %uint_0 %uint_0 %134 %uint_1 + %136 = OpLoad %v2float %vVel None + OpStore %135 %136 None OpReturn OpFunctionEnd %comp_main = OpFunction %void None %222
diff --git a/test/tint/shadowing/loop.wgsl.expected.spvasm b/test/tint/shadowing/loop.wgsl.expected.spvasm index 7d5d2e8..9227000 100644 --- a/test/tint/shadowing/loop.wgsl.expected.spvasm +++ b/test/tint/shadowing/loop.wgsl.expected.spvasm
@@ -4,7 +4,7 @@ ; Bound: 69 ; Schema: 0 OpCapability Shader - %36 = OpExtInstImport "GLSL.std.450" + %40 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint GLCompute %foo "foo" OpExecutionMode %foo LocalSize 1 1 1 @@ -34,16 +34,16 @@ %10 = OpTypeFunction %void %_ptr_Function_int = OpTypePointer Function %int %int_0 = OpConstant %int 0 +%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %uint_0 = OpConstant %uint 0 %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %23 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %27 = OpConstantNull %v2uint + %27 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %31 = OpConstantNull %v2uint %bool = OpTypeBool %v2bool = OpTypeVector %bool 2 %uint_9 = OpConstant %uint 9 -%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int - %uint_0 = OpConstant %uint 0 %_ptr_Function_uint = OpTypePointer Function %uint %uint_1 = OpConstant %uint 1 %int_10 = OpConstant %int 10 @@ -56,56 +56,56 @@ OpStore %i %int_0 OpBranch %15 %15 = OpLabel - OpStore %tint_loop_idx %23 + OpStore %tint_loop_idx %27 OpBranch %18 %18 = OpLabel OpLoopMerge %19 %17 None OpBranch %16 %16 = OpLabel - %25 = OpLoad %v2uint %tint_loop_idx None - %26 = OpIEqual %v2bool %25 %27 - %30 = OpAll %bool %26 - OpSelectionMerge %31 None - OpBranchConditional %30 %32 %31 - %32 = OpLabel + %29 = OpLoad %v2uint %tint_loop_idx None + %30 = OpIEqual %v2bool %29 %31 + %34 = OpAll %bool %30 + OpSelectionMerge %35 None + OpBranchConditional %34 %36 %35 + %36 = OpLabel OpBranch %19 - %31 = OpLabel - %33 = OpLoad %int %i None - %34 = OpBitcast %uint %33 - %35 = OpExtInst %uint %36 UMin %34 %uint_9 - %38 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 %35 - %41 = OpLoad %int %38 None - OpStore %x %41 + %35 = OpLabel + %37 = OpLoad %int %i None + %38 = OpBitcast %uint %37 + %39 = OpExtInst %uint %40 UMin %38 %uint_9 + %42 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 %39 + %43 = OpLoad %int %42 None + OpStore %x %43 OpBranch %17 %17 = OpLabel - %43 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %45 = OpLoad %uint %43 None -%tint_low_inc = OpISub %uint %45 %uint_1 - %48 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %48 %tint_low_inc None - %49 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %49 %uint_1 %uint_0 - %51 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %52 = OpLoad %uint %51 None - %53 = OpISub %uint %52 %tint_carry - %54 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %54 %53 None - %55 = OpLoad %int %x None - %56 = OpBitcast %uint %55 - %57 = OpExtInst %uint %36 UMin %56 %uint_9 - %58 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 %57 - %59 = OpLoad %int %58 None - OpStore %x_0 %59 - %61 = OpLoad %int %x_0 None - %62 = OpLoad %int %i None - %63 = OpIAdd %int %62 %61 - OpStore %i %63 None + %45 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %47 = OpLoad %uint %45 None +%tint_low_inc = OpISub %uint %47 %uint_1 + %50 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %50 %tint_low_inc None + %51 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %51 %uint_1 %uint_0 + %53 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %54 = OpLoad %uint %53 None + %55 = OpISub %uint %54 %tint_carry + %56 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %56 %55 None + %57 = OpLoad %int %x None + %58 = OpBitcast %uint %57 + %59 = OpExtInst %uint %40 UMin %58 %uint_9 + %60 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 %59 + %61 = OpLoad %int %60 None + OpStore %x_0 %61 + %63 = OpLoad %int %x_0 None %64 = OpLoad %int %i None - %65 = OpSGreaterThan %bool %64 %int_10 - OpBranchConditional %65 %19 %18 + %65 = OpIAdd %int %64 %63 + OpStore %i %65 None + %66 = OpLoad %int %i None + %67 = OpSGreaterThan %bool %66 %int_10 + OpBranchConditional %67 %19 %18 %19 = OpLabel - %67 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 %uint_0 - %68 = OpLoad %int %i None - OpStore %67 %68 None + %20 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 %uint_0 + %23 = OpLoad %int %i None + OpStore %20 %23 None OpReturn OpFunctionEnd
diff --git a/test/tint/statements/discard/atomic_cmpxchg.wgsl.expected.spvasm b/test/tint/statements/discard/atomic_cmpxchg.wgsl.expected.spvasm index 1f22672..afb8885 100644 --- a/test/tint/statements/discard/atomic_cmpxchg.wgsl.expected.spvasm +++ b/test/tint/statements/discard/atomic_cmpxchg.wgsl.expected.spvasm
@@ -41,10 +41,10 @@ %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int %uint = OpTypeInt 32 0 %uint_0 = OpConstant %uint 0 +%__atomic_compare_exchange_result_i32 = OpTypeStruct %int %bool + %29 = OpUndef %__atomic_compare_exchange_result_i32 %uint_1 = OpConstant %uint 1 %int_1 = OpConstant %int 1 -%__atomic_compare_exchange_result_i32 = OpTypeStruct %int %bool - %33 = OpUndef %__atomic_compare_exchange_result_i32 %void = OpTypeVoid %45 = OpTypeFunction %void %foo_inner = OpFunction %int None %12 @@ -57,31 +57,31 @@ OpSelectionMerge %23 None OpBranchConditional %22 %24 %25 %24 = OpLabel - %26 = OpAtomicCompareExchange %int %18 %uint_1 %uint_0 %uint_0 %int_1 %int_0 - %29 = OpIEqual %bool %26 %int_0 - %31 = OpCompositeConstruct %__atomic_compare_exchange_result_i32 %26 %29 + %38 = OpAtomicCompareExchange %int %18 %uint_1 %uint_0 %uint_0 %int_1 %int_0 + %41 = OpIEqual %bool %38 %int_0 + %28 = OpCompositeConstruct %__atomic_compare_exchange_result_i32 %38 %41 OpBranch %23 %25 = OpLabel OpBranch %23 %23 = OpLabel - %result = OpPhi %__atomic_compare_exchange_result_i32 %31 %24 %33 %25 - %34 = OpCompositeExtract %bool %result 1 - OpSelectionMerge %35 None - OpBranchConditional %34 %36 %35 - %36 = OpLabel - %37 = OpCompositeExtract %int %result 0 - OpStore %x %37 None - OpBranch %35 - %35 = OpLabel - %38 = OpLoad %int %x None - %39 = OpLoad %bool %continue_execution None - %40 = OpLogicalNot %bool %39 - OpSelectionMerge %41 None - OpBranchConditional %40 %42 %41 - %42 = OpLabel + %result = OpPhi %__atomic_compare_exchange_result_i32 %28 %24 %29 %25 + %30 = OpCompositeExtract %bool %result 1 + OpSelectionMerge %31 None + OpBranchConditional %30 %32 %31 + %32 = OpLabel + %42 = OpCompositeExtract %int %result 0 + OpStore %x %42 None + OpBranch %31 + %31 = OpLabel + %33 = OpLoad %int %x None + %34 = OpLoad %bool %continue_execution None + %35 = OpLogicalNot %bool %34 + OpSelectionMerge %36 None + OpBranchConditional %35 %37 %36 + %37 = OpLabel OpKill - %41 = OpLabel - OpReturnValue %38 + %36 = OpLabel + OpReturnValue %33 OpFunctionEnd %foo = OpFunction %void None %45 %46 = OpLabel
diff --git a/test/tint/statements/discard/atomic_in_for_loop_continuing.wgsl.expected.spvasm b/test/tint/statements/discard/atomic_in_for_loop_continuing.wgsl.expected.spvasm index df77b52..ac7f17a 100644 --- a/test/tint/statements/discard/atomic_in_for_loop_continuing.wgsl.expected.spvasm +++ b/test/tint/statements/discard/atomic_in_for_loop_continuing.wgsl.expected.spvasm
@@ -62,25 +62,25 @@ %foo_loc0_Output = OpVariable %_ptr_Output_int Output %26 = OpTypeFunction %int %float %v2float %float_0 = OpConstant %float 0 - %false = OpConstantFalse %bool - %36 = OpTypeSampledImage %3 + %35 = OpTypeSampledImage %3 %v4float = OpTypeVector %float 4 %_ptr_Function_int = OpTypePointer Function %int + %false = OpConstantFalse %bool %uint = OpTypeInt 32 0 %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %53 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %58 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 %int_0 = OpConstant %int 0 - %59 = OpConstantNull %v2uint + %64 = OpConstantNull %v2uint %v2bool = OpTypeVector %bool 2 %int_10 = OpConstant %int 10 %_ptr_Function_uint = OpTypePointer Function %uint %uint_0 = OpConstant %uint 0 %uint_1 = OpConstant %uint 1 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int + %98 = OpUndef %int %int_1 = OpConstant %int 1 - %94 = OpUndef %int %101 = OpTypeFunction %int %float %float_n2_14748365e_09 = OpConstant %float -2.14748365e+09 %int_n2147483648 = OpConstant %int -2147483648 @@ -102,78 +102,78 @@ OpStore %continue_execution %false None OpBranch %30 %30 = OpLabel - %33 = OpLoad %3 %t None - %34 = OpLoad %7 %s None - %35 = OpSampledImage %36 %33 %34 - %37 = OpImageSampleImplicitLod %v4float %35 %coord None - %39 = OpCompositeExtract %float %37 0 - %40 = OpFunctionCall %int %tint_f32_to_i32 %39 - OpStore %result %40 - OpBranch %44 - %44 = OpLabel - OpStore %tint_loop_idx %53 + %32 = OpLoad %3 %t None + %33 = OpLoad %7 %s None + %34 = OpSampledImage %35 %32 %33 + %36 = OpImageSampleImplicitLod %v4float %34 %coord None + %38 = OpCompositeExtract %float %36 0 + %39 = OpFunctionCall %int %tint_f32_to_i32 %38 + OpStore %result %39 + OpBranch %43 + %43 = OpLabel + OpStore %tint_loop_idx %58 OpStore %i %int_0 - OpBranch %47 - %47 = OpLabel - OpLoopMerge %48 %46 None - OpBranch %45 - %45 = OpLabel - %57 = OpLoad %v2uint %tint_loop_idx None - %58 = OpIEqual %v2bool %57 %59 - %61 = OpAll %bool %58 - OpSelectionMerge %62 None - OpBranchConditional %61 %63 %62 - %63 = OpLabel - OpBranch %48 - %62 = OpLabel - %64 = OpLoad %int %i None - %65 = OpSLessThan %bool %64 %int_10 - OpSelectionMerge %67 None - OpBranchConditional %65 %67 %68 - %68 = OpLabel - OpBranch %48 - %67 = OpLabel - %69 = OpLoad %int %i None - %70 = OpLoad %int %result None - %71 = OpIAdd %int %70 %69 - OpStore %result %71 None OpBranch %46 %46 = OpLabel - %72 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %75 = OpLoad %uint %72 None -%tint_low_inc = OpISub %uint %75 %uint_1 - %78 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %78 %tint_low_inc None - %79 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %79 %uint_1 %uint_0 - %81 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %82 = OpLoad %uint %81 None - %83 = OpISub %uint %82 %tint_carry - %84 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %84 %83 None - %85 = OpAccessChain %_ptr_StorageBuffer_int %8 %uint_0 - %87 = OpLoad %bool %continue_execution None - OpSelectionMerge %88 None - OpBranchConditional %87 %89 %90 - %89 = OpLabel - %91 = OpAtomicIAdd %int %85 %uint_1 %uint_0 %int_1 - OpBranch %88 - %90 = OpLabel - OpBranch %88 - %88 = OpLabel - %93 = OpPhi %int %91 %89 %94 %90 - OpStore %i %93 None + OpLoopMerge %47 %45 None + OpBranch %44 + %44 = OpLabel + %62 = OpLoad %v2uint %tint_loop_idx None + %63 = OpIEqual %v2bool %62 %64 + %66 = OpAll %bool %63 + OpSelectionMerge %67 None + OpBranchConditional %66 %68 %67 + %68 = OpLabel OpBranch %47 - %48 = OpLabel - %95 = OpLoad %int %result None - %96 = OpLoad %bool %continue_execution None - %97 = OpLogicalNot %bool %96 - OpSelectionMerge %98 None - OpBranchConditional %97 %99 %98 - %99 = OpLabel + %67 = OpLabel + %69 = OpLoad %int %i None + %70 = OpSLessThan %bool %69 %int_10 + OpSelectionMerge %72 None + OpBranchConditional %70 %72 %73 + %73 = OpLabel + OpBranch %47 + %72 = OpLabel + %74 = OpLoad %int %i None + %75 = OpLoad %int %result None + %76 = OpIAdd %int %75 %74 + OpStore %result %76 None + OpBranch %45 + %45 = OpLabel + %77 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %80 = OpLoad %uint %77 None +%tint_low_inc = OpISub %uint %80 %uint_1 + %83 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %83 %tint_low_inc None + %84 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %84 %uint_1 %uint_0 + %86 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %87 = OpLoad %uint %86 None + %88 = OpISub %uint %87 %tint_carry + %89 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %89 %88 None + %90 = OpAccessChain %_ptr_StorageBuffer_int %8 %uint_0 + %92 = OpLoad %bool %continue_execution None + OpSelectionMerge %93 None + OpBranchConditional %92 %94 %95 + %94 = OpLabel + %97 = OpAtomicIAdd %int %90 %uint_1 %uint_0 %int_1 + OpBranch %93 + %95 = OpLabel + OpBranch %93 + %93 = OpLabel + %96 = OpPhi %int %97 %94 %98 %95 + OpStore %i %96 None + OpBranch %46 + %47 = OpLabel + %48 = OpLoad %int %result None + %49 = OpLoad %bool %continue_execution None + %50 = OpLogicalNot %bool %49 + OpSelectionMerge %51 None + OpBranchConditional %50 %52 %51 + %52 = OpLabel OpKill - %98 = OpLabel - OpReturnValue %95 + %51 = OpLabel + OpReturnValue %48 OpFunctionEnd %tint_f32_to_i32 = OpFunction %int None %101 %value = OpFunctionParameter %float
diff --git a/test/tint/statements/discard/multiple_returns.wgsl.expected.spvasm b/test/tint/statements/discard/multiple_returns.wgsl.expected.spvasm index d56a6a0..1023180 100644 --- a/test/tint/statements/discard/multiple_returns.wgsl.expected.spvasm +++ b/test/tint/statements/discard/multiple_returns.wgsl.expected.spvasm
@@ -45,16 +45,16 @@ %uint = OpTypeInt 32 0 %uint_0 = OpConstant %uint 0 %int_0 = OpConstant %int 0 - %false = OpConstantFalse %bool %float_1 = OpConstant %float 1 %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %float_0 = OpConstant %float 0 + %false = OpConstantFalse %bool %_ptr_Function_int = OpTypePointer Function %int %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %50 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %54 = OpConstantNull %v2uint + %58 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 + %62 = OpConstantNull %v2uint %v2bool = OpTypeVector %bool 2 %_ptr_Function_uint = OpTypePointer Function %uint %uint_1 = OpConstant %uint 1 @@ -73,95 +73,56 @@ OpStore %continue_execution %false None OpBranch %24 %24 = OpLabel - %27 = OpDPdx %float %float_1 - %29 = OpAccessChain %_ptr_StorageBuffer_float %5 %uint_0 - %31 = OpLoad %bool %continue_execution None - OpSelectionMerge %32 None - OpBranchConditional %31 %33 %32 - %33 = OpLabel - OpStore %29 %27 None - OpBranch %32 + %26 = OpDPdx %float %float_1 + %28 = OpAccessChain %_ptr_StorageBuffer_float %5 %uint_0 + %30 = OpLoad %bool %continue_execution None + OpSelectionMerge %31 None + OpBranchConditional %30 %32 %31 %32 = OpLabel - %34 = OpAccessChain %_ptr_StorageBuffer_float %5 %uint_0 - %35 = OpLoad %float %34 None - %36 = OpFOrdLessThan %bool %35 %float_0 - OpSelectionMerge %38 None - OpBranchConditional %36 %39 %38 - %39 = OpLabel + OpStore %28 %26 None + OpBranch %31 + %31 = OpLabel + %33 = OpAccessChain %_ptr_StorageBuffer_float %5 %uint_0 + %34 = OpLoad %float %33 None + %35 = OpFOrdLessThan %bool %34 %float_0 + OpSelectionMerge %37 None + OpBranchConditional %35 %38 %37 + %38 = OpLabel OpStore %i %int_0 - OpBranch %42 - %42 = OpLabel - OpStore %tint_loop_idx %50 - OpBranch %45 - %45 = OpLabel - OpLoopMerge %46 %44 None - OpBranch %43 - %43 = OpLabel - %52 = OpLoad %v2uint %tint_loop_idx None - %53 = OpIEqual %v2bool %52 %54 - %56 = OpAll %bool %53 - OpSelectionMerge %57 None - OpBranchConditional %56 %58 %57 - %58 = OpLabel OpBranch %46 - %57 = OpLabel - %59 = OpAccessChain %_ptr_StorageBuffer_float %5 %uint_0 - %60 = OpLoad %float %59 None - %61 = OpLoad %int %i None - %62 = OpConvertSToF %float %61 - %63 = OpFOrdGreaterThan %bool %60 %62 - OpSelectionMerge %64 None - OpBranchConditional %63 %65 %64 - %65 = OpLabel - %66 = OpLoad %int %i None - %67 = OpConvertSToF %float %66 - %68 = OpAccessChain %_ptr_StorageBuffer_float %5 %uint_0 - %69 = OpLoad %bool %continue_execution None - OpSelectionMerge %70 None - OpBranchConditional %69 %71 %70 - %71 = OpLabel - OpStore %68 %67 None - OpBranch %70 - %70 = OpLabel - %72 = OpLoad %bool %continue_execution None - %73 = OpLogicalNot %bool %72 - OpSelectionMerge %74 None - OpBranchConditional %73 %75 %74 - %75 = OpLabel - OpKill - %74 = OpLabel - OpReturn - %64 = OpLabel - OpBranch %44 - %44 = OpLabel - %76 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %78 = OpLoad %uint %76 None -%tint_low_inc = OpISub %uint %78 %uint_1 - %81 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %81 %tint_low_inc None - %82 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %82 %uint_1 %uint_0 - %84 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %85 = OpLoad %uint %84 None - %86 = OpISub %uint %85 %tint_carry - %87 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %87 %86 None - %88 = OpLoad %int %i None - %89 = OpIAdd %int %88 %int_1 - OpStore %i %89 None - %91 = OpLoad %int %i None - %92 = OpIEqual %bool %91 %int_5 - OpBranchConditional %92 %46 %45 %46 = OpLabel - %94 = OpLoad %bool %continue_execution None - %95 = OpLogicalNot %bool %94 + OpStore %tint_loop_idx %58 + OpBranch %49 + %49 = OpLabel + OpLoopMerge %50 %48 None + OpBranch %47 + %47 = OpLabel + %60 = OpLoad %v2uint %tint_loop_idx None + %61 = OpIEqual %v2bool %60 %62 + %64 = OpAll %bool %61 + OpSelectionMerge %65 None + OpBranchConditional %64 %66 %65 + %66 = OpLabel + OpBranch %50 + %65 = OpLabel + %67 = OpAccessChain %_ptr_StorageBuffer_float %5 %uint_0 + %68 = OpLoad %float %67 None + %69 = OpLoad %int %i None + %70 = OpConvertSToF %float %69 + %71 = OpFOrdGreaterThan %bool %68 %70 + OpSelectionMerge %72 None + OpBranchConditional %71 %73 %72 + %73 = OpLabel + %92 = OpLoad %int %i None + %93 = OpConvertSToF %float %92 + %94 = OpAccessChain %_ptr_StorageBuffer_float %5 %uint_0 + %95 = OpLoad %bool %continue_execution None OpSelectionMerge %96 None OpBranchConditional %95 %97 %96 %97 = OpLabel - OpKill + OpStore %94 %93 None + OpBranch %96 %96 = OpLabel - OpReturn - %38 = OpLabel %98 = OpLoad %bool %continue_execution None %99 = OpLogicalNot %bool %98 OpSelectionMerge %100 None @@ -170,4 +131,43 @@ OpKill %100 = OpLabel OpReturn + %72 = OpLabel + OpBranch %48 + %48 = OpLabel + %74 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %76 = OpLoad %uint %74 None +%tint_low_inc = OpISub %uint %76 %uint_1 + %79 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %79 %tint_low_inc None + %80 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %80 %uint_1 %uint_0 + %82 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %83 = OpLoad %uint %82 None + %84 = OpISub %uint %83 %tint_carry + %85 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %85 %84 None + %86 = OpLoad %int %i None + %87 = OpIAdd %int %86 %int_1 + OpStore %i %87 None + %89 = OpLoad %int %i None + %90 = OpIEqual %bool %89 %int_5 + OpBranchConditional %90 %50 %49 + %50 = OpLabel + %51 = OpLoad %bool %continue_execution None + %52 = OpLogicalNot %bool %51 + OpSelectionMerge %53 None + OpBranchConditional %52 %54 %53 + %54 = OpLabel + OpKill + %53 = OpLabel + OpReturn + %37 = OpLabel + %39 = OpLoad %bool %continue_execution None + %40 = OpLogicalNot %bool %39 + OpSelectionMerge %41 None + OpBranchConditional %40 %42 %41 + %42 = OpLabel + OpKill + %41 = OpLabel + OpReturn OpFunctionEnd
diff --git a/test/tint/statements/discard/nested_return.wgsl.expected.spvasm b/test/tint/statements/discard/nested_return.wgsl.expected.spvasm index c2d2be9..cdcabb7 100644 --- a/test/tint/statements/discard/nested_return.wgsl.expected.spvasm +++ b/test/tint/statements/discard/nested_return.wgsl.expected.spvasm
@@ -42,12 +42,12 @@ OpStore %continue_execution %false None OpBranch %20 %20 = OpLabel - %23 = OpLoad %bool %continue_execution None - %24 = OpLogicalNot %bool %23 - OpSelectionMerge %25 None - OpBranchConditional %24 %26 %25 - %26 = OpLabel - OpKill + %22 = OpLoad %bool %continue_execution None + %23 = OpLogicalNot %bool %22 + OpSelectionMerge %24 None + OpBranchConditional %23 %25 %24 %25 = OpLabel + OpKill + %24 = OpLabel OpReturn OpFunctionEnd
diff --git a/test/tint/statements/discard/non_uniform.wgsl.expected.spvasm b/test/tint/statements/discard/non_uniform.wgsl.expected.spvasm index 922ec42..543b058 100644 --- a/test/tint/statements/discard/non_uniform.wgsl.expected.spvasm +++ b/test/tint/statements/discard/non_uniform.wgsl.expected.spvasm
@@ -41,9 +41,9 @@ %uint = OpTypeInt 32 0 %uint_0 = OpConstant %uint 0 %int_0 = OpConstant %int 0 - %false = OpConstantFalse %bool %float_1 = OpConstant %float 1 %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float + %false = OpConstantFalse %bool %main = OpFunction %void None %15 %16 = OpLabel %17 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 @@ -55,21 +55,21 @@ OpStore %continue_execution %false None OpBranch %24 %24 = OpLabel - %27 = OpDPdx %float %float_1 - %29 = OpAccessChain %_ptr_StorageBuffer_float %5 %uint_0 - %31 = OpLoad %bool %continue_execution None - OpSelectionMerge %32 None - OpBranchConditional %31 %33 %32 - %33 = OpLabel - OpStore %29 %27 None - OpBranch %32 + %26 = OpDPdx %float %float_1 + %28 = OpAccessChain %_ptr_StorageBuffer_float %5 %uint_0 + %30 = OpLoad %bool %continue_execution None + OpSelectionMerge %31 None + OpBranchConditional %30 %32 %31 %32 = OpLabel - %34 = OpLoad %bool %continue_execution None - %35 = OpLogicalNot %bool %34 - OpSelectionMerge %36 None - OpBranchConditional %35 %37 %36 - %37 = OpLabel - OpKill + OpStore %28 %26 None + OpBranch %31 + %31 = OpLabel + %33 = OpLoad %bool %continue_execution None + %34 = OpLogicalNot %bool %33 + OpSelectionMerge %35 None + OpBranchConditional %34 %36 %35 %36 = OpLabel + OpKill + %35 = OpLabel OpReturn OpFunctionEnd
diff --git a/test/tint/statements/for/complex.wgsl.expected.spvasm b/test/tint/statements/for/complex.wgsl.expected.spvasm index ea80677..1619b7e 100644 --- a/test/tint/statements/for/complex.wgsl.expected.spvasm +++ b/test/tint/statements/for/complex.wgsl.expected.spvasm
@@ -30,13 +30,13 @@ %bool = OpTypeBool %v2bool = OpTypeVector %bool 2 %int_5 = OpConstant %int 5 - %int_10 = OpConstant %int 10 %false = OpConstantFalse %bool %int_30 = OpConstant %int 30 %_ptr_Function_uint = OpTypePointer Function %uint %uint_0 = OpConstant %uint 0 %uint_1 = OpConstant %uint 1 %int_1 = OpConstant %int 1 + %int_10 = OpConstant %int 10 %some_loop_body = OpFunction %void None %3 %4 = OpLabel OpReturn @@ -68,39 +68,39 @@ OpSelectionMerge %35 None OpBranchConditional %33 %36 %37 %36 = OpLabel - %38 = OpLoad %int %j None - %39 = OpSLessThan %bool %38 %int_10 + %63 = OpLoad %int %j None + %39 = OpSLessThan %bool %63 %int_10 OpBranch %35 %37 = OpLabel OpBranch %35 %35 = OpLabel - %41 = OpPhi %bool %39 %36 %false %37 - OpSelectionMerge %43 None - OpBranchConditional %41 %43 %44 - %44 = OpLabel + %38 = OpPhi %bool %39 %36 %false %37 + OpSelectionMerge %41 None + OpBranchConditional %38 %41 %42 + %42 = OpLabel OpBranch %15 - %43 = OpLabel - %45 = OpFunctionCall %void %some_loop_body - %46 = OpLoad %int %i None - %47 = OpIMul %int %46 %int_30 - OpStore %j %47 None + %41 = OpLabel + %43 = OpFunctionCall %void %some_loop_body + %44 = OpLoad %int %i None + %45 = OpIMul %int %44 %int_30 + OpStore %j %45 None OpBranch %13 %13 = OpLabel - %49 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %52 = OpLoad %uint %49 None -%tint_low_inc = OpISub %uint %52 %uint_1 - %55 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %55 %tint_low_inc None - %56 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %56 %uint_1 %uint_0 - %58 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %59 = OpLoad %uint %58 None - %60 = OpISub %uint %59 %tint_carry - %61 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %61 %60 None - %62 = OpLoad %int %i None - %63 = OpIAdd %int %62 %int_1 - OpStore %i %63 None + %47 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %50 = OpLoad %uint %47 None +%tint_low_inc = OpISub %uint %50 %uint_1 + %53 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %53 %tint_low_inc None + %54 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %54 %uint_1 %uint_0 + %56 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %57 = OpLoad %uint %56 None + %58 = OpISub %uint %57 %tint_carry + %59 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %59 %58 None + %60 = OpLoad %int %i None + %61 = OpIAdd %int %60 %int_1 + OpStore %i %61 None OpBranch %14 %15 = OpLabel OpReturn
diff --git a/test/tint/statements/for/scoping.wgsl.expected.spvasm b/test/tint/statements/for/scoping.wgsl.expected.spvasm index a457d59..e315646 100644 --- a/test/tint/statements/for/scoping.wgsl.expected.spvasm +++ b/test/tint/statements/for/scoping.wgsl.expected.spvasm
@@ -8,65 +8,65 @@ OpEntryPoint GLCompute %unused_entry_point "unused_entry_point" OpExecutionMode %unused_entry_point LocalSize 1 1 1 OpName %f "f" - OpName %tint_loop_idx "tint_loop_idx" OpName %must_not_collide "must_not_collide" + OpName %tint_loop_idx "tint_loop_idx" + OpName %must_not_collide_0 "must_not_collide" OpName %tint_low_inc "tint_low_inc" OpName %tint_carry "tint_carry" - OpName %must_not_collide_0 "must_not_collide" OpName %unused_entry_point "unused_entry_point" %void = OpTypeVoid %3 = OpTypeFunction %void + %int = OpTypeInt 32 1 +%_ptr_Function_int = OpTypePointer Function %int + %13 = OpConstantNull %int %uint = OpTypeInt 32 0 %v2uint = OpTypeVector %uint 2 %_ptr_Function_v2uint = OpTypePointer Function %v2uint %uint_4294967295 = OpConstant %uint 4294967295 - %14 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int + %18 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 %int_0 = OpConstant %int 0 - %22 = OpConstantNull %v2uint + %24 = OpConstantNull %v2uint %bool = OpTypeBool %v2bool = OpTypeVector %bool 2 %_ptr_Function_uint = OpTypePointer Function %uint %uint_0 = OpConstant %uint 0 %uint_1 = OpConstant %uint 1 - %42 = OpConstantNull %int %f = OpFunction %void None %3 %4 = OpLabel +%must_not_collide = OpVariable %_ptr_Function_int Function %13 %tint_loop_idx = OpVariable %_ptr_Function_v2uint Function -%must_not_collide = OpVariable %_ptr_Function_int Function -%must_not_collide_0 = OpVariable %_ptr_Function_int Function %42 +%must_not_collide_0 = OpVariable %_ptr_Function_int Function OpBranch %5 %5 = OpLabel - OpStore %tint_loop_idx %14 - OpStore %must_not_collide %int_0 + OpStore %tint_loop_idx %18 + OpStore %must_not_collide_0 %int_0 OpBranch %8 %8 = OpLabel OpLoopMerge %9 %7 None OpBranch %6 %6 = OpLabel - %20 = OpLoad %v2uint %tint_loop_idx None - %21 = OpIEqual %v2bool %20 %22 - %25 = OpAll %bool %21 - OpSelectionMerge %26 None - OpBranchConditional %25 %27 %26 - %27 = OpLabel + %22 = OpLoad %v2uint %tint_loop_idx None + %23 = OpIEqual %v2bool %22 %24 + %27 = OpAll %bool %23 + OpSelectionMerge %28 None + OpBranchConditional %27 %29 %28 + %29 = OpLabel OpBranch %9 - %26 = OpLabel + %28 = OpLabel OpBranch %9 %7 = OpLabel - %28 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - %31 = OpLoad %uint %28 None -%tint_low_inc = OpISub %uint %31 %uint_1 - %34 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 - OpStore %34 %tint_low_inc None - %35 = OpIEqual %bool %tint_low_inc %uint_4294967295 - %tint_carry = OpSelect %uint %35 %uint_1 %uint_0 - %37 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - %38 = OpLoad %uint %37 None - %39 = OpISub %uint %38 %tint_carry - %40 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 - OpStore %40 %39 None + %30 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + %33 = OpLoad %uint %30 None +%tint_low_inc = OpISub %uint %33 %uint_1 + %36 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 + OpStore %36 %tint_low_inc None + %37 = OpIEqual %bool %tint_low_inc %uint_4294967295 + %tint_carry = OpSelect %uint %37 %uint_1 %uint_0 + %39 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + %40 = OpLoad %uint %39 None + %41 = OpISub %uint %40 %tint_carry + %42 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 + OpStore %42 %41 None OpBranch %8 %9 = OpLabel OpReturn
diff --git a/test/tint/statements/switch/common.wgsl.expected.spvasm b/test/tint/statements/switch/common.wgsl.expected.spvasm index 183372c..4d88492 100644 --- a/test/tint/statements/switch/common.wgsl.expected.spvasm +++ b/test/tint/statements/switch/common.wgsl.expected.spvasm
@@ -26,6 +26,9 @@ %10 = OpLoad %int %i None OpSelectionMerge %15 None OpSwitch %10 %11 0 %12 1 %13 2 %14 + %11 = OpLabel + OpStore %result %int_44 None + OpBranch %15 %12 = OpLabel OpStore %result %int_10 None OpBranch %15 @@ -35,9 +38,6 @@ %14 = OpLabel OpStore %result %int_33 None OpBranch %15 - %11 = OpLabel - OpStore %result %int_44 None - OpBranch %15 %15 = OpLabel OpReturn OpFunctionEnd
diff --git a/test/tint/switch/switch.wgsl.expected.spvasm b/test/tint/switch/switch.wgsl.expected.spvasm index 98f1f66..2ec658b 100644 --- a/test/tint/switch/switch.wgsl.expected.spvasm +++ b/test/tint/switch/switch.wgsl.expected.spvasm
@@ -23,15 +23,15 @@ %9 = OpLoad %int %a_0 None OpSelectionMerge %13 None OpSwitch %9 %10 0 %11 1 %12 - %11 = OpLabel - OpBranch %13 - %12 = OpLabel - OpBranch %13 %10 = OpLabel %14 = OpLoad %int %a_0 None %15 = OpIAdd %int %14 %int_2 OpStore %a_0 %15 None OpBranch %13 + %11 = OpLabel + OpBranch %13 + %12 = OpLabel + OpBranch %13 %13 = OpLabel OpReturn OpFunctionEnd
diff --git a/test/tint/switch/switch_nested.wgsl.expected.spvasm b/test/tint/switch/switch_nested.wgsl.expected.spvasm index 081ac53..04e3520 100644 --- a/test/tint/switch/switch_nested.wgsl.expected.spvasm +++ b/test/tint/switch/switch_nested.wgsl.expected.spvasm
@@ -24,8 +24,8 @@ %uint = OpTypeInt 32 0 %_ptr_Function_uint = OpTypePointer Function %uint %uint_3 = OpConstant %uint 3 - %uint_123 = OpConstant %uint 123 %false = OpConstantFalse %bool + %uint_123 = OpConstant %uint 123 %a = OpFunction %void None %3 %4 = OpLabel %continue_execution = OpVariable %_ptr_Function_bool Function @@ -46,15 +46,15 @@ OpBranch %24 %22 = OpLabel OpStore %c %uint_123 - %27 = OpLoad %uint %c None - OpSelectionMerge %30 None - OpSwitch %27 %28 0 %29 + %28 = OpLoad %uint %c None + OpSelectionMerge %31 None + OpSwitch %28 %29 0 %30 %29 = OpLabel - OpBranch %30 - %28 = OpLabel OpStore %continue_execution %false None - OpBranch %30 + OpBranch %31 %30 = OpLabel + OpBranch %31 + %31 = OpLabel %32 = OpLoad %bool %continue_execution None OpSelectionMerge %33 None OpBranchConditional %32 %34 %33
diff --git a/test/tint/types/module_scope_used_in_functions.wgsl.expected.spvasm b/test/tint/types/module_scope_used_in_functions.wgsl.expected.spvasm index db5eb62..26cdc8b 100644 --- a/test/tint/types/module_scope_used_in_functions.wgsl.expected.spvasm +++ b/test/tint/types/module_scope_used_in_functions.wgsl.expected.spvasm
@@ -70,10 +70,10 @@ %53 = OpTypeFunction %void %float %59 = OpTypeFunction %void %uint %bool = OpTypeBool - %float_0 = OpConstant %float 0 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %float_1 = OpConstant %float 1 + %float_0 = OpConstant %float 0 %no_uses = OpFunction %void None %20 %21 = OpLabel OpReturn @@ -122,7 +122,7 @@ OpBranch %63 %63 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %69 = OpFunctionCall %void %foo %float_1 + %68 = OpFunctionCall %void %foo %float_1 OpReturn OpFunctionEnd %main = OpFunction %void None %20
diff --git a/test/tint/types/module_scope_var.wgsl.expected.spvasm b/test/tint/types/module_scope_var.wgsl.expected.spvasm index 9e0d0f6..30e57f4 100644 --- a/test/tint/types/module_scope_var.wgsl.expected.spvasm +++ b/test/tint/types/module_scope_var.wgsl.expected.spvasm
@@ -74,12 +74,12 @@ %void = OpTypeVoid %50 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 - %float_0 = OpConstant %float 0 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %false = OpConstantFalse %bool %int_0 = OpConstant %int 0 %uint_0 = OpConstant %uint 0 + %float_0 = OpConstant %float 0 %float_42 = OpConstant %float 42 %65 = OpTypeFunction %void %main_inner = OpFunction %void None %50
diff --git a/test/tint/types/module_scope_vars_pointers.wgsl.expected.spvasm b/test/tint/types/module_scope_vars_pointers.wgsl.expected.spvasm index d4e48f6..6570db6 100644 --- a/test/tint/types/module_scope_vars_pointers.wgsl.expected.spvasm +++ b/test/tint/types/module_scope_vars_pointers.wgsl.expected.spvasm
@@ -30,9 +30,9 @@ %13 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %float_0 = OpConstant %float 0 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 + %float_0 = OpConstant %float 0 %28 = OpTypeFunction %void %main_inner = OpFunction %void None %13 %tint_local_index = OpFunctionParameter %uint @@ -45,9 +45,9 @@ OpBranch %18 %18 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %24 = OpLoad %float %p None - %25 = OpLoad %float %w None - %x = OpFAdd %float %24 %25 + %23 = OpLoad %float %p None + %24 = OpLoad %float %w None + %x = OpFAdd %float %23 %24 OpStore %p %x None OpReturn OpFunctionEnd
diff --git a/test/tint/var/initialization/workgroup/array/array_i32.wgsl.expected.spvasm b/test/tint/var/initialization/workgroup/array/array_i32.wgsl.expected.spvasm index 7e8dc12..81ca458 100644 --- a/test/tint/var/initialization/workgroup/array/array_i32.wgsl.expected.spvasm +++ b/test/tint/var/initialization/workgroup/array/array_i32.wgsl.expected.spvasm
@@ -26,13 +26,13 @@ %main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %14 = OpTypeFunction %void %uint + %uint_264 = OpConstant %uint 264 +%_ptr_Function__arr__arr_int_uint_3_uint_2 = OpTypePointer Function %_arr__arr_int_uint_3_uint_2 %uint_6 = OpConstant %uint 6 %bool = OpTypeBool %_ptr_Workgroup_int = OpTypePointer Workgroup %int %int_0 = OpConstant %int 0 %uint_1 = OpConstant %uint 1 - %uint_264 = OpConstant %uint 264 -%_ptr_Function__arr__arr_int_uint_3_uint_2 = OpTypePointer Function %_arr__arr_int_uint_3_uint_2 %40 = OpTypeFunction %void %main_inner = OpFunction %void None %14 %tint_local_index = OpFunctionParameter %uint @@ -46,24 +46,24 @@ OpLoopMerge %20 %18 None OpBranch %17 %17 = OpLabel - %23 = OpUGreaterThanEqual %bool %21 %uint_6 - OpSelectionMerge %26 None - OpBranchConditional %23 %27 %26 - %27 = OpLabel + %28 = OpUGreaterThanEqual %bool %21 %uint_6 + OpSelectionMerge %31 None + OpBranchConditional %28 %32 %31 + %32 = OpLabel OpBranch %20 - %26 = OpLabel - %28 = OpUMod %uint %21 %uint_3 - %29 = OpUDiv %uint %21 %uint_3 - %30 = OpAccessChain %_ptr_Workgroup_int %zero %29 %28 - OpStore %30 %int_0 None + %31 = OpLabel + %33 = OpUMod %uint %21 %uint_3 + %34 = OpUDiv %uint %21 %uint_3 + %35 = OpAccessChain %_ptr_Workgroup_int %zero %34 %33 + OpStore %35 %int_0 None OpBranch %18 %18 = OpLabel %22 = OpIAdd %uint %21 %uint_1 OpBranch %19 %20 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %36 = OpLoad %_arr__arr_int_uint_3_uint_2 %zero None - OpStore %v %36 + %25 = OpLoad %_arr__arr_int_uint_3_uint_2 %zero None + OpStore %v %25 OpReturn OpFunctionEnd %main = OpFunction %void None %40
diff --git a/test/tint/var/initialization/workgroup/array/i32.wgsl.expected.spvasm b/test/tint/var/initialization/workgroup/array/i32.wgsl.expected.spvasm index b24c0fb..ffaf7c1 100644 --- a/test/tint/var/initialization/workgroup/array/i32.wgsl.expected.spvasm +++ b/test/tint/var/initialization/workgroup/array/i32.wgsl.expected.spvasm
@@ -24,13 +24,13 @@ %main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %12 = OpTypeFunction %void %uint + %uint_2 = OpConstant %uint 2 + %uint_264 = OpConstant %uint 264 +%_ptr_Function__arr_int_uint_3 = OpTypePointer Function %_arr_int_uint_3 %bool = OpTypeBool %_ptr_Workgroup_int = OpTypePointer Workgroup %int %int_0 = OpConstant %int 0 %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_264 = OpConstant %uint 264 -%_ptr_Function__arr_int_uint_3 = OpTypePointer Function %_arr_int_uint_3 %36 = OpTypeFunction %void %main_inner = OpFunction %void None %12 %tint_local_index = OpFunctionParameter %uint @@ -44,22 +44,22 @@ OpLoopMerge %18 %16 None OpBranch %15 %15 = OpLabel - %21 = OpUGreaterThanEqual %bool %19 %uint_3 - OpSelectionMerge %23 None - OpBranchConditional %21 %24 %23 - %24 = OpLabel + %27 = OpUGreaterThanEqual %bool %19 %uint_3 + OpSelectionMerge %29 None + OpBranchConditional %27 %30 %29 + %30 = OpLabel OpBranch %18 - %23 = OpLabel - %25 = OpAccessChain %_ptr_Workgroup_int %zero %19 - OpStore %25 %int_0 None + %29 = OpLabel + %31 = OpAccessChain %_ptr_Workgroup_int %zero %19 + OpStore %31 %int_0 None OpBranch %16 %16 = OpLabel %20 = OpIAdd %uint %19 %uint_1 OpBranch %17 %18 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %32 = OpLoad %_arr_int_uint_3 %zero None - OpStore %v %32 + %24 = OpLoad %_arr_int_uint_3 %zero None + OpStore %v %24 OpReturn OpFunctionEnd %main = OpFunction %void None %36
diff --git a/test/tint/var/initialization/workgroup/array/u32_large.wgsl.expected.spvasm b/test/tint/var/initialization/workgroup/array/u32_large.wgsl.expected.spvasm index 16a4148..580f7a7 100644 --- a/test/tint/var/initialization/workgroup/array/u32_large.wgsl.expected.spvasm +++ b/test/tint/var/initialization/workgroup/array/u32_large.wgsl.expected.spvasm
@@ -24,13 +24,13 @@ %main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input %void = OpTypeVoid %12 = OpTypeFunction %void %uint + %uint_2 = OpConstant %uint 2 + %uint_264 = OpConstant %uint 264 +%_ptr_Function__arr_int_uint_23 = OpTypePointer Function %_arr_int_uint_23 %bool = OpTypeBool %_ptr_Workgroup_int = OpTypePointer Workgroup %int %int_0 = OpConstant %int 0 %uint_13 = OpConstant %uint 13 - %uint_2 = OpConstant %uint 2 - %uint_264 = OpConstant %uint 264 -%_ptr_Function__arr_int_uint_23 = OpTypePointer Function %_arr_int_uint_23 %36 = OpTypeFunction %void %main_inner = OpFunction %void None %12 %tint_local_index = OpFunctionParameter %uint @@ -44,22 +44,22 @@ OpLoopMerge %18 %16 None OpBranch %15 %15 = OpLabel - %21 = OpUGreaterThanEqual %bool %19 %uint_23 - OpSelectionMerge %23 None - OpBranchConditional %21 %24 %23 - %24 = OpLabel + %27 = OpUGreaterThanEqual %bool %19 %uint_23 + OpSelectionMerge %29 None + OpBranchConditional %27 %30 %29 + %30 = OpLabel OpBranch %18 - %23 = OpLabel - %25 = OpAccessChain %_ptr_Workgroup_int %zero %19 - OpStore %25 %int_0 None + %29 = OpLabel + %31 = OpAccessChain %_ptr_Workgroup_int %zero %19 + OpStore %31 %int_0 None OpBranch %16 %16 = OpLabel %20 = OpIAdd %uint %19 %uint_13 OpBranch %17 %18 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %32 = OpLoad %_arr_int_uint_23 %zero None - OpStore %v %32 + %24 = OpLoad %_arr_int_uint_23 %zero None + OpStore %v %24 OpReturn OpFunctionEnd %main = OpFunction %void None %36
diff --git a/test/tint/var/initialization/workgroup/array/u32_small.wgsl.expected.spvasm b/test/tint/var/initialization/workgroup/array/u32_small.wgsl.expected.spvasm index b225461..d778fc2 100644 --- a/test/tint/var/initialization/workgroup/array/u32_small.wgsl.expected.spvasm +++ b/test/tint/var/initialization/workgroup/array/u32_small.wgsl.expected.spvasm
@@ -25,11 +25,11 @@ %void = OpTypeVoid %12 = OpTypeFunction %void %uint %bool = OpTypeBool -%_ptr_Workgroup_int = OpTypePointer Workgroup %int - %int_0 = OpConstant %int 0 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Function__arr_int_uint_3 = OpTypePointer Function %_arr_int_uint_3 +%_ptr_Workgroup_int = OpTypePointer Workgroup %int + %int_0 = OpConstant %int 0 %28 = OpTypeFunction %void %main_inner = OpFunction %void None %12 %tint_local_index = OpFunctionParameter %uint @@ -39,13 +39,13 @@ OpSelectionMerge %16 None OpBranchConditional %14 %17 %16 %17 = OpLabel - %18 = OpAccessChain %_ptr_Workgroup_int %zero %tint_local_index - OpStore %18 %int_0 None + %24 = OpAccessChain %_ptr_Workgroup_int %zero %tint_local_index + OpStore %24 %int_0 None OpBranch %16 %16 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %24 = OpLoad %_arr_int_uint_3 %zero None - OpStore %v %24 + %21 = OpLoad %_arr_int_uint_3 %zero None + OpStore %v %21 OpReturn OpFunctionEnd %main = OpFunction %void None %28
diff --git a/test/tint/var/initialization/workgroup/matrix.wgsl.expected.spvasm b/test/tint/var/initialization/workgroup/matrix.wgsl.expected.spvasm index c814618..9215a63 100644 --- a/test/tint/var/initialization/workgroup/matrix.wgsl.expected.spvasm +++ b/test/tint/var/initialization/workgroup/matrix.wgsl.expected.spvasm
@@ -25,9 +25,9 @@ %12 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %19 = OpConstantNull %mat2v3float %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 + %23 = OpConstantNull %mat2v3float %25 = OpTypeFunction %void %main_inner = OpFunction %void None %12 %tint_local_index = OpFunctionParameter %uint @@ -36,11 +36,11 @@ OpSelectionMerge %17 None OpBranchConditional %14 %18 %17 %18 = OpLabel - OpStore %v %19 None + OpStore %v %23 None OpBranch %17 %17 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %23 = OpLoad %mat2v3float %v None + %22 = OpLoad %mat2v3float %v None OpReturn OpFunctionEnd %main = OpFunction %void None %25
diff --git a/test/tint/var/initialization/workgroup/scalar.wgsl.expected.spvasm b/test/tint/var/initialization/workgroup/scalar.wgsl.expected.spvasm index 716c9d1..c0cad2d 100644 --- a/test/tint/var/initialization/workgroup/scalar.wgsl.expected.spvasm +++ b/test/tint/var/initialization/workgroup/scalar.wgsl.expected.spvasm
@@ -24,9 +24,9 @@ %10 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 + %int_0 = OpConstant %int 0 %23 = OpTypeFunction %void %main_inner = OpFunction %void None %10 %tint_local_index = OpFunctionParameter %uint
diff --git a/test/tint/var/initialization/workgroup/struct.wgsl.expected.spvasm b/test/tint/var/initialization/workgroup/struct.wgsl.expected.spvasm index c4a5c35..4d95b3e 100644 --- a/test/tint/var/initialization/workgroup/struct.wgsl.expected.spvasm +++ b/test/tint/var/initialization/workgroup/struct.wgsl.expected.spvasm
@@ -28,9 +28,9 @@ %12 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %19 = OpConstantNull %S %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 + %23 = OpConstantNull %S %25 = OpTypeFunction %void %main_inner = OpFunction %void None %12 %tint_local_index = OpFunctionParameter %uint @@ -39,11 +39,11 @@ OpSelectionMerge %17 None OpBranchConditional %14 %18 %17 %18 = OpLabel - OpStore %v %19 None + OpStore %v %23 None OpBranch %17 %17 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %23 = OpLoad %S %v None + %22 = OpLoad %S %v None OpReturn OpFunctionEnd %main = OpFunction %void None %25
diff --git a/test/tint/var/initialization/workgroup/vector.wgsl.expected.spvasm b/test/tint/var/initialization/workgroup/vector.wgsl.expected.spvasm index 2499d08..6e58df2 100644 --- a/test/tint/var/initialization/workgroup/vector.wgsl.expected.spvasm +++ b/test/tint/var/initialization/workgroup/vector.wgsl.expected.spvasm
@@ -24,9 +24,9 @@ %11 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %18 = OpConstantNull %v3int %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 + %22 = OpConstantNull %v3int %24 = OpTypeFunction %void %main_inner = OpFunction %void None %11 %tint_local_index = OpFunctionParameter %uint @@ -35,11 +35,11 @@ OpSelectionMerge %16 None OpBranchConditional %13 %17 %16 %17 = OpLabel - OpStore %v %18 None + OpStore %v %22 None OpBranch %16 %16 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %22 = OpLoad %v3int %v None + %21 = OpLoad %v3int %v None OpReturn OpFunctionEnd %main = OpFunction %void None %24
diff --git a/test/tint/var/uses/many_workgroup_vars.wgsl.expected.spvasm b/test/tint/var/uses/many_workgroup_vars.wgsl.expected.spvasm index 3276b4b..d15d701 100644 --- a/test/tint/var/uses/many_workgroup_vars.wgsl.expected.spvasm +++ b/test/tint/var/uses/many_workgroup_vars.wgsl.expected.spvasm
@@ -223,13 +223,13 @@ %111 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %118 = OpConstantNull %mat2v2float %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %_ptr_Workgroup_v2float = OpTypePointer Workgroup %v2float %uint_0 = OpConstant %uint 0 %_ptr_Workgroup_float = OpTypePointer Workgroup %float %float_1 = OpConstant %float 1 + %325 = OpConstantNull %mat2v2float %327 = OpTypeFunction %void %tint_symbol_inner = OpFunction %void None %111 %idx = OpFunctionParameter %uint @@ -238,409 +238,409 @@ OpSelectionMerge %116 None OpBranchConditional %113 %117 %116 %117 = OpLabel - OpStore %m00 %118 None - OpStore %m01 %118 None - OpStore %m02 %118 None - OpStore %m03 %118 None - OpStore %m04 %118 None - OpStore %m05 %118 None - OpStore %m06 %118 None - OpStore %m07 %118 None - OpStore %m08 %118 None - OpStore %m09 %118 None - OpStore %m10 %118 None - OpStore %m11 %118 None - OpStore %m12 %118 None - OpStore %m13 %118 None - OpStore %m14 %118 None - OpStore %m15 %118 None - OpStore %m16 %118 None - OpStore %m17 %118 None - OpStore %m18 %118 None - OpStore %m19 %118 None - OpStore %m20 %118 None - OpStore %m21 %118 None - OpStore %m22 %118 None - OpStore %m23 %118 None - OpStore %m24 %118 None - OpStore %m25 %118 None - OpStore %m26 %118 None - OpStore %m27 %118 None - OpStore %m28 %118 None - OpStore %m29 %118 None - OpStore %m30 %118 None - OpStore %m31 %118 None - OpStore %m32 %118 None - OpStore %m33 %118 None - OpStore %m34 %118 None - OpStore %m35 %118 None - OpStore %m36 %118 None - OpStore %m37 %118 None - OpStore %m38 %118 None - OpStore %m39 %118 None - OpStore %m40 %118 None - OpStore %m41 %118 None - OpStore %m42 %118 None - OpStore %m43 %118 None - OpStore %m44 %118 None - OpStore %m45 %118 None - OpStore %m46 %118 None - OpStore %m47 %118 None - OpStore %m48 %118 None - OpStore %m49 %118 None - OpStore %m50 %118 None - OpStore %m51 %118 None - OpStore %m52 %118 None - OpStore %m53 %118 None - OpStore %m54 %118 None - OpStore %m55 %118 None - OpStore %m56 %118 None - OpStore %m57 %118 None - OpStore %m58 %118 None - OpStore %m59 %118 None - OpStore %m60 %118 None - OpStore %m61 %118 None - OpStore %m62 %118 None - OpStore %m63 %118 None - OpStore %m64 %118 None - OpStore %m65 %118 None - OpStore %m66 %118 None - OpStore %m67 %118 None - OpStore %m68 %118 None - OpStore %m69 %118 None - OpStore %m70 %118 None - OpStore %m71 %118 None - OpStore %m72 %118 None - OpStore %m73 %118 None - OpStore %m74 %118 None - OpStore %m75 %118 None - OpStore %m76 %118 None - OpStore %m77 %118 None - OpStore %m78 %118 None - OpStore %m79 %118 None - OpStore %m80 %118 None - OpStore %m81 %118 None - OpStore %m82 %118 None - OpStore %m83 %118 None - OpStore %m84 %118 None - OpStore %m85 %118 None - OpStore %m86 %118 None - OpStore %m87 %118 None - OpStore %m88 %118 None - OpStore %m89 %118 None - OpStore %m90 %118 None - OpStore %m91 %118 None - OpStore %m92 %118 None - OpStore %m93 %118 None - OpStore %m94 %118 None - OpStore %m95 %118 None - OpStore %m96 %118 None - OpStore %m97 %118 None - OpStore %m98 %118 None - OpStore %m99 %118 None + OpStore %m00 %325 None + OpStore %m01 %325 None + OpStore %m02 %325 None + OpStore %m03 %325 None + OpStore %m04 %325 None + OpStore %m05 %325 None + OpStore %m06 %325 None + OpStore %m07 %325 None + OpStore %m08 %325 None + OpStore %m09 %325 None + OpStore %m10 %325 None + OpStore %m11 %325 None + OpStore %m12 %325 None + OpStore %m13 %325 None + OpStore %m14 %325 None + OpStore %m15 %325 None + OpStore %m16 %325 None + OpStore %m17 %325 None + OpStore %m18 %325 None + OpStore %m19 %325 None + OpStore %m20 %325 None + OpStore %m21 %325 None + OpStore %m22 %325 None + OpStore %m23 %325 None + OpStore %m24 %325 None + OpStore %m25 %325 None + OpStore %m26 %325 None + OpStore %m27 %325 None + OpStore %m28 %325 None + OpStore %m29 %325 None + OpStore %m30 %325 None + OpStore %m31 %325 None + OpStore %m32 %325 None + OpStore %m33 %325 None + OpStore %m34 %325 None + OpStore %m35 %325 None + OpStore %m36 %325 None + OpStore %m37 %325 None + OpStore %m38 %325 None + OpStore %m39 %325 None + OpStore %m40 %325 None + OpStore %m41 %325 None + OpStore %m42 %325 None + OpStore %m43 %325 None + OpStore %m44 %325 None + OpStore %m45 %325 None + OpStore %m46 %325 None + OpStore %m47 %325 None + OpStore %m48 %325 None + OpStore %m49 %325 None + OpStore %m50 %325 None + OpStore %m51 %325 None + OpStore %m52 %325 None + OpStore %m53 %325 None + OpStore %m54 %325 None + OpStore %m55 %325 None + OpStore %m56 %325 None + OpStore %m57 %325 None + OpStore %m58 %325 None + OpStore %m59 %325 None + OpStore %m60 %325 None + OpStore %m61 %325 None + OpStore %m62 %325 None + OpStore %m63 %325 None + OpStore %m64 %325 None + OpStore %m65 %325 None + OpStore %m66 %325 None + OpStore %m67 %325 None + OpStore %m68 %325 None + OpStore %m69 %325 None + OpStore %m70 %325 None + OpStore %m71 %325 None + OpStore %m72 %325 None + OpStore %m73 %325 None + OpStore %m74 %325 None + OpStore %m75 %325 None + OpStore %m76 %325 None + OpStore %m77 %325 None + OpStore %m78 %325 None + OpStore %m79 %325 None + OpStore %m80 %325 None + OpStore %m81 %325 None + OpStore %m82 %325 None + OpStore %m83 %325 None + OpStore %m84 %325 None + OpStore %m85 %325 None + OpStore %m86 %325 None + OpStore %m87 %325 None + OpStore %m88 %325 None + OpStore %m89 %325 None + OpStore %m90 %325 None + OpStore %m91 %325 None + OpStore %m92 %325 None + OpStore %m93 %325 None + OpStore %m94 %325 None + OpStore %m95 %325 None + OpStore %m96 %325 None + OpStore %m97 %325 None + OpStore %m98 %325 None + OpStore %m99 %325 None OpBranch %116 %116 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 - %122 = OpAccessChain %_ptr_Workgroup_v2float %m00 %uint_0 - %125 = OpAccessChain %_ptr_Workgroup_float %122 %uint_0 - OpStore %125 %float_1 None - %128 = OpAccessChain %_ptr_Workgroup_v2float %m01 %uint_0 - %129 = OpAccessChain %_ptr_Workgroup_float %128 %uint_0 - OpStore %129 %float_1 None - %130 = OpAccessChain %_ptr_Workgroup_v2float %m02 %uint_0 - %131 = OpAccessChain %_ptr_Workgroup_float %130 %uint_0 - OpStore %131 %float_1 None - %132 = OpAccessChain %_ptr_Workgroup_v2float %m03 %uint_0 - %133 = OpAccessChain %_ptr_Workgroup_float %132 %uint_0 - OpStore %133 %float_1 None - %134 = OpAccessChain %_ptr_Workgroup_v2float %m04 %uint_0 - %135 = OpAccessChain %_ptr_Workgroup_float %134 %uint_0 - OpStore %135 %float_1 None - %136 = OpAccessChain %_ptr_Workgroup_v2float %m05 %uint_0 - %137 = OpAccessChain %_ptr_Workgroup_float %136 %uint_0 - OpStore %137 %float_1 None - %138 = OpAccessChain %_ptr_Workgroup_v2float %m06 %uint_0 - %139 = OpAccessChain %_ptr_Workgroup_float %138 %uint_0 - OpStore %139 %float_1 None - %140 = OpAccessChain %_ptr_Workgroup_v2float %m07 %uint_0 - %141 = OpAccessChain %_ptr_Workgroup_float %140 %uint_0 - OpStore %141 %float_1 None - %142 = OpAccessChain %_ptr_Workgroup_v2float %m08 %uint_0 - %143 = OpAccessChain %_ptr_Workgroup_float %142 %uint_0 - OpStore %143 %float_1 None - %144 = OpAccessChain %_ptr_Workgroup_v2float %m09 %uint_0 - %145 = OpAccessChain %_ptr_Workgroup_float %144 %uint_0 - OpStore %145 %float_1 None - %146 = OpAccessChain %_ptr_Workgroup_v2float %m10 %uint_0 - %147 = OpAccessChain %_ptr_Workgroup_float %146 %uint_0 - OpStore %147 %float_1 None - %148 = OpAccessChain %_ptr_Workgroup_v2float %m11 %uint_0 - %149 = OpAccessChain %_ptr_Workgroup_float %148 %uint_0 - OpStore %149 %float_1 None - %150 = OpAccessChain %_ptr_Workgroup_v2float %m12 %uint_0 - %151 = OpAccessChain %_ptr_Workgroup_float %150 %uint_0 - OpStore %151 %float_1 None - %152 = OpAccessChain %_ptr_Workgroup_v2float %m13 %uint_0 - %153 = OpAccessChain %_ptr_Workgroup_float %152 %uint_0 - OpStore %153 %float_1 None - %154 = OpAccessChain %_ptr_Workgroup_v2float %m14 %uint_0 - %155 = OpAccessChain %_ptr_Workgroup_float %154 %uint_0 - OpStore %155 %float_1 None - %156 = OpAccessChain %_ptr_Workgroup_v2float %m15 %uint_0 - %157 = OpAccessChain %_ptr_Workgroup_float %156 %uint_0 - OpStore %157 %float_1 None - %158 = OpAccessChain %_ptr_Workgroup_v2float %m16 %uint_0 - %159 = OpAccessChain %_ptr_Workgroup_float %158 %uint_0 - OpStore %159 %float_1 None - %160 = OpAccessChain %_ptr_Workgroup_v2float %m17 %uint_0 - %161 = OpAccessChain %_ptr_Workgroup_float %160 %uint_0 - OpStore %161 %float_1 None - %162 = OpAccessChain %_ptr_Workgroup_v2float %m18 %uint_0 - %163 = OpAccessChain %_ptr_Workgroup_float %162 %uint_0 - OpStore %163 %float_1 None - %164 = OpAccessChain %_ptr_Workgroup_v2float %m19 %uint_0 - %165 = OpAccessChain %_ptr_Workgroup_float %164 %uint_0 - OpStore %165 %float_1 None - %166 = OpAccessChain %_ptr_Workgroup_v2float %m20 %uint_0 - %167 = OpAccessChain %_ptr_Workgroup_float %166 %uint_0 - OpStore %167 %float_1 None - %168 = OpAccessChain %_ptr_Workgroup_v2float %m21 %uint_0 - %169 = OpAccessChain %_ptr_Workgroup_float %168 %uint_0 - OpStore %169 %float_1 None - %170 = OpAccessChain %_ptr_Workgroup_v2float %m22 %uint_0 - %171 = OpAccessChain %_ptr_Workgroup_float %170 %uint_0 - OpStore %171 %float_1 None - %172 = OpAccessChain %_ptr_Workgroup_v2float %m23 %uint_0 - %173 = OpAccessChain %_ptr_Workgroup_float %172 %uint_0 - OpStore %173 %float_1 None - %174 = OpAccessChain %_ptr_Workgroup_v2float %m24 %uint_0 - %175 = OpAccessChain %_ptr_Workgroup_float %174 %uint_0 - OpStore %175 %float_1 None - %176 = OpAccessChain %_ptr_Workgroup_v2float %m25 %uint_0 - %177 = OpAccessChain %_ptr_Workgroup_float %176 %uint_0 - OpStore %177 %float_1 None - %178 = OpAccessChain %_ptr_Workgroup_v2float %m26 %uint_0 - %179 = OpAccessChain %_ptr_Workgroup_float %178 %uint_0 - OpStore %179 %float_1 None - %180 = OpAccessChain %_ptr_Workgroup_v2float %m27 %uint_0 - %181 = OpAccessChain %_ptr_Workgroup_float %180 %uint_0 - OpStore %181 %float_1 None - %182 = OpAccessChain %_ptr_Workgroup_v2float %m28 %uint_0 - %183 = OpAccessChain %_ptr_Workgroup_float %182 %uint_0 - OpStore %183 %float_1 None - %184 = OpAccessChain %_ptr_Workgroup_v2float %m29 %uint_0 - %185 = OpAccessChain %_ptr_Workgroup_float %184 %uint_0 - OpStore %185 %float_1 None - %186 = OpAccessChain %_ptr_Workgroup_v2float %m30 %uint_0 - %187 = OpAccessChain %_ptr_Workgroup_float %186 %uint_0 - OpStore %187 %float_1 None - %188 = OpAccessChain %_ptr_Workgroup_v2float %m31 %uint_0 - %189 = OpAccessChain %_ptr_Workgroup_float %188 %uint_0 - OpStore %189 %float_1 None - %190 = OpAccessChain %_ptr_Workgroup_v2float %m32 %uint_0 - %191 = OpAccessChain %_ptr_Workgroup_float %190 %uint_0 - OpStore %191 %float_1 None - %192 = OpAccessChain %_ptr_Workgroup_v2float %m33 %uint_0 - %193 = OpAccessChain %_ptr_Workgroup_float %192 %uint_0 - OpStore %193 %float_1 None - %194 = OpAccessChain %_ptr_Workgroup_v2float %m34 %uint_0 - %195 = OpAccessChain %_ptr_Workgroup_float %194 %uint_0 - OpStore %195 %float_1 None - %196 = OpAccessChain %_ptr_Workgroup_v2float %m35 %uint_0 - %197 = OpAccessChain %_ptr_Workgroup_float %196 %uint_0 - OpStore %197 %float_1 None - %198 = OpAccessChain %_ptr_Workgroup_v2float %m36 %uint_0 - %199 = OpAccessChain %_ptr_Workgroup_float %198 %uint_0 - OpStore %199 %float_1 None - %200 = OpAccessChain %_ptr_Workgroup_v2float %m37 %uint_0 - %201 = OpAccessChain %_ptr_Workgroup_float %200 %uint_0 - OpStore %201 %float_1 None - %202 = OpAccessChain %_ptr_Workgroup_v2float %m38 %uint_0 - %203 = OpAccessChain %_ptr_Workgroup_float %202 %uint_0 - OpStore %203 %float_1 None - %204 = OpAccessChain %_ptr_Workgroup_v2float %m39 %uint_0 - %205 = OpAccessChain %_ptr_Workgroup_float %204 %uint_0 - OpStore %205 %float_1 None - %206 = OpAccessChain %_ptr_Workgroup_v2float %m40 %uint_0 - %207 = OpAccessChain %_ptr_Workgroup_float %206 %uint_0 - OpStore %207 %float_1 None - %208 = OpAccessChain %_ptr_Workgroup_v2float %m41 %uint_0 - %209 = OpAccessChain %_ptr_Workgroup_float %208 %uint_0 - OpStore %209 %float_1 None - %210 = OpAccessChain %_ptr_Workgroup_v2float %m42 %uint_0 - %211 = OpAccessChain %_ptr_Workgroup_float %210 %uint_0 - OpStore %211 %float_1 None - %212 = OpAccessChain %_ptr_Workgroup_v2float %m43 %uint_0 - %213 = OpAccessChain %_ptr_Workgroup_float %212 %uint_0 - OpStore %213 %float_1 None - %214 = OpAccessChain %_ptr_Workgroup_v2float %m44 %uint_0 - %215 = OpAccessChain %_ptr_Workgroup_float %214 %uint_0 - OpStore %215 %float_1 None - %216 = OpAccessChain %_ptr_Workgroup_v2float %m45 %uint_0 - %217 = OpAccessChain %_ptr_Workgroup_float %216 %uint_0 - OpStore %217 %float_1 None - %218 = OpAccessChain %_ptr_Workgroup_v2float %m46 %uint_0 - %219 = OpAccessChain %_ptr_Workgroup_float %218 %uint_0 - OpStore %219 %float_1 None - %220 = OpAccessChain %_ptr_Workgroup_v2float %m47 %uint_0 - %221 = OpAccessChain %_ptr_Workgroup_float %220 %uint_0 - OpStore %221 %float_1 None - %222 = OpAccessChain %_ptr_Workgroup_v2float %m48 %uint_0 - %223 = OpAccessChain %_ptr_Workgroup_float %222 %uint_0 - OpStore %223 %float_1 None - %224 = OpAccessChain %_ptr_Workgroup_v2float %m49 %uint_0 - %225 = OpAccessChain %_ptr_Workgroup_float %224 %uint_0 - OpStore %225 %float_1 None - %226 = OpAccessChain %_ptr_Workgroup_v2float %m50 %uint_0 - %227 = OpAccessChain %_ptr_Workgroup_float %226 %uint_0 - OpStore %227 %float_1 None - %228 = OpAccessChain %_ptr_Workgroup_v2float %m51 %uint_0 - %229 = OpAccessChain %_ptr_Workgroup_float %228 %uint_0 - OpStore %229 %float_1 None - %230 = OpAccessChain %_ptr_Workgroup_v2float %m52 %uint_0 - %231 = OpAccessChain %_ptr_Workgroup_float %230 %uint_0 - OpStore %231 %float_1 None - %232 = OpAccessChain %_ptr_Workgroup_v2float %m53 %uint_0 - %233 = OpAccessChain %_ptr_Workgroup_float %232 %uint_0 - OpStore %233 %float_1 None - %234 = OpAccessChain %_ptr_Workgroup_v2float %m54 %uint_0 - %235 = OpAccessChain %_ptr_Workgroup_float %234 %uint_0 - OpStore %235 %float_1 None - %236 = OpAccessChain %_ptr_Workgroup_v2float %m55 %uint_0 - %237 = OpAccessChain %_ptr_Workgroup_float %236 %uint_0 - OpStore %237 %float_1 None - %238 = OpAccessChain %_ptr_Workgroup_v2float %m56 %uint_0 - %239 = OpAccessChain %_ptr_Workgroup_float %238 %uint_0 - OpStore %239 %float_1 None - %240 = OpAccessChain %_ptr_Workgroup_v2float %m57 %uint_0 - %241 = OpAccessChain %_ptr_Workgroup_float %240 %uint_0 - OpStore %241 %float_1 None - %242 = OpAccessChain %_ptr_Workgroup_v2float %m58 %uint_0 - %243 = OpAccessChain %_ptr_Workgroup_float %242 %uint_0 - OpStore %243 %float_1 None - %244 = OpAccessChain %_ptr_Workgroup_v2float %m59 %uint_0 - %245 = OpAccessChain %_ptr_Workgroup_float %244 %uint_0 - OpStore %245 %float_1 None - %246 = OpAccessChain %_ptr_Workgroup_v2float %m60 %uint_0 - %247 = OpAccessChain %_ptr_Workgroup_float %246 %uint_0 - OpStore %247 %float_1 None - %248 = OpAccessChain %_ptr_Workgroup_v2float %m61 %uint_0 - %249 = OpAccessChain %_ptr_Workgroup_float %248 %uint_0 - OpStore %249 %float_1 None - %250 = OpAccessChain %_ptr_Workgroup_v2float %m62 %uint_0 - %251 = OpAccessChain %_ptr_Workgroup_float %250 %uint_0 - OpStore %251 %float_1 None - %252 = OpAccessChain %_ptr_Workgroup_v2float %m63 %uint_0 - %253 = OpAccessChain %_ptr_Workgroup_float %252 %uint_0 - OpStore %253 %float_1 None - %254 = OpAccessChain %_ptr_Workgroup_v2float %m64 %uint_0 - %255 = OpAccessChain %_ptr_Workgroup_float %254 %uint_0 - OpStore %255 %float_1 None - %256 = OpAccessChain %_ptr_Workgroup_v2float %m65 %uint_0 - %257 = OpAccessChain %_ptr_Workgroup_float %256 %uint_0 - OpStore %257 %float_1 None - %258 = OpAccessChain %_ptr_Workgroup_v2float %m66 %uint_0 - %259 = OpAccessChain %_ptr_Workgroup_float %258 %uint_0 - OpStore %259 %float_1 None - %260 = OpAccessChain %_ptr_Workgroup_v2float %m67 %uint_0 - %261 = OpAccessChain %_ptr_Workgroup_float %260 %uint_0 - OpStore %261 %float_1 None - %262 = OpAccessChain %_ptr_Workgroup_v2float %m68 %uint_0 - %263 = OpAccessChain %_ptr_Workgroup_float %262 %uint_0 - OpStore %263 %float_1 None - %264 = OpAccessChain %_ptr_Workgroup_v2float %m69 %uint_0 - %265 = OpAccessChain %_ptr_Workgroup_float %264 %uint_0 - OpStore %265 %float_1 None - %266 = OpAccessChain %_ptr_Workgroup_v2float %m70 %uint_0 - %267 = OpAccessChain %_ptr_Workgroup_float %266 %uint_0 - OpStore %267 %float_1 None - %268 = OpAccessChain %_ptr_Workgroup_v2float %m71 %uint_0 - %269 = OpAccessChain %_ptr_Workgroup_float %268 %uint_0 - OpStore %269 %float_1 None - %270 = OpAccessChain %_ptr_Workgroup_v2float %m72 %uint_0 - %271 = OpAccessChain %_ptr_Workgroup_float %270 %uint_0 - OpStore %271 %float_1 None - %272 = OpAccessChain %_ptr_Workgroup_v2float %m73 %uint_0 - %273 = OpAccessChain %_ptr_Workgroup_float %272 %uint_0 - OpStore %273 %float_1 None - %274 = OpAccessChain %_ptr_Workgroup_v2float %m74 %uint_0 - %275 = OpAccessChain %_ptr_Workgroup_float %274 %uint_0 - OpStore %275 %float_1 None - %276 = OpAccessChain %_ptr_Workgroup_v2float %m75 %uint_0 - %277 = OpAccessChain %_ptr_Workgroup_float %276 %uint_0 - OpStore %277 %float_1 None - %278 = OpAccessChain %_ptr_Workgroup_v2float %m76 %uint_0 - %279 = OpAccessChain %_ptr_Workgroup_float %278 %uint_0 - OpStore %279 %float_1 None - %280 = OpAccessChain %_ptr_Workgroup_v2float %m77 %uint_0 - %281 = OpAccessChain %_ptr_Workgroup_float %280 %uint_0 - OpStore %281 %float_1 None - %282 = OpAccessChain %_ptr_Workgroup_v2float %m78 %uint_0 - %283 = OpAccessChain %_ptr_Workgroup_float %282 %uint_0 - OpStore %283 %float_1 None - %284 = OpAccessChain %_ptr_Workgroup_v2float %m79 %uint_0 - %285 = OpAccessChain %_ptr_Workgroup_float %284 %uint_0 - OpStore %285 %float_1 None - %286 = OpAccessChain %_ptr_Workgroup_v2float %m80 %uint_0 - %287 = OpAccessChain %_ptr_Workgroup_float %286 %uint_0 - OpStore %287 %float_1 None - %288 = OpAccessChain %_ptr_Workgroup_v2float %m81 %uint_0 - %289 = OpAccessChain %_ptr_Workgroup_float %288 %uint_0 - OpStore %289 %float_1 None - %290 = OpAccessChain %_ptr_Workgroup_v2float %m82 %uint_0 - %291 = OpAccessChain %_ptr_Workgroup_float %290 %uint_0 - OpStore %291 %float_1 None - %292 = OpAccessChain %_ptr_Workgroup_v2float %m83 %uint_0 - %293 = OpAccessChain %_ptr_Workgroup_float %292 %uint_0 - OpStore %293 %float_1 None - %294 = OpAccessChain %_ptr_Workgroup_v2float %m84 %uint_0 - %295 = OpAccessChain %_ptr_Workgroup_float %294 %uint_0 - OpStore %295 %float_1 None - %296 = OpAccessChain %_ptr_Workgroup_v2float %m85 %uint_0 - %297 = OpAccessChain %_ptr_Workgroup_float %296 %uint_0 - OpStore %297 %float_1 None - %298 = OpAccessChain %_ptr_Workgroup_v2float %m86 %uint_0 - %299 = OpAccessChain %_ptr_Workgroup_float %298 %uint_0 - OpStore %299 %float_1 None - %300 = OpAccessChain %_ptr_Workgroup_v2float %m87 %uint_0 - %301 = OpAccessChain %_ptr_Workgroup_float %300 %uint_0 - OpStore %301 %float_1 None - %302 = OpAccessChain %_ptr_Workgroup_v2float %m88 %uint_0 - %303 = OpAccessChain %_ptr_Workgroup_float %302 %uint_0 - OpStore %303 %float_1 None - %304 = OpAccessChain %_ptr_Workgroup_v2float %m89 %uint_0 - %305 = OpAccessChain %_ptr_Workgroup_float %304 %uint_0 - OpStore %305 %float_1 None - %306 = OpAccessChain %_ptr_Workgroup_v2float %m90 %uint_0 - %307 = OpAccessChain %_ptr_Workgroup_float %306 %uint_0 - OpStore %307 %float_1 None - %308 = OpAccessChain %_ptr_Workgroup_v2float %m91 %uint_0 - %309 = OpAccessChain %_ptr_Workgroup_float %308 %uint_0 - OpStore %309 %float_1 None - %310 = OpAccessChain %_ptr_Workgroup_v2float %m92 %uint_0 - %311 = OpAccessChain %_ptr_Workgroup_float %310 %uint_0 - OpStore %311 %float_1 None - %312 = OpAccessChain %_ptr_Workgroup_v2float %m93 %uint_0 - %313 = OpAccessChain %_ptr_Workgroup_float %312 %uint_0 - OpStore %313 %float_1 None - %314 = OpAccessChain %_ptr_Workgroup_v2float %m94 %uint_0 - %315 = OpAccessChain %_ptr_Workgroup_float %314 %uint_0 - OpStore %315 %float_1 None - %316 = OpAccessChain %_ptr_Workgroup_v2float %m95 %uint_0 - %317 = OpAccessChain %_ptr_Workgroup_float %316 %uint_0 - OpStore %317 %float_1 None - %318 = OpAccessChain %_ptr_Workgroup_v2float %m96 %uint_0 - %319 = OpAccessChain %_ptr_Workgroup_float %318 %uint_0 - OpStore %319 %float_1 None - %320 = OpAccessChain %_ptr_Workgroup_v2float %m97 %uint_0 - %321 = OpAccessChain %_ptr_Workgroup_float %320 %uint_0 - OpStore %321 %float_1 None - %322 = OpAccessChain %_ptr_Workgroup_v2float %m98 %uint_0 - %323 = OpAccessChain %_ptr_Workgroup_float %322 %uint_0 - OpStore %323 %float_1 None - %324 = OpAccessChain %_ptr_Workgroup_v2float %m99 %uint_0 - %325 = OpAccessChain %_ptr_Workgroup_float %324 %uint_0 - OpStore %325 %float_1 None + %121 = OpAccessChain %_ptr_Workgroup_v2float %m00 %uint_0 + %124 = OpAccessChain %_ptr_Workgroup_float %121 %uint_0 + OpStore %124 %float_1 None + %127 = OpAccessChain %_ptr_Workgroup_v2float %m01 %uint_0 + %128 = OpAccessChain %_ptr_Workgroup_float %127 %uint_0 + OpStore %128 %float_1 None + %129 = OpAccessChain %_ptr_Workgroup_v2float %m02 %uint_0 + %130 = OpAccessChain %_ptr_Workgroup_float %129 %uint_0 + OpStore %130 %float_1 None + %131 = OpAccessChain %_ptr_Workgroup_v2float %m03 %uint_0 + %132 = OpAccessChain %_ptr_Workgroup_float %131 %uint_0 + OpStore %132 %float_1 None + %133 = OpAccessChain %_ptr_Workgroup_v2float %m04 %uint_0 + %134 = OpAccessChain %_ptr_Workgroup_float %133 %uint_0 + OpStore %134 %float_1 None + %135 = OpAccessChain %_ptr_Workgroup_v2float %m05 %uint_0 + %136 = OpAccessChain %_ptr_Workgroup_float %135 %uint_0 + OpStore %136 %float_1 None + %137 = OpAccessChain %_ptr_Workgroup_v2float %m06 %uint_0 + %138 = OpAccessChain %_ptr_Workgroup_float %137 %uint_0 + OpStore %138 %float_1 None + %139 = OpAccessChain %_ptr_Workgroup_v2float %m07 %uint_0 + %140 = OpAccessChain %_ptr_Workgroup_float %139 %uint_0 + OpStore %140 %float_1 None + %141 = OpAccessChain %_ptr_Workgroup_v2float %m08 %uint_0 + %142 = OpAccessChain %_ptr_Workgroup_float %141 %uint_0 + OpStore %142 %float_1 None + %143 = OpAccessChain %_ptr_Workgroup_v2float %m09 %uint_0 + %144 = OpAccessChain %_ptr_Workgroup_float %143 %uint_0 + OpStore %144 %float_1 None + %145 = OpAccessChain %_ptr_Workgroup_v2float %m10 %uint_0 + %146 = OpAccessChain %_ptr_Workgroup_float %145 %uint_0 + OpStore %146 %float_1 None + %147 = OpAccessChain %_ptr_Workgroup_v2float %m11 %uint_0 + %148 = OpAccessChain %_ptr_Workgroup_float %147 %uint_0 + OpStore %148 %float_1 None + %149 = OpAccessChain %_ptr_Workgroup_v2float %m12 %uint_0 + %150 = OpAccessChain %_ptr_Workgroup_float %149 %uint_0 + OpStore %150 %float_1 None + %151 = OpAccessChain %_ptr_Workgroup_v2float %m13 %uint_0 + %152 = OpAccessChain %_ptr_Workgroup_float %151 %uint_0 + OpStore %152 %float_1 None + %153 = OpAccessChain %_ptr_Workgroup_v2float %m14 %uint_0 + %154 = OpAccessChain %_ptr_Workgroup_float %153 %uint_0 + OpStore %154 %float_1 None + %155 = OpAccessChain %_ptr_Workgroup_v2float %m15 %uint_0 + %156 = OpAccessChain %_ptr_Workgroup_float %155 %uint_0 + OpStore %156 %float_1 None + %157 = OpAccessChain %_ptr_Workgroup_v2float %m16 %uint_0 + %158 = OpAccessChain %_ptr_Workgroup_float %157 %uint_0 + OpStore %158 %float_1 None + %159 = OpAccessChain %_ptr_Workgroup_v2float %m17 %uint_0 + %160 = OpAccessChain %_ptr_Workgroup_float %159 %uint_0 + OpStore %160 %float_1 None + %161 = OpAccessChain %_ptr_Workgroup_v2float %m18 %uint_0 + %162 = OpAccessChain %_ptr_Workgroup_float %161 %uint_0 + OpStore %162 %float_1 None + %163 = OpAccessChain %_ptr_Workgroup_v2float %m19 %uint_0 + %164 = OpAccessChain %_ptr_Workgroup_float %163 %uint_0 + OpStore %164 %float_1 None + %165 = OpAccessChain %_ptr_Workgroup_v2float %m20 %uint_0 + %166 = OpAccessChain %_ptr_Workgroup_float %165 %uint_0 + OpStore %166 %float_1 None + %167 = OpAccessChain %_ptr_Workgroup_v2float %m21 %uint_0 + %168 = OpAccessChain %_ptr_Workgroup_float %167 %uint_0 + OpStore %168 %float_1 None + %169 = OpAccessChain %_ptr_Workgroup_v2float %m22 %uint_0 + %170 = OpAccessChain %_ptr_Workgroup_float %169 %uint_0 + OpStore %170 %float_1 None + %171 = OpAccessChain %_ptr_Workgroup_v2float %m23 %uint_0 + %172 = OpAccessChain %_ptr_Workgroup_float %171 %uint_0 + OpStore %172 %float_1 None + %173 = OpAccessChain %_ptr_Workgroup_v2float %m24 %uint_0 + %174 = OpAccessChain %_ptr_Workgroup_float %173 %uint_0 + OpStore %174 %float_1 None + %175 = OpAccessChain %_ptr_Workgroup_v2float %m25 %uint_0 + %176 = OpAccessChain %_ptr_Workgroup_float %175 %uint_0 + OpStore %176 %float_1 None + %177 = OpAccessChain %_ptr_Workgroup_v2float %m26 %uint_0 + %178 = OpAccessChain %_ptr_Workgroup_float %177 %uint_0 + OpStore %178 %float_1 None + %179 = OpAccessChain %_ptr_Workgroup_v2float %m27 %uint_0 + %180 = OpAccessChain %_ptr_Workgroup_float %179 %uint_0 + OpStore %180 %float_1 None + %181 = OpAccessChain %_ptr_Workgroup_v2float %m28 %uint_0 + %182 = OpAccessChain %_ptr_Workgroup_float %181 %uint_0 + OpStore %182 %float_1 None + %183 = OpAccessChain %_ptr_Workgroup_v2float %m29 %uint_0 + %184 = OpAccessChain %_ptr_Workgroup_float %183 %uint_0 + OpStore %184 %float_1 None + %185 = OpAccessChain %_ptr_Workgroup_v2float %m30 %uint_0 + %186 = OpAccessChain %_ptr_Workgroup_float %185 %uint_0 + OpStore %186 %float_1 None + %187 = OpAccessChain %_ptr_Workgroup_v2float %m31 %uint_0 + %188 = OpAccessChain %_ptr_Workgroup_float %187 %uint_0 + OpStore %188 %float_1 None + %189 = OpAccessChain %_ptr_Workgroup_v2float %m32 %uint_0 + %190 = OpAccessChain %_ptr_Workgroup_float %189 %uint_0 + OpStore %190 %float_1 None + %191 = OpAccessChain %_ptr_Workgroup_v2float %m33 %uint_0 + %192 = OpAccessChain %_ptr_Workgroup_float %191 %uint_0 + OpStore %192 %float_1 None + %193 = OpAccessChain %_ptr_Workgroup_v2float %m34 %uint_0 + %194 = OpAccessChain %_ptr_Workgroup_float %193 %uint_0 + OpStore %194 %float_1 None + %195 = OpAccessChain %_ptr_Workgroup_v2float %m35 %uint_0 + %196 = OpAccessChain %_ptr_Workgroup_float %195 %uint_0 + OpStore %196 %float_1 None + %197 = OpAccessChain %_ptr_Workgroup_v2float %m36 %uint_0 + %198 = OpAccessChain %_ptr_Workgroup_float %197 %uint_0 + OpStore %198 %float_1 None + %199 = OpAccessChain %_ptr_Workgroup_v2float %m37 %uint_0 + %200 = OpAccessChain %_ptr_Workgroup_float %199 %uint_0 + OpStore %200 %float_1 None + %201 = OpAccessChain %_ptr_Workgroup_v2float %m38 %uint_0 + %202 = OpAccessChain %_ptr_Workgroup_float %201 %uint_0 + OpStore %202 %float_1 None + %203 = OpAccessChain %_ptr_Workgroup_v2float %m39 %uint_0 + %204 = OpAccessChain %_ptr_Workgroup_float %203 %uint_0 + OpStore %204 %float_1 None + %205 = OpAccessChain %_ptr_Workgroup_v2float %m40 %uint_0 + %206 = OpAccessChain %_ptr_Workgroup_float %205 %uint_0 + OpStore %206 %float_1 None + %207 = OpAccessChain %_ptr_Workgroup_v2float %m41 %uint_0 + %208 = OpAccessChain %_ptr_Workgroup_float %207 %uint_0 + OpStore %208 %float_1 None + %209 = OpAccessChain %_ptr_Workgroup_v2float %m42 %uint_0 + %210 = OpAccessChain %_ptr_Workgroup_float %209 %uint_0 + OpStore %210 %float_1 None + %211 = OpAccessChain %_ptr_Workgroup_v2float %m43 %uint_0 + %212 = OpAccessChain %_ptr_Workgroup_float %211 %uint_0 + OpStore %212 %float_1 None + %213 = OpAccessChain %_ptr_Workgroup_v2float %m44 %uint_0 + %214 = OpAccessChain %_ptr_Workgroup_float %213 %uint_0 + OpStore %214 %float_1 None + %215 = OpAccessChain %_ptr_Workgroup_v2float %m45 %uint_0 + %216 = OpAccessChain %_ptr_Workgroup_float %215 %uint_0 + OpStore %216 %float_1 None + %217 = OpAccessChain %_ptr_Workgroup_v2float %m46 %uint_0 + %218 = OpAccessChain %_ptr_Workgroup_float %217 %uint_0 + OpStore %218 %float_1 None + %219 = OpAccessChain %_ptr_Workgroup_v2float %m47 %uint_0 + %220 = OpAccessChain %_ptr_Workgroup_float %219 %uint_0 + OpStore %220 %float_1 None + %221 = OpAccessChain %_ptr_Workgroup_v2float %m48 %uint_0 + %222 = OpAccessChain %_ptr_Workgroup_float %221 %uint_0 + OpStore %222 %float_1 None + %223 = OpAccessChain %_ptr_Workgroup_v2float %m49 %uint_0 + %224 = OpAccessChain %_ptr_Workgroup_float %223 %uint_0 + OpStore %224 %float_1 None + %225 = OpAccessChain %_ptr_Workgroup_v2float %m50 %uint_0 + %226 = OpAccessChain %_ptr_Workgroup_float %225 %uint_0 + OpStore %226 %float_1 None + %227 = OpAccessChain %_ptr_Workgroup_v2float %m51 %uint_0 + %228 = OpAccessChain %_ptr_Workgroup_float %227 %uint_0 + OpStore %228 %float_1 None + %229 = OpAccessChain %_ptr_Workgroup_v2float %m52 %uint_0 + %230 = OpAccessChain %_ptr_Workgroup_float %229 %uint_0 + OpStore %230 %float_1 None + %231 = OpAccessChain %_ptr_Workgroup_v2float %m53 %uint_0 + %232 = OpAccessChain %_ptr_Workgroup_float %231 %uint_0 + OpStore %232 %float_1 None + %233 = OpAccessChain %_ptr_Workgroup_v2float %m54 %uint_0 + %234 = OpAccessChain %_ptr_Workgroup_float %233 %uint_0 + OpStore %234 %float_1 None + %235 = OpAccessChain %_ptr_Workgroup_v2float %m55 %uint_0 + %236 = OpAccessChain %_ptr_Workgroup_float %235 %uint_0 + OpStore %236 %float_1 None + %237 = OpAccessChain %_ptr_Workgroup_v2float %m56 %uint_0 + %238 = OpAccessChain %_ptr_Workgroup_float %237 %uint_0 + OpStore %238 %float_1 None + %239 = OpAccessChain %_ptr_Workgroup_v2float %m57 %uint_0 + %240 = OpAccessChain %_ptr_Workgroup_float %239 %uint_0 + OpStore %240 %float_1 None + %241 = OpAccessChain %_ptr_Workgroup_v2float %m58 %uint_0 + %242 = OpAccessChain %_ptr_Workgroup_float %241 %uint_0 + OpStore %242 %float_1 None + %243 = OpAccessChain %_ptr_Workgroup_v2float %m59 %uint_0 + %244 = OpAccessChain %_ptr_Workgroup_float %243 %uint_0 + OpStore %244 %float_1 None + %245 = OpAccessChain %_ptr_Workgroup_v2float %m60 %uint_0 + %246 = OpAccessChain %_ptr_Workgroup_float %245 %uint_0 + OpStore %246 %float_1 None + %247 = OpAccessChain %_ptr_Workgroup_v2float %m61 %uint_0 + %248 = OpAccessChain %_ptr_Workgroup_float %247 %uint_0 + OpStore %248 %float_1 None + %249 = OpAccessChain %_ptr_Workgroup_v2float %m62 %uint_0 + %250 = OpAccessChain %_ptr_Workgroup_float %249 %uint_0 + OpStore %250 %float_1 None + %251 = OpAccessChain %_ptr_Workgroup_v2float %m63 %uint_0 + %252 = OpAccessChain %_ptr_Workgroup_float %251 %uint_0 + OpStore %252 %float_1 None + %253 = OpAccessChain %_ptr_Workgroup_v2float %m64 %uint_0 + %254 = OpAccessChain %_ptr_Workgroup_float %253 %uint_0 + OpStore %254 %float_1 None + %255 = OpAccessChain %_ptr_Workgroup_v2float %m65 %uint_0 + %256 = OpAccessChain %_ptr_Workgroup_float %255 %uint_0 + OpStore %256 %float_1 None + %257 = OpAccessChain %_ptr_Workgroup_v2float %m66 %uint_0 + %258 = OpAccessChain %_ptr_Workgroup_float %257 %uint_0 + OpStore %258 %float_1 None + %259 = OpAccessChain %_ptr_Workgroup_v2float %m67 %uint_0 + %260 = OpAccessChain %_ptr_Workgroup_float %259 %uint_0 + OpStore %260 %float_1 None + %261 = OpAccessChain %_ptr_Workgroup_v2float %m68 %uint_0 + %262 = OpAccessChain %_ptr_Workgroup_float %261 %uint_0 + OpStore %262 %float_1 None + %263 = OpAccessChain %_ptr_Workgroup_v2float %m69 %uint_0 + %264 = OpAccessChain %_ptr_Workgroup_float %263 %uint_0 + OpStore %264 %float_1 None + %265 = OpAccessChain %_ptr_Workgroup_v2float %m70 %uint_0 + %266 = OpAccessChain %_ptr_Workgroup_float %265 %uint_0 + OpStore %266 %float_1 None + %267 = OpAccessChain %_ptr_Workgroup_v2float %m71 %uint_0 + %268 = OpAccessChain %_ptr_Workgroup_float %267 %uint_0 + OpStore %268 %float_1 None + %269 = OpAccessChain %_ptr_Workgroup_v2float %m72 %uint_0 + %270 = OpAccessChain %_ptr_Workgroup_float %269 %uint_0 + OpStore %270 %float_1 None + %271 = OpAccessChain %_ptr_Workgroup_v2float %m73 %uint_0 + %272 = OpAccessChain %_ptr_Workgroup_float %271 %uint_0 + OpStore %272 %float_1 None + %273 = OpAccessChain %_ptr_Workgroup_v2float %m74 %uint_0 + %274 = OpAccessChain %_ptr_Workgroup_float %273 %uint_0 + OpStore %274 %float_1 None + %275 = OpAccessChain %_ptr_Workgroup_v2float %m75 %uint_0 + %276 = OpAccessChain %_ptr_Workgroup_float %275 %uint_0 + OpStore %276 %float_1 None + %277 = OpAccessChain %_ptr_Workgroup_v2float %m76 %uint_0 + %278 = OpAccessChain %_ptr_Workgroup_float %277 %uint_0 + OpStore %278 %float_1 None + %279 = OpAccessChain %_ptr_Workgroup_v2float %m77 %uint_0 + %280 = OpAccessChain %_ptr_Workgroup_float %279 %uint_0 + OpStore %280 %float_1 None + %281 = OpAccessChain %_ptr_Workgroup_v2float %m78 %uint_0 + %282 = OpAccessChain %_ptr_Workgroup_float %281 %uint_0 + OpStore %282 %float_1 None + %283 = OpAccessChain %_ptr_Workgroup_v2float %m79 %uint_0 + %284 = OpAccessChain %_ptr_Workgroup_float %283 %uint_0 + OpStore %284 %float_1 None + %285 = OpAccessChain %_ptr_Workgroup_v2float %m80 %uint_0 + %286 = OpAccessChain %_ptr_Workgroup_float %285 %uint_0 + OpStore %286 %float_1 None + %287 = OpAccessChain %_ptr_Workgroup_v2float %m81 %uint_0 + %288 = OpAccessChain %_ptr_Workgroup_float %287 %uint_0 + OpStore %288 %float_1 None + %289 = OpAccessChain %_ptr_Workgroup_v2float %m82 %uint_0 + %290 = OpAccessChain %_ptr_Workgroup_float %289 %uint_0 + OpStore %290 %float_1 None + %291 = OpAccessChain %_ptr_Workgroup_v2float %m83 %uint_0 + %292 = OpAccessChain %_ptr_Workgroup_float %291 %uint_0 + OpStore %292 %float_1 None + %293 = OpAccessChain %_ptr_Workgroup_v2float %m84 %uint_0 + %294 = OpAccessChain %_ptr_Workgroup_float %293 %uint_0 + OpStore %294 %float_1 None + %295 = OpAccessChain %_ptr_Workgroup_v2float %m85 %uint_0 + %296 = OpAccessChain %_ptr_Workgroup_float %295 %uint_0 + OpStore %296 %float_1 None + %297 = OpAccessChain %_ptr_Workgroup_v2float %m86 %uint_0 + %298 = OpAccessChain %_ptr_Workgroup_float %297 %uint_0 + OpStore %298 %float_1 None + %299 = OpAccessChain %_ptr_Workgroup_v2float %m87 %uint_0 + %300 = OpAccessChain %_ptr_Workgroup_float %299 %uint_0 + OpStore %300 %float_1 None + %301 = OpAccessChain %_ptr_Workgroup_v2float %m88 %uint_0 + %302 = OpAccessChain %_ptr_Workgroup_float %301 %uint_0 + OpStore %302 %float_1 None + %303 = OpAccessChain %_ptr_Workgroup_v2float %m89 %uint_0 + %304 = OpAccessChain %_ptr_Workgroup_float %303 %uint_0 + OpStore %304 %float_1 None + %305 = OpAccessChain %_ptr_Workgroup_v2float %m90 %uint_0 + %306 = OpAccessChain %_ptr_Workgroup_float %305 %uint_0 + OpStore %306 %float_1 None + %307 = OpAccessChain %_ptr_Workgroup_v2float %m91 %uint_0 + %308 = OpAccessChain %_ptr_Workgroup_float %307 %uint_0 + OpStore %308 %float_1 None + %309 = OpAccessChain %_ptr_Workgroup_v2float %m92 %uint_0 + %310 = OpAccessChain %_ptr_Workgroup_float %309 %uint_0 + OpStore %310 %float_1 None + %311 = OpAccessChain %_ptr_Workgroup_v2float %m93 %uint_0 + %312 = OpAccessChain %_ptr_Workgroup_float %311 %uint_0 + OpStore %312 %float_1 None + %313 = OpAccessChain %_ptr_Workgroup_v2float %m94 %uint_0 + %314 = OpAccessChain %_ptr_Workgroup_float %313 %uint_0 + OpStore %314 %float_1 None + %315 = OpAccessChain %_ptr_Workgroup_v2float %m95 %uint_0 + %316 = OpAccessChain %_ptr_Workgroup_float %315 %uint_0 + OpStore %316 %float_1 None + %317 = OpAccessChain %_ptr_Workgroup_v2float %m96 %uint_0 + %318 = OpAccessChain %_ptr_Workgroup_float %317 %uint_0 + OpStore %318 %float_1 None + %319 = OpAccessChain %_ptr_Workgroup_v2float %m97 %uint_0 + %320 = OpAccessChain %_ptr_Workgroup_float %319 %uint_0 + OpStore %320 %float_1 None + %321 = OpAccessChain %_ptr_Workgroup_v2float %m98 %uint_0 + %322 = OpAccessChain %_ptr_Workgroup_float %321 %uint_0 + OpStore %322 %float_1 None + %323 = OpAccessChain %_ptr_Workgroup_v2float %m99 %uint_0 + %324 = OpAccessChain %_ptr_Workgroup_float %323 %uint_0 + OpStore %324 %float_1 None OpReturn OpFunctionEnd %tint_symbol = OpFunction %void None %327
diff --git a/test/tint/var/uses/workgroup.wgsl.expected.spvasm b/test/tint/var/uses/workgroup.wgsl.expected.spvasm index c12c7a2..6d86d8b 100644 --- a/test/tint/var/uses/workgroup.wgsl.expected.spvasm +++ b/test/tint/var/uses/workgroup.wgsl.expected.spvasm
@@ -29,10 +29,10 @@ %16 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %int_42 = OpConstant %int 42 + %int_0 = OpConstant %int 0 %uses_a = OpFunction %void None %9 %10 = OpLabel %11 = OpLoad %int %a None @@ -52,7 +52,7 @@ %21 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 OpStore %a %int_42 None - %28 = OpFunctionCall %void %uses_a + %27 = OpFunctionCall %void %uses_a OpReturn OpFunctionEnd %main1 = OpFunction %void None %9 @@ -92,10 +92,10 @@ %16 = OpTypeFunction %void %uint %uint_1 = OpConstant %uint 1 %bool = OpTypeBool - %int_0 = OpConstant %int 0 %uint_2 = OpConstant %uint 2 %uint_264 = OpConstant %uint 264 %int_7 = OpConstant %int 7 + %int_0 = OpConstant %int 0 %uses_b = OpFunction %void None %9 %10 = OpLabel %11 = OpLoad %int %b None @@ -115,7 +115,7 @@ %21 = OpLabel OpControlBarrier %uint_2 %uint_2 %uint_264 OpStore %b %int_7 None - %28 = OpFunctionCall %void %uses_b + %27 = OpFunctionCall %void %uses_b OpReturn OpFunctionEnd %main2 = OpFunction %void None %9