Supporting 'MAC' instruction on gcc v4.1.1
Rask Ingemann Lambertsen
rask@sygehus.dk
Fri May 11 14:42:00 GMT 2007
On Fri, May 11, 2007 at 05:56:16PM +0530, Rahul wrote:
> I have PLUS, MULT and following MAC pattern, in my target.md file.
> (define_insn ""
> [(set (match_operand:SI 0 "data_reg" "=f")
> (plus:SI (mult:SI (match_operand:SI 1 "data_reg" "f")
> (match_operand:SI 2 "data_reg" "f"))
> (match_operand:SI 3 "data_reg" "0")))]
> ""
> "mac\\t%1, %2, %3"
> [(set_attr "type" "arith")
> (set_attr "length" "2")]
> )
>
> But for the following example
> int a = 1;
> int b = 2;
> int c = 3;
> c = c + a * b;
> the MAC pattern is not getting recognized, instead it is still using
> PLUS and MULT patterns.
See what is in the progname.c.*.combine file produced by
-fdump-rtl-combine.
Double check that your "data_reg" predicate is working.
You will make your life easier by giving the insn pattern a name. The RTL
dumps and in particular the -S -dp output will be easier to read.
--
Rask Ingemann Lambertsen
More information about the Gcc
mailing list