Fix DSE big-endian subreg crash on AArch64.
This patch fixes an ICE that would happen when extract_low_bits
is called with modes for which you can't extract a valid subreg.
e.g. taking a 32 bytes subreg from a 48 byte mode.
The ICE happens because convert_modes which eventually calls
simplify_gen_subreg does not expect the convertion to fail.
The assert in gen_lowpart_general would then be hit. The patch
changes it to validate the subreg before trying to convert the
modes. If the subreg is not possible we return NULL_RTX and bail
out early.
gcc/ChangeLog:
2018-08-21 Tamar Christina <tamar.christina@arm.com>
* expmed.c (extract_low_bits): Reject invalid subregs early.
gcc/testsuite/ChangeLog:
2018-08-21 Tamar Christina <tamar.christina@arm.com>
* gcc.target/aarch64/large_struct_copy.c: New test.
From-SVN: r263696