I think just checking op 0 is sufficient
Probably should generate these checks
Adding a use instruction for all of these wouldn't hurt in case peephole-opt ever decides to prune dead instructions
Needs test with skipped hi16
Always drop target flags on source operand. SubReg and TargetFlags share the same field changing the meaning depending on the operand type. If I do not drop it I get something like:
S_MOV_B32 target-flags(amdgpu-gotprel32-lo) 2048
Technically it could happen with 32 subregs as well, although does not seem to happen.