mirror of
https://git.suyu.dev/suyu/sirit.git
synced 2024-12-23 04:32:04 +00:00
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,
|
||||
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.
|
||||
Ref Label();
|
||||
|
||||
|
|
|
@ -19,6 +19,13 @@ Ref Module::LoopMerge(Ref merge_block, Ref continue_target, spv::LoopControlMask
|
|||
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() {
|
||||
return AddCode(spv::Op::OpLabel, bound++);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue