This ports some combines from DAGCombiner.cpp which perform some trivial transformations on instructions with undef operands.
e.g.
(mul x, undef) -> 0 (or x, undef) -> -1 (xor x, undef) -> undef
and so on.
Not having these can make it extremely annoying to find out where we differ from SelectionDAG by looking at existing lit tests. Without them, we tend to produce pretty bad code generation when we run into instructions which use undef operands.
Also remove the nonpow2_store_narrowing testcase from arm64-fallback.ll, since we no longer fall back on the add.
Should add to all_combines