https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64247

Dominique d'Humieres <dominiq at lps dot ens.fr> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |WAITING
   Last reconfirmed|                            |2015-11-04
     Ever confirmed|0                           |1

--- Comment #10 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
A few comments:

(1) Why do you want to use PURE in this context?

(2) On x86_64-apple-darwin14 I have run the test in comment 9 with 4.8 up to
trunk (6.0), various options, and various values of N without getting the
message "pure routine gives different results at iter: ... ". IIRC the default
alignment on darwin is bigger than the one in linux.

(3) It may help to have pr68101 implemented.

(4) I agree with comment 7 that this PR is invalid: although I am not an expert
in vectorization, I understand that the vectorization may depend on the
alignment (peeling, versioning, ... ), thus I expect that the round-off error
may depend on the alignment. If I add a line

print *, maxval(abs(Cv1(1:N*N)-Cv2(1+2:N*N+2)))/epsilon(Cv1)

before 'IF (ANY(Cv1(1:N*N).NE.Cv2(1+2:N*N+2))) CALL ABORT()', I get 4 for N=10,
48 for N=100, and 768 for N=1000, roughly what I expect for round-off errors.

Reply via email to