aboutsummaryrefslogtreecommitdiff
path: root/gcc/combine.c
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>2015-05-21 12:44:44 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>2015-05-21 12:44:44 +0000
commit100a3e05702aeedd867f59ba63b339c30bd55618 (patch)
tree634c25240aea15d29c8cc3ef04f40c0ffb62eedb /gcc/combine.c
parentedb1ad782e5bc4c6cb74a9cea22ada88f491f435 (diff)
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223481 138bc75d-0d04-0410-961f-82ee72b054a4
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 a90849ed0e9..8c527a74587 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: