diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2018-11-20 08:59:30 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2018-11-20 08:59:30 +0000 |
commit | 643427d70f7a547a1db8a8492a6a124ff22c0d3a (patch) | |
tree | e254592484859d6e99362a4041f1d06658035748 /gcc/combine.c | |
parent | 07b9f1de1ea532a66d8ac103f3a9827521d780f9 (diff) | |
download | gcc-643427d70f7a547a1db8a8492a6a124ff22c0d3a.zip gcc-643427d70f7a547a1db8a8492a6a124ff22c0d3a.tar.gz gcc-643427d70f7a547a1db8a8492a6a124ff22c0d3a.tar.bz2 |
re PR rtl-optimization/85925 (compilation of masking with 257 goes wrong in combine at -02)
PR rtl-optimization/85925
* rtl.h (word_register_operation_p): New predicate.
* combine.c (record_dead_and_set_regs_1): Only apply specific handling
for WORD_REGISTER_OPERATIONS targets to word_register_operation_p RTX.
* rtlanal.c (nonzero_bits1): Likewise. Adjust couple of comments.
(num_sign_bit_copies1): Likewise.
From-SVN: r266302
Diffstat (limited to 'gcc/combine.c')
-rw-r--r-- | gcc/combine.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/combine.c b/gcc/combine.c index 945eca3..ecc83f8 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -13331,6 +13331,7 @@ record_dead_and_set_regs_1 (rtx dest, const_rtx setter, void *data) && subreg_lowpart_p (SET_DEST (setter))) record_value_for_reg (dest, record_dead_insn, WORD_REGISTER_OPERATIONS + && word_register_operation_p (SET_SRC (setter)) && paradoxical_subreg_p (SET_DEST (setter)) ? SET_SRC (setter) : gen_lowpart (GET_MODE (dest), |