------- Comment #1 from dfranke at gcc dot gnu dot org  2009-12-10 21:46 -------
Actually, the program

  real    :: x
  complex :: c
  c = c * x
end

is directly translated to ...

MAIN__ ()
{
  complex(kind=4) c;
  real(kind=4) x;

  c = COMPLEX_EXPR <x, 0.0> * c;
}

... and yukka, the "optimized" dump has ...

  real(kind=4) D.1522;
  real(kind=4) D.1521;
  real(kind=4) D.1520;
  real(kind=4) D.1519;
  real(kind=4) D.1518;
  real(kind=4) D.1517;
  real(kind=4) D.1516;
  real(kind=4) D.1515;
  real(kind=4) D.1514;
  real(kind=4) D.1513;
  real(kind=4) x;
  complex(kind=4) c;
  complex(kind=4) c.2;
  complex(kind=4) c.1;
  complex(kind=4) D.1510;

<bb 2>:
  D.1510_2 = COMPLEX_EXPR <x_1(D), 0.0>;
  c.1_3 = c;
  D.1513_4 = REALPART_EXPR <D.1510_2>;
  D.1514_5 = IMAGPART_EXPR <D.1510_2>;
  D.1515_6 = REALPART_EXPR <c.1_3>;
  D.1516_7 = IMAGPART_EXPR <c.1_3>;
  D.1517_8 = D.1513_4 * D.1515_6;
  D.1518_9 = D.1514_5 * D.1516_7;
  D.1519_10 = D.1513_4 * D.1516_7;
  D.1520_11 = D.1514_5 * D.1515_6;
  D.1521_12 = D.1517_8 - D.1518_9;
  D.1522_13 = D.1519_10 + D.1520_11;
  c.2_14 = COMPLEX_EXPR <D.1521_12, D.1522_13>;
  c = c.2_14;
  return;


-- 

dfranke at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dfranke at gcc dot gnu dot
                   |                            |org
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2009-12-10 21:46:21
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40290

Reply via email to