aboutsummaryrefslogtreecommitdiff
path: root/gcc/combine.c
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2012-11-18 17:32:04 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2012-11-18 17:32:04 +0000
commit6cf9964974d79779456b9cde3c3949d056745540 (patch)
treeb52e303924824936374510b1d3c1b10feef80553 /gcc/combine.c
parenta787ccc38817dac21d8b09fd180f17028d0ee19b (diff)
downloadgcc-6cf9964974d79779456b9cde3c3949d056745540.zip
gcc-6cf9964974d79779456b9cde3c3949d056745540.tar.gz
gcc-6cf9964974d79779456b9cde3c3949d056745540.tar.bz2
combine.c (make_extraction): Handle TRUNCATEd INNERs.
gcc/ * combine.c (make_extraction): Handle TRUNCATEd INNERs. From-SVN: r193600
Diffstat (limited to 'gcc/combine.c')
-rw-r--r--gcc/combine.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/combine.c b/gcc/combine.c
index 5bf08ff..a3583e2 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -7022,6 +7022,8 @@ make_extraction (enum machine_mode mode, rtx inner, HOST_WIDE_INT pos,
if (new_rtx != 0)
return gen_rtx_ASHIFT (mode, new_rtx, XEXP (inner, 1));
}
+ else if (GET_CODE (inner) == TRUNCATE)
+ inner = XEXP (inner, 0);
inner_mode = GET_MODE (inner);