This allows all targets to expand address space casts of undef values,
even if they do not explicitly have NOP addrspacecasts.
This bug was encountered whilst compiling the Rust libcore library for
Prior to this, only targets that defined isNoopAddrSpaceCast() as true
could successfully lower an undef address space cast without custom
The Mips and PowerPC backends, among others, could already handle these
addrspacecasts fine because SelectionDAG knew all addrspacecasts were NOPs.
Other backends including MSP430 and AVR would crash during ISel.
Now all backends will correctly lower this form of instruction without special
consideration from the backend authors.