Commit df8ca70e by Roger Sayle Committed by Roger Sayle

optabs.c (expand_binop): Optimize complex multiplication for the case of…

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
parent 894207cf
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
non-volatile operands of binary operations.
(prepare_cmp_insn): Likewise.
......
......@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment