23 lines · plain
1! test that -fveclib= is passed to the backend2! RUN: %if aarch64-registered-target %{ %flang -S -Ofast -target aarch64-unknown-linux-gnu -fveclib=SLEEF -o - %s | FileCheck %s --check-prefix=SLEEF %}3! RUN: %if x86-registered-target %{ %flang -S -Ofast -target x86_64-unknown-linux-gnu -fveclib=libmvec -o - %s | FileCheck %s %}4! RUN: %if aarch64-registered-target %{ %flang -S -Ofast -target aarch64-unknown-linux-gnu -fveclib=libmvec -march=armv8.2-a+nosve -o - %s | FileCheck %s --check-prefix=LIBMVEC-AARCH64-NEON %}5! RUN: %if aarch64-registered-target %{ %flang -S -Ofast -target aarch64-unknown-linux-gnu -fveclib=libmvec -march=armv8.2-a+sve -o - %s | FileCheck %s --check-prefix=LIBMVEC-AARCH64-SVE %}6! RUN: %if x86-registered-target %{ %flang -S -O3 -ffast-math -target x86_64-unknown-linux-gnu -fveclib=AMDLIBM -o - %s | FileCheck %s --check-prefix=AMDLIBM %}7! RUN: %flang -S -Ofast -fveclib=NoLibrary -o - %s | FileCheck %s --check-prefix=NOLIB8 9subroutine sb(a, b)10 real :: a(:), b(:)11 integer :: i12 do i=1,10013! check that we used a vectorized call to powf()14! CHECK: _ZGVbN4vv_powf15! SLEEF: _ZGVnN4vv_powf16! LIBMVEC-AARCH64-NEON: _ZGVnN4vv_powf17! LIBMVEC-AARCH64-SVE: _ZGVsMxvv_powf18! AMDLIBM: amd_vrs4_powf19! NOLIB: powf20 a(i) = a(i) ** b(i)21 end do22end subroutine23