** Description changed: [Impact] After ubuntu-glibc maintainers changed "math-vector-fortran.h" install directory (LP#1861353), gfortran can no longer use it. [Test Case] This the old (good) behavior Ubuntu 19.10 gcc-9.2.1 glibc 2.30 $ gfortran -O3 -mavx2 vect_test.f90 -o test.x $ nm ./test.x | grep sin U _ZGVdN4v_sin@@GLIBC_2.22 U _ZGVdN8v_sinf@@GLIBC_2.22 After that change : Ubuntu 20.04 gcc-9.3.0 glibc 2.31 $ gfortran -O3 -mavx2 vect_test.f90 -o test.x $ nm ./test.x | grep sinn U sin@@GLIBC_2.2.5 U sinf@@GLIBC_2.2.5 $ cat vect_test.f90 program test_vect implicit none integer, parameter :: n = 64*1024**2 integer :: i integer(8) :: t1, t2, t0 real(8) :: tic ! real, allocatable :: a32(:), b32(:) real(8), allocatable :: a64(:), b64(:) ! allocate( a32(n), a64(n)) allocate( b32(n), b64(n)) ! call random_number(a32 ) call random_number(a64 ) ! call system_clock(t0, tic) ! do i = 1, n b32(i) = sin(a32(i)) end do ! call system_clock(t1) print*, (t1-t0)/tic ! do i = 1, n b64(i) = sin(a64(i)) end do ! call system_clock(t2) print*, (t2-t1)/tic ! end program test_vect Verbose: Ubuntu 19.10 $ gfortran -O3 -mavx2 -v vect_test.f90 -o test.x ... /usr/lib/gcc/x86_64-linux-gnu/9/f951 vect_test.f90 -quiet -dumpbase vect_test.f90 -mavx2 -mtune=generic -march=x86-64 -auxbase vect_test -O3 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/9/finclude -fpre-include=/usr/include/finclude/math-vector-fortran.h -o /tmp/cc2E2K8s.s ... Ubuntu 20.04 $ gfortran -O3 -mavx2 -v vect_test.f90 -o test.x ... /usr/lib/gcc/x86_64-linux-gnu/9/f951 vect_test.f90 -quiet -dumpbase vect_test.f90 -mavx2 -mtune=generic -march=x86-64 -auxbase vect_test -O3 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/9/finclude -o /tmp/cc4swJwz.s ... - [Regression Potential] - - The fix ships the file on all architectures and it is used in gfortran - compilations. If the conditions in the file did not work properly those - could break gfortran compilations on other architectures. Looking at the - file all lines are conditionalized and I've also tested gfortran - compilation in verbose mode on s390x and the optimizations did not take - place (as it was expected). - [Other Info] As you can see gfortran is not preincluding "math-vector-fortran.h" file on Ubuntu 20.04. A workaround is to copy "math-vector-fortran.h" to /usr/include/finclude (which is empty!).
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1879092 Title: gfortran can't use vectorized functions. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gcc-10/+bug/1879092/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs