This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/29391] LBOUND(TRANSPOSE(I)) doesn't work
- From: "pault at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 10 Oct 2006 19:36:13 -0000
- Subject: [Bug fortran/29391] LBOUND(TRANSPOSE(I)) doesn't work
- References: <bug-29391-10259@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #3 from pault at gcc dot gnu dot org 2006-10-10 19:36 -------
(In reply to comment #2)
> One last comment: I'm not sure the stride shouldn't be set to one. The patch
> above regtests fine, and can compile correctly everything I threw at it, but
> maybe I have not been clever enough to think of something that would trigger a
> check on the stride.
Sorry, which stride? The inversion of the strides is what allows MATMUL to do
neat thing with a*.b - I think that it's a horrible kludge but there we are. It
is more efficient and I nearly bust myself getting MATMUL right!
>
> Paul, could I have your opinion on the patch and the stride question? After you
> comment, I'll go on designing patches for the other functions.
Don't nest the build2's like that - use a temporary; you might find that
fold_build2 gives a better account of itself for index calculations; cf the
discussion on the list about the loop reverser for the scalarizer.
Ar you sure that this renormalization of the bounds is required? After all:
(i) indices should always be realtive to lbound, whatever it is; and
(ii) why would anybody be interested to do this? After all, the temporary
could be assigned to a variable with any lbound at all.
Paul
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29391