* Claudiu Zissulescu <claudiu.zissule...@synopsys.com> [2016-06-17 11:13:08 +0200]:
> Basic ARC cpus are having only simple shift operations. Here they are. > > OK to apply? This looks good to me. Thanks, Andrew > > gcc/ > 2016-06-09 Claudiu Zissulescu <claz...@synopsys.com> > > * config/arc/arc.md (*rotrsi3_cnt1): New pattern, > (*ashlsi2_cnt1, *lshrsi3_cnt1, *ashrsi3_cnt1): Likewise. > --- > gcc/config/arc/arc.md | 40 ++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 40 insertions(+) > > diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md > index 852f0e0..a095ba1 100644 > --- a/gcc/config/arc/arc.md > +++ b/gcc/config/arc/arc.md > @@ -6219,6 +6219,46 @@ > (zero_extract:SI (match_dup 1) (match_dup 5) (match_dup > 7)))]) > (match_dup 1)]) > > +(define_insn "*rotrsi3_cnt1" > + [(set (match_operand:SI 0 "dest_reg_operand" "=w") > + (rotatert:SI (match_operand:SI 1 "register_operand" "c") > + (const_int 1)))] > + "" > + "ror %0,%1%&" > + [(set_attr "type" "shift") > + (set_attr "predicable" "no") > + (set_attr "length" "4")]) > + > +(define_insn "*ashlsi2_cnt1" > + [(set (match_operand:SI 0 "dest_reg_operand" "=Rcqq,w") > + (ashift:SI (match_operand:SI 1 "register_operand" "Rcqq,c") > + (const_int 1)))] > + "" > + "asl%? %0,%1%&" > + [(set_attr "type" "shift") > + (set_attr "iscompact" "maybe,false") > + (set_attr "predicable" "no,no")]) > + > +(define_insn "*lshrsi3_cnt1" > + [(set (match_operand:SI 0 "dest_reg_operand" "=Rcqq,w") > + (lshiftrt:SI (match_operand:SI 1 "register_operand" "Rcqq,c") > + (const_int 1)))] > + "" > + "lsr%? %0,%1%&" > + [(set_attr "type" "shift") > + (set_attr "iscompact" "maybe,false") > + (set_attr "predicable" "no,no")]) > + > +(define_insn "*ashrsi3_cnt1" > + [(set (match_operand:SI 0 "dest_reg_operand" "=Rcqq,w") > + (ashiftrt:SI (match_operand:SI 1 "register_operand" "Rcqq,c") > + (const_int 1)))] > + "" > + "asr%? %0,%1%&" > + [(set_attr "type" "shift") > + (set_attr "iscompact" "maybe,false") > + (set_attr "predicable" "no,no")]) > + > ;; include the arc-FPX instructions > (include "fpx.md") > > -- > 1.9.1 >