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
@ -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>
|
2003-06-03 Roger Sayle <roger@eyesopen.com>
|
||||||
|
|
||||||
* optabs.c (expand_binop): Attempt to reuse pseudos for duplicate
|
* 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,
|
temp1 = expand_binop (submode, binoptab, real0, imag1,
|
||||||
NULL_RTX, unsignedp, methods);
|
NULL_RTX, unsignedp, methods);
|
||||||
|
|
||||||
temp2 = expand_binop (submode, binoptab, real1, imag0,
|
/* Avoid expanding redundant multiplication for the common
|
||||||
NULL_RTX, unsignedp, methods);
|
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)
|
if (temp1 == 0 || temp2 == 0)
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user