optabs.c (expand_binop): Optimize complex multiplication for the case of squaring a complex argument.
* optabs.c (expand_binop): Optimize complex multiplication for the case of squaring a complex argument. From-SVN: r67418
This commit is contained in:
parent
894207cf0a
commit
df8ca70ebb
2 changed files with 12 additions and 2 deletions
|
@ -1,3 +1,8 @@
|
|||
2003-06-03 Roger Sayle <roger@eyesopen.com>
|
||||
|
||||
* optabs.c (expand_binop): Optimize complex multiplication for
|
||||
the case of squaring a complex argument.
|
||||
|
||||
2003-06-03 Roger Sayle <roger@eyesopen.com>
|
||||
|
||||
* optabs.c (expand_binop): Attempt to reuse pseudos for duplicate
|
||||
|
|
|
@ -1647,8 +1647,13 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods)
|
|||
temp1 = expand_binop (submode, binoptab, real0, imag1,
|
||||
NULL_RTX, unsignedp, methods);
|
||||
|
||||
temp2 = expand_binop (submode, binoptab, real1, imag0,
|
||||
NULL_RTX, unsignedp, methods);
|
||||
/* Avoid expanding redundant multiplication for the common
|
||||
case of squaring a complex number. */
|
||||
if (rtx_equal_p (real0, real1) && rtx_equal_p (imag0, imag1))
|
||||
temp2 = temp1;
|
||||
else
|
||||
temp2 = expand_binop (submode, binoptab, real1, imag0,
|
||||
NULL_RTX, unsignedp, methods);
|
||||
|
||||
if (temp1 == 0 || temp2 == 0)
|
||||
break;
|
||||
|
|
Loading…
Add table
Reference in a new issue