This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/23452] New: Optimizing CONJG_EXPR (a) * a
- From: "tkoenig at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 18 Aug 2005 07:25:16 -0000
- Subject: [Bug tree-optimization/23452] New: Optimizing CONJG_EXPR (a) * a
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
$ cat conj.f
program main
complex c1,c2
call foo(c1)
c2 = c1 * conjg(c1)
call bar(c2)
end
This is translated into a CONJ_EXPR:
foo (&c1);
c2 = CONJ_EXPR <c1> * c1;
bar (&c2);
The .optimized dump shows:
foo (&c1);
CR.11 = REALPART_EXPR <c1>;
CI.12 = IMAGPART_EXPR <c1>;
CI.13 = -CI.12;
REALPART_EXPR <c2> = CR.11 * CR.11 - CI.12 * CI.13;
IMAGPART_EXPR <c2> = CR.11 * CI.13 + CR.11 * CI.12;
bar (&c2);
return;
This could be simplified to
REALPART_EXPR <c2> = CR.11 * CR.11 + CR.12 * CR.12;
IMAGPART_EXPR <c2> = 0;
--
Summary: Optimizing CONJG_EXPR (a) * a
Product: gcc
Version: 4.1.0
Status: UNCONFIRMED
Keywords: missed-optimization
Severity: enhancement
Priority: P2
Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tkoenig at gcc dot gnu dot org
CC: gcc-bugs at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23452