Add OpSelectionMerge
This commit is contained in:
parent
136dcf88a7
commit
48ddaf4913
2 changed files with 10 additions and 0 deletions
|
@ -158,6 +158,9 @@ public:
|
||||||
Ref LoopMerge(Ref merge_block, Ref continue_target, spv::LoopControlMask loop_control,
|
Ref LoopMerge(Ref merge_block, Ref continue_target, spv::LoopControlMask loop_control,
|
||||||
const std::vector<Ref>& literals = {});
|
const std::vector<Ref>& literals = {});
|
||||||
|
|
||||||
|
/// Declare a structured selection.
|
||||||
|
Ref SelectionMerge(Ref merge_block, spv::SelectionControlMask selection_control);
|
||||||
|
|
||||||
/// The block label instruction: Any reference to a block is through this ref.
|
/// The block label instruction: Any reference to a block is through this ref.
|
||||||
Ref Label();
|
Ref Label();
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,13 @@ Ref Module::LoopMerge(Ref merge_block, Ref continue_target, spv::LoopControlMask
|
||||||
return AddCode(op);
|
return AddCode(op);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ref Module::SelectionMerge(Ref merge_block, spv::SelectionControlMask selection_control) {
|
||||||
|
Op* op{new Op(spv::Op::OpSelectionMerge)};
|
||||||
|
op->Add(merge_block);
|
||||||
|
AddEnum(op, selection_control);
|
||||||
|
return AddCode(op);
|
||||||
|
}
|
||||||
|
|
||||||
Ref Module::Label() {
|
Ref Module::Label() {
|
||||||
return AddCode(spv::Op::OpLabel, bound++);
|
return AddCode(spv::Op::OpLabel, bound++);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue