On Tue, Dec 05, 2017 at 02:28:56PM +0000, Richard Sandiford wrote: > The split conditions for aarch64_simd_bsldi_internal and > aarch64_simd_bsldi_alt were: > > "&& GP_REGNUM_P (REGNO (operands[0]))" > > But since they (deliberately) can be split before reload, the operand > matched by register_operand can be a SUBREG rather than a REG. This > triggered a boostrap failure building libgcc with rtl checking enabled. > > While checking other define_insn_and_splits for the same thing, > I noticed a couple of SIMD ones were missing the leading "&&", > meaning that they would trigger even without TARGET_SIMD. That > shouldn't matter in practice, since combine should never end up > generating matching rtl, but... > > Tested on aarch64-linux-gnu. OK to install?
OK. Thanks for fixing my mistake! James > 2017-12-05 Richard Sandiford <richard.sandif...@linaro.org> > > gcc/ > * config/aarch64/aarch64-simd.md (aarch64_simd_bsldi_internal) > (aarch64_simd_bsldi_alt): Check REG_P before GP_REGNUM_P. > (aarch64_cm<optab>di, aarch64_cmtstdi): Add leading "&&" to > split condition. >