https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123258
--- Comment #3 from mjr19 at cam dot ac.uk ---
An even simpler example of gfortran's failure to move a negation out of a loop
is
subroutine foo(a,b,n)
double precision::a(*),b
integer::i,n
do i=1,n
a(i)=a(i)*(-b)
end do
end subroutine foo
although in this case the extra xor in the loop loses little, as it has no
impact on the vectorisation. It does tie up an extra register though.
