[clang] [clang] Make -fveclib={ArmPL, SLEEF} imply -fno-math-errno (PR #112580)
Benjamin Maxwell via cfe-commits
cfe-commits at lists.llvm.org
Fri Oct 18 08:56:49 PDT 2024
================
@@ -36,16 +36,23 @@
/* Verify that the correct vector library is passed to LTO flags. */
// RUN: %clang -### --target=x86_64-unknown-linux-gnu -fveclib=LIBMVEC -flto %s 2>&1 | FileCheck --check-prefix=CHECK-LTO-LIBMVEC %s
+// CHECK-LTO-LIBMVEC: "-fmath-errno"
// CHECK-LTO-LIBMVEC: "-plugin-opt=-vector-library=LIBMVEC-X86"
// RUN: %clang -### --target=powerpc64-unknown-linux-gnu -fveclib=MASSV -flto %s 2>&1 | FileCheck --check-prefix=CHECK-LTO-MASSV %s
+// CHECK-LTO-MASSV: "-fmath-errno"
// CHECK-LTO-MASSV: "-plugin-opt=-vector-library=MASSV"
// RUN: %clang -### --target=x86_64-unknown-linux-gnu -fveclib=SVML -flto %s 2>&1 | FileCheck --check-prefix=CHECK-LTO-SVML %s
+// CHECK-LTO-SVML: "-fmath-errno"
// CHECK-LTO-SVML: "-plugin-opt=-vector-library=SVML"
// RUN: %clang -### --target=aarch64-linux-gnu -fveclib=SLEEF -flto %s 2>&1 | FileCheck --check-prefix=CHECK-LTO-SLEEF %s
+// CHECK-LTO-SLEEF-NOT: "-fmath-errno"
// CHECK-LTO-SLEEF: "-plugin-opt=-vector-library=sleefgnuabi"
+// CHECK-LTO-SLEEF-NOT: "-fmath-errno"
// RUN: %clang -### --target=aarch64-linux-gnu -fveclib=ArmPL -flto %s 2>&1 | FileCheck --check-prefix=CHECK-LTO-ARMPL %s
+// CHECK-LTO-ARMPL-NOT: "-fmath-errno"
----------------
MacDue wrote:
I've followed @paulwalker-arm's suggestion and removed the vectorizer specific phrasing from the warning, so it's now:
> math errno enabled by '-ffp-model=strict' after it was implicitly disabled by '-fveclib=ArmPL', this may limit the utilization of the vector library [-Wmath-errno-enabled-with-veclib]
Which I think addresses the "combines 2 things" issue. I'm not sure if pt 2 exists. Is `errno` a concept that exists in the loop vectorizer, other than as a memory effect? It seems more C/C++ language specific.
That said, I did spot: https://github.com/llvm/llvm-project/blob/e13f1d1daf9b76134c3585e8250941920bdf3da6/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp#L908-L918
https://github.com/llvm/llvm-project/pull/112580
More information about the cfe-commits
mailing list