If we run into a pattern that looks like this:
add (complex $x, $y) (complex $x, $z)
We should skip the pattern instead of asserting/doing something unpredictable. This makes us return an Error in that case, and adds a testcase for skipped patterns.
Patterns like this appear in some targets, so we can't really just die here. (See https://reviews.llvm.org/D57484).