[Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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