I've pushed a [branch](https://gitlab.winehq.org/cmccarthy/vkd3d/-/tree/sm6_common_backend) which can use the existing SPIR-V backend to compile a pixel shader which performs a binary op on SV_Position and stores to SV_Target. It doesn't include any workarounds to eliminate private variables. Most likely some parts of it are not required as I haven't been thorough about minimising it. It doesn't load the metadata, which means the input interpolation mode is not available.
I think it will have somewhat slower performance vs a separate backend, but it's hard to say by how much at this stage.