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.
> 

Reply via email to