> When compiling for 64bit, there is an extra cast: > In the 64bit case however, the vectorizer dumps show that the > access-function returned for the index to array b is much more > compilcated > - the dataref analyzer doesn't seem to be able to extract the > evolution/step in this case, and concludes that the access is > non-consecutive: > ... > > Ah yes, this was a well-known issue in the days long before vectorization > ... > > In 1997, Richard Henderson hacked g77 to generate 64-bit array indices > on 64-bit machines to prevent these casts, which inhibited all sorts > of run-of-the-mill induction variable analysis ... > > This is probably quite invasive.
I thought we'd also fixed this in gfortran. Array indices should be 64-bit (aka gfc_array_index_type) on 64-bit targets. I guess you could also try -fdefault-integer-8, though that might break/pessimize other things. Paul