This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug fortran/29391] LBOUND(TRANSPOSE(I)) doesn't work



------- 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]