diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-05-21 12:44:44 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-05-21 12:44:44 +0000 |
commit | 100a3e05702aeedd867f59ba63b339c30bd55618 (patch) | |
tree | 634c25240aea15d29c8cc3ef04f40c0ffb62eedb /gcc/combine.c | |
parent | edb1ad782e5bc4c6cb74a9cea22ada88f491f435 (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.c | 4 |
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: |