diff options
author | hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-06-20 14:53:48 +0000 |
---|---|---|
committer | hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-06-20 14:53:48 +0000 |
commit | 8f498f23a2f4f91491e3a26c904eafa07bd97f6c (patch) | |
tree | 50bddf0089eeec9e64b85925a09e2f1a635b73ca /gcc/combine.c | |
parent | 139a41291fd4994519fef686e65e5c96043c930b (diff) | |
download | gcc-8f498f23a2f4f91491e3a26c904eafa07bd97f6c.tar.gz |
Check zero/sign extended hard registers.
2011-06-20 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/47725
* combine.c (cant_combine_insn_p): Check zero/sign extended
hard registers.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@175218 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/combine.c')
-rw-r--r-- | gcc/combine.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/combine.c b/gcc/combine.c index 56fb44eaf42..004ae27687d 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -2168,6 +2168,12 @@ cant_combine_insn_p (rtx insn) return 0; src = SET_SRC (set); dest = SET_DEST (set); + if (GET_CODE (src) == ZERO_EXTEND + || GET_CODE (src) == SIGN_EXTEND) + src = XEXP (src, 0); + if (GET_CODE (dest) == ZERO_EXTEND + || GET_CODE (dest) == SIGN_EXTEND) + dest = XEXP (dest, 0); if (GET_CODE (src) == SUBREG) src = SUBREG_REG (src); if (GET_CODE (dest) == SUBREG) |