------- Comment #1 from fxcoudert at gcc dot gnu dot org  2006-10-19 22:16 
-------
The generated code emitted for the TRANSPOSE for i386-darwin is stupid:

    atmp.13.dtype = parm.12.dtype;
    atmp.13.dim[0].stride = parm.12.dim[1].stride;
    atmp.13.dim[0].lbound = parm.12.dim[1].lbound;
    atmp.13.dim[0].ubound = parm.12.dim[1].ubound;
    atmp.13.dim[1].stride = parm.12.dim[1].stride;
    atmp.13.dim[1].lbound = parm.12.dim[1].lbound;
    atmp.13.dim[1].ubound = parm.12.dim[1].ubound;
    atmp.13.data = parm.12.data;
    atmp.13.offset = parm.12.offset;

when you compare it to the (correct) code emitted on x86-linux:

    atmp.13.dtype = parm.12.dtype;
    atmp.13.dim[0].stride = parm.12.dim[1].stride;
    atmp.13.dim[0].lbound = parm.12.dim[1].lbound;
    atmp.13.dim[0].ubound = parm.12.dim[1].ubound;
    atmp.13.dim[1].stride = parm.12.dim[0].stride;
    atmp.13.dim[1].lbound = parm.12.dim[0].lbound;
    atmp.13.dim[1].ubound = parm.12.dim[0].ubound;
    atmp.13.data = parm.12.data;
    atmp.13.offset = parm.12.offset;


-- 

fxcoudert at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
          Component|target                      |fortran
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2006-10-19 22:16:23
               date|                            |


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

Reply via email to