+void
+spirv_builder_emit_branch(struct spirv_builder *b, SpvId label);
+
+void
+spirv_builder_emit_selection_merge(struct spirv_builder *b, SpvId merge_block,
+ SpvSelectionControlMask selection_control);
+
+void
+spirv_builder_loop_merge(struct spirv_builder *b, SpvId merge_block,
+ SpvId cont_target, SpvLoopControlMask loop_control);
+
+void
+spirv_builder_emit_branch_conditional(struct spirv_builder *b, SpvId condition,
+ SpvId true_label, SpvId false_label);
+
+SpvId
+spirv_builder_emit_phi(struct spirv_builder *b, SpvId result_type,
+ size_t num_vars, size_t *position);
+
+void
+spirv_builder_set_phi_operand(struct spirv_builder *b, size_t position,
+ size_t index, SpvId variable, SpvId parent);
+
+void
+spirv_builder_emit_kill(struct spirv_builder *b);
+
+
+SpvId
+spirv_builder_emit_image_sample(struct spirv_builder *b,
+ SpvId result_type,
+ SpvId sampled_image,
+ SpvId coordinate,
+ bool proj,
+ SpvId lod,
+ SpvId bias,
+ SpvId dref,
+ SpvId dx,
+ SpvId dy,
+ SpvId offset);
+
+SpvId
+spirv_builder_emit_image(struct spirv_builder *b, SpvId result_type,
+ SpvId sampled_image);
+