The SSA register type needs to marked as a scalar or vector because use of the symbol tree and get_register_info() is avoided for simplicity and performance. Immediate constants already have enum vkd3d_immconst_type, which is the most logical place for the info if it's renamed appropriately.
Does enum vkd3d_static_type and VKD3D_STATIC_SCALAR, etc., look right?