[Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1

2006-05-06 Thread paulthomas2 at wanadoo dot fr


--- Comment #24 from paulthomas2 at wanadoo dot fr  2006-05-06 08:02 ---
Subject: Re:  gfortran ICE: Not Implemented: Scalarization
 of non-elemental intrinsic: __transfer1


I'm unfamiliar with Bugzilla, so if I annoy anyone, apologies.
  

You made a serious comment... you won't upset anyone!

   This routine is a puzzle, or else I have completely misunderstood it. The
TRANSFER is obviously spurious, as it merely allows the sort of renaming that
used to be possible with the deprecated EQUIVALENCE statement, were it to be
allowed for parameters.
  

This is the nub of it; like equivalence, which is still supported in 
gfortran, transfer effects a bitwise mapping from source to destination.

   But, why not
  dcabs1 = abs(real(z)) + abs(aimag(z))
   relying on proper precision selection (or, supply d prefixes). 
  

... whereas real and aimag do kind conversion, if it is necessary.

   Of course, in general the TRANSFER function should work.
   Best wishes, RNMcLean somewhere by yahoo.com
  

In my opinion, real and aimag are better because they are likely to be 
more efficient; transfer is looking (as I well know!) to do the general 
case and needs to calculate source/destination sizes, whether or not 
they are packed and so on.

Best regards

Paul Thomas


-- 


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



[Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1

2006-05-02 Thread RNMcLean at yahoo dot com


--- Comment #23 from RNMcLean at yahoo dot com  2006-05-03 01:51 ---
(In reply to comment #2)
 Let me stress the importance of fixing this bug: it occurs in Basic Linear
 Algebra Subprograms (BLAS), in  program dcabs1.f:
 
   double precision function dcabs1(z)
   double complex z
   double precision t(2)
   t=transfer(z,t)
   dcabs1 = dabs(t(1)) + dabs(t(2))
   return
   end
 


   I'm unfamiliar with Bugzilla, so if I annoy anyone, apologies.
   This routine is a puzzle, or else I have completely misunderstood it. The
TRANSFER is obviously spurious, as it merely allows the sort of renaming that
used to be possible with the deprecated EQUIVALENCE statement, were it to be
allowed for parameters.
   But, why not
  dcabs1 = abs(real(z)) + abs(aimag(z))
   relying on proper precision selection (or, supply d prefixes). 

   Of course, in general the TRANSFER function should work.
   Best wishes, RNMcLean somewhere by yahoo.com


-- 


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



[Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1

2006-04-03 Thread pinskia at gcc dot gnu dot org


--- Comment #22 from pinskia at gcc dot gnu dot org  2006-04-03 21:01 
---
*** Bug 27009 has been marked as a duplicate of this bug. ***


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||tobias dot burnus at physik
   ||dot fu-berlin dot de


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



[Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1

2006-04-01 Thread ebotcazou at gcc dot gnu dot org


--- Comment #13 from ebotcazou at gcc dot gnu dot org  2006-04-01 17:10 
---
Is transfer_array_intrinsic_1.f90 portable to big-endian? It fails on SPARC.

Reduced testcase:

 integer(4) :: y(4)
 character(4) :: ch(4)
 y = (/(i + ishft (i + 1, 8) + ishft (i + 2, 16) 
  + ishft (i + 3, 24), i = 65, 80 , 4)/)

 ch = wxyz
 ch = transfer (y(2:4:2), ch)
 if (any (ch .ne. (/EFGH,MNOP,wxyz,wxyz/))) call abort ()
end

Breakpoint 1, MAIN__ () at transfer_array_intrinsic_1.f90:8
8if (any (ch .ne. (/EFGH,MNOP,wxyz,wxyz/))) call abort ()
(gdb) p ch
$13 = (( 72 'H', 71 'G', 70 'F', 69 'E') ( 80 'P', 79 'O', 78 'N', 77 'M') (
119 'w', 120 'x', 121 'y', 122 'z') ( 119 'w', 120 'x', 121 'y', 122 'z') )


-- 

ebotcazou at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||ebotcazou at gcc dot gnu dot
   ||org
 Status|RESOLVED|REOPENED
 Resolution|FIXED   |


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



[Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1

2006-04-01 Thread kargl at gcc dot gnu dot org


--- Comment #14 from kargl at gcc dot gnu dot org  2006-04-01 17:24 ---
(In reply to comment #13)
 Is transfer_array_intrinsic_1.f90 portable to big-endian? It fails on SPARC.
 

No, it isn't portable to big endian.  How are you executing this
test.  I added a  { target i?86-*-* x86_64-*-* } to the dg-do clause.


-- 


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



[Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1

2006-04-01 Thread ebotcazou at gcc dot gnu dot org


--- Comment #15 from ebotcazou at gcc dot gnu dot org  2006-04-01 20:05 
---
 No, it isn't portable to big endian.  How are you executing this
 test.

gmake -k check-fortran. :-)

 I added a  { target i?86-*-* x86_64-*-* } to the dg-do clause.

Not on the 4.1 branch.  And why?  Is there anything specific to x86 in the
test?


-- 


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



[Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1

2006-04-01 Thread kargl at gcc dot gnu dot org


--- Comment #16 from kargl at gcc dot gnu dot org  2006-04-01 20:48 ---
(In reply to comment #15)
  No, it isn't portable to big endian.  How are you executing this
  test.
 
 gmake -k check-fortran. :-)
 
  I added a  { target i?86-*-* x86_64-*-* } to the dg-do clause.
 
 Not on the 4.1 branch.

Whoops. I thought I had committed to both branches.

 And why?  Is there anything specific to x86 in the test?

Because there isn't a { target-little-endian } dg directive.
Additionally, I knew pault was working on a general fix for
problem.  I was just trying to permit big-endian system 
ignore the testcase

Note, pault has submitted a new patch earlier today.  I hope
to review it shortly.


-- 


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



[Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1

2006-04-01 Thread pinskia at gcc dot gnu dot org


--- Comment #17 from pinskia at gcc dot gnu dot org  2006-04-02 06:13 
---
We already had this discussion and yes it is not portable but that has already
been fixed.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.1.1


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



[Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1

2006-04-01 Thread ebotcazou at gcc dot gnu dot org


--- Comment #18 from ebotcazou at gcc dot gnu dot org  2006-04-02 06:21 
---
 We already had this discussion and yes it is not portable but that has already
 been fixed.

Andrew, you should really double-check what you say...

[EMAIL PROTECTED]:~/svn/gcc-4_1-branch/gcc/testsuite/gfortran.dg svn update
transfer_array_intrinsic_1.f90
At revision 112621.
[EMAIL PROTECTED]:~/svn/gcc-4_1-branch/gcc/testsuite/gfortran.dg cat
transfer_array_intrinsic_1.f90
! { dg-do run }


-- 

ebotcazou at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |


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



[Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1

2006-04-01 Thread pinskia at gcc dot gnu dot org


--- Comment #19 from pinskia at gcc dot gnu dot org  2006-04-02 06:27 
---
Does not matter, file a new bug about the testcase failing since this is only
the testcase.


See the thread starting at:
http://gcc.gnu.org/ml/fortran/2006-03/msg00487.html

The orginal bug has been fixed and there is no reason not to open a new bug
report to track the testcase failing.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1

2006-04-01 Thread ebotcazou at gcc dot gnu dot org


--- Comment #20 from ebotcazou at gcc dot gnu dot org  2006-04-02 06:36 
---
 Does not matter, file a new bug about the testcase failing since this is only
 the testcase.

Please stop being so stubborn. :-)  Anyway, I now hold you responsible for
making sure that something is done about the problem on the 4.1 branch.


-- 

ebotcazou at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |


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



[Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1

2006-04-01 Thread ebotcazou at gcc dot gnu dot org


--- Comment #21 from ebotcazou at gcc dot gnu dot org  2006-04-02 06:38 
---
Oops! I didn't mean to reopen it again...


-- 

ebotcazou at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1

2006-03-22 Thread pault at gcc dot gnu dot org


--- Comment #11 from pault at gcc dot gnu dot org  2006-03-22 20:00 ---
Subject: Bug 17298

Author: pault
Date: Wed Mar 22 20:00:17 2006
New Revision: 112293

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=112293
Log:
2006-03-22  Paul Thomas  [EMAIL PROTECTED]

PR fortran/17298
*trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): New
function to implement array valued TRANSFER intrinsic.
(gfc_conv_intrinsic_function): Call the new function if TRANSFER
and non-null se-ss.
(gfc_walk_intrinsic_function): Treat TRANSFER as one of the
special cases by calling gfc_walk_intrinsic_libfunc directly.

2006-03-22  Paul Thomas  [EMAIL PROTECTED]

PR fortran/17298
* gfortran.dg/transfer_array_intrinsic_1.f90: New test.
* gfortran.dg/transfer_array_intrinsic_2.f90: New test.


Added:
   
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/transfer_array_intrinsic_1.f90
   
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/transfer_array_intrinsic_2.f90
Modified:
branches/gcc-4_1-branch/gcc/fortran/ChangeLog
branches/gcc-4_1-branch/gcc/fortran/trans-intrinsic.c
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1

2006-03-22 Thread pault at gcc dot gnu dot org


--- Comment #12 from pault at gcc dot gnu dot org  2006-03-22 20:02 ---
Fixed on trank and 4.1.

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1

2006-03-21 Thread pault at gcc dot gnu dot org


--- Comment #10 from pault at gcc dot gnu dot org  2006-03-22 05:13 ---
Subject: Bug 17298

Author: pault
Date: Wed Mar 22 05:13:13 2006
New Revision: 112278

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=112278
Log:
2006-03-22  Paul Thomas  [EMAIL PROTECTED]

PR fortran/17298
*trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): New
function to implement array valued TRANSFER intrinsic.
(gfc_conv_intrinsic_function): Call the new function if TRANSFER
and non-null se-ss.
(gfc_walk_intrinsic_function): Treat TRANSFER as one of the
special cases by calling gfc_walk_intrinsic_libfunc directly.

2006-03-22  Paul Thomas  [EMAIL PROTECTED]

PR fortran/17298
* gfortran.dg/transfer_array_intrinsic_1.f90: New test.
* gfortran.dg/transfer_array_intrinsic_2.f90: New test.


Added:
trunk/gcc/testsuite/gfortran.dg/transfer_array_intrinsic_1.f90
trunk/gcc/testsuite/gfortran.dg/transfer_array_intrinsic_2.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-intrinsic.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1

2006-03-19 Thread patchapp at dberlin dot org


--- Comment #9 from patchapp at dberlin dot org  2006-03-19 21:01 ---
Subject: Bug number PR17298

A patch for this bug has been added to the patch tracker.
The mailing list url for the patch is
http://gcc.gnu.org/ml/gcc-patches/2006-03/msg01068.html


-- 


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



[Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1

2006-03-15 Thread pault at gcc dot gnu dot org


--- Comment #8 from pault at gcc dot gnu dot org  2006-03-15 16:49 ---
You will be glad to hear that, at long last, I am putting the finishing touches
to a patch for this.  It needs comments and a fine-toothed combing of the code.
 I maybe will submit it tomorrow morning.

Paul Thomas


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pault at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED


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



[Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1

2005-12-21 Thread pinskia at gcc dot gnu dot org


--- Comment #7 from pinskia at gcc dot gnu dot org  2005-12-22 03:32 ---
This also blocks building benchs_F95.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||pinskia at gcc dot gnu dot
   ||org


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



[Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1

2005-06-09 Thread c dot lemmen at fz-juelich dot de

--- Additional Comments From c dot lemmen at fz-juelich dot de  2005-06-09 
09:34 ---
Another important code ist blocked by this code: numerical recipes library
functions:

bessj.f90
sort_radix.f90:13



-- 


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


[Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1

2005-06-09 Thread tobi at gcc dot gnu dot org

--- Additional Comments From tobi at gcc dot gnu dot org  2005-06-09 09:42 
---
*** Bug 21905 has been marked as a duplicate of this bug. ***

-- 
   What|Removed |Added

 CC||tobi at gcc dot gnu dot org


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


[Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1

2005-03-15 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-03-15 
16:28 ---
*** Bug 20483 has been marked as a duplicate of this bug. ***

-- 
   What|Removed |Added

 CC||tow21 at cam dot ac dot uk


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


[Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1

2005-02-22 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-02-22 
17:13 ---
*** Bug 20149 has been marked as a duplicate of this bug. ***

-- 
   What|Removed |Added

 CC||dir at lanl dot gov


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


[Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1

2004-11-10 Thread c dot lemmen at fz-juelich dot de

--- Additional Comments From c dot lemmen at fz-juelich dot de  2004-11-10 
09:12 ---
Let me stress the importance of fixing this bug: it occurs in Basic Linear
Algebra Subprograms (BLAS), in  program dcabs1.f:

  double precision function dcabs1(z)
  double complex z
  double precision t(2)
  t=transfer(z,t)
  dcabs1 = dabs(t(1)) + dabs(t(2))
  return
  end


-- 


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