Incidentally, mapping outputs in shader_sm4_read_param() (or the parser in general) is historic, and probably not the ideal place these days. Note that we map these back to "o" registers in shader_dump_register() again; the more reasonable thing to do would probably be to do this mapping before/while generating output that needs it, but as far as I can tell we don't currently have any. I.e., we could probably just get rid of the mapping code.
Note that this MR causes CI test failures in tests/vkd3d_shader_api.