[clang] [Clang][SVE2.1] Make a part of the name optional for `svwhileXX` builtins with predicate-as-counter (PR #75200)

Momchil Velikov via cfe-commits cfe-commits at lists.llvm.org
Thu Dec 14 08:37:18 PST 2023


================
@@ -1,12 +1,20 @@
 // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2p1 -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2p1 -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2p1 -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2p1 -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2p1 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s
----------------
momchil-velikov wrote:

I meant something else.

Each run line tests all the functions, i.e:
* first line tests all functions, with sve2p1 attribute, compiled as C
* second line tests all functions, with sve2p1 attribute, compiled as C++
* third line tests all functions, short name versions,  with sve2p1 attribute, compiled as C
* fourth line tests all functions, short name versions,  with sve2p1 attribute, compiled as C++

We can surely add four more lines, with sme2 attribute.

But what if we have just:
* first line tests all functions, with **sme2** attribute, compiled as C
* second line tests all functions, with sve2p1 attribute, compiled as C++
* third line tests all functions, short name versions,  with sve2p1 attribute, compiled as C
* fourth line tests all functions, short name versions,  with sve2p1 attribute, compiled as C++

What are we going to lose as test coverage, compared to a variant with eight run lines?

Some odd defect where say, combination of C++ and short/overloaded names misses a check for target feature or
streaming attribute?
But that's *very very likely* not dependent on *this* set of functions, so it's sufficient to have just one function tested with all the combinations and I've already seen such test files.


https://github.com/llvm/llvm-project/pull/75200


More information about the cfe-commits mailing list