Giovanni Mascellani (@giomasce) commented about libs/vkd3d-shader/ir.c:
{
const struct materialize_ssas_to_temps_block_data *data = &block_index[label_from_src_param(&ins->src[0]) - 1];
if (!reserve_instructions(&instructions, &ins_capacity, ins_count + data->phi_count))
goto fail;
for (j = data->phi_begin; j < data->phi_begin + data->phi_count; ++j)
{
const struct vkd3d_shader_src_param *source;
source = materialize_ssas_to_temps_compute_source(&program->instructions.elements[j],
current_label);
if (!materialize_ssas_to_temps_synthesize_mov(program, &instructions[ins_count],
&ins->location, &program->instructions.elements[j].dst[0], NULL, source, false))
goto fail;
case VKD3DSIH_RET:
Technically it doesn't look wrong, but is there a reason for this? If we're returning there should be no incoming here.