diff options
author | Richard Sandiford <richard.sandiford@linaro.org> | 2017-12-05 14:40:37 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2017-12-05 14:40:37 +0000 |
commit | 6acc594827256e256815741aef5102ca6838fa5b (patch) | |
tree | 91a76fe963fa6fe7d5bed54b2811f6a5527ed8b2 /libcpp | |
parent | 8c9ee176a61d7591e666700e41af2aadb60b8f6a (diff) | |
download | gcc-6acc594827256e256815741aef5102ca6838fa5b.zip gcc-6acc594827256e256815741aef5102ca6838fa5b.tar.gz gcc-6acc594827256e256815741aef5102ca6838fa5b.tar.bz2 |
[AArch64] Fix some define_insn_and_split conditions
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...
2017-12-05 Richard Sandiford <richard.sandiford@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.
From-SVN: r255423
Diffstat (limited to 'libcpp')
0 files changed, 0 insertions, 0 deletions