On Sat, May 14, 2005 at 09:32:26AM +0800, zouq wrote:
> the MAX_INSNS_PER_PEEP2 is 3,
> when the program case is :
> mul.d $f1, $f1, $f0
> add.d $f2, $f2, $f1
> sub.d $f3, $f3, $f2
So what's the problem?
r~
en,i still have a problem,
the MAX_INSNS_PER_PEEP2 is 3,
when the program case is :
mul.d $f1, $f1, $f0
add.d $f2, $f2, $f1
sub.d $f3, $f3, $f2
sdc1 $f3, 0(v0)
addiu v0, v0, 1
add.d $f3, $f4, $f2
sdc1
> On Fri, May 13, 2005 at 11:37:16PM +0800, zouq wrote:
>> original program is:
>> mul.d $f1, $f1
On Fri, May 13, 2005 at 11:37:16PM +0800, zouq wrote:
> original program is:
> mul.d $f1, $f1, $f0
> add.d $f2, $f2, $f1
> div.d $f3, $f0, $f1;
>
> after i compile used my changed gcc, it becomes:
> madd.d $f2, $f1, $0
> div.d $f3, $f0, $f1
>
> as you can see, the value of $f1 is wrong!!
Check
first i want to generate a three-operator multiply-add instruction similar
to four-operator multiply-add instruction in mips4 instruction sets.
i modify the gcc/config/mips/mips.md file as follow:
(define_peephole2
[ (set (match_operand:SF 0 "register_operand" "=f")
(mult:SF (match_operan