aboutsummaryrefslogtreecommitdiff
path: root/gcc/combine.c
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>2015-05-21 06:44:44 -0600
committerJeff Law <law@gcc.gnu.org>2015-05-21 06:44:44 -0600
commita7a629d72f2b25832c4b9c7c2b11d03da73d5546 (patch)
tree634c25240aea15d29c8cc3ef04f40c0ffb62eedb /gcc/combine.c
parentb47fbc5307fe0f03ff302627d8977c402e34feff (diff)
downloadgcc-a7a629d72f2b25832c4b9c7c2b11d03da73d5546.zip
gcc-a7a629d72f2b25832c4b9c7c2b11d03da73d5546.tar.gz
gcc-a7a629d72f2b25832c4b9c7c2b11d03da73d5546.tar.bz2
combine.c (find_split_point): Handle ASHIFT like MULT to encourage multiply-accumulate/shift-add insn generation.
* combine.c (find_split_point): Handle ASHIFT like MULT to encourage multiply-accumulate/shift-add insn generation. * gcc.target/hppa/shadd-2.c: New test. From-SVN: r223481
Diffstat (limited to 'gcc/combine.c')
-rw-r--r--gcc/combine.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/combine.c b/gcc/combine.c
index a90849e..8c527a7 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -5145,7 +5145,9 @@ find_split_point (rtx *loc, rtx_insn *insn, bool set_src)
/* Split at a multiply-accumulate instruction. However if this is
the SET_SRC, we likely do not have such an instruction and it's
worthless to try this split. */
- if (!set_src && GET_CODE (XEXP (x, 0)) == MULT)
+ if (!set_src
+ && (GET_CODE (XEXP (x, 0)) == MULT
+ || GET_CODE (XEXP (x, 0)) == ASHIFT))
return loc;
default: