This patch starts filling in some of the DestructiveBinaryImm DestructiveInstType patterns. Both zero merging and undef merging are included.
It's questionable whether the undef merging tests are needed. The select with an undefined false operand should be combined away, so I'm not sure there's a lot of value in those. Thoughts?