It would be nice if there were a target-independent .md file where we could code these simplifications as patterns, rather than having to code them in C. We could have the gen* functions merge the target.md and common.md up front, and everything would "just work".