(cse_insn): Don't record a DEST a paradoxical SUBREG and SRC is a

SIGN_EXTEND or ZERO_EXTEND.

From-SVN: r8354
This commit is contained in:
Richard Kenner 1994-10-28 18:55:05 -04:00
parent 99d13c4024
commit 1a8e9a8e05

View File

@ -7188,7 +7188,17 @@ cse_insn (insn, in_libcall_block)
|| in_libcall_block
/* If we didn't put a REG_EQUAL value or a source into the hash
table, there is no point is recording DEST. */
|| sets[i].src_elt == 0)
|| sets[i].src_elt == 0
/* If DEST is a paradoxical SUBREG and SRC is a ZERO_EXTEND
or SIGN_EXTEND, don't record DEST since it can cause
some tracking to be wrong.
??? Think about this more later. */
|| (GET_CODE (dest) == SUBREG
&& (GET_MODE_SIZE (GET_MODE (dest))
> GET_MODE_SIZE (GET_MODE (SUBREG_REG (dest))))
&& (GET_CODE (sets[i].src) == SIGN_EXTEND
|| GET_CODE (sets[i].src) == ZERO_EXTEND)))
continue;
/* STRICT_LOW_PART isn't part of the value BEING set,