[llvm] [msan] Convert target("aarch64.svcount") from compile-time crash to MSan false negatives (PR #165028)
Thurston Dang via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 24 12:52:39 PDT 2025
================
@@ -1544,6 +1545,27 @@ struct MemorySanitizerVisitor : public InstVisitor<MemorySanitizerVisitor> {
}
}
+ static bool isAArch64SVCount(Type *Ty) {
+ if (!isa<TargetExtType>(Ty))
+ return false;
+
+ TargetExtType* TTy = cast<TargetExtType>(Ty);
+ return TTy->getName() == "aarch64.svcount";
+ }
+
+ // This is intended to match the "AArch64 Predicate-as-Counter Type" (aka
+ // 'target("aarch64.svcount")', but not e.g., <vscale x 4 x i32>.
+ static bool isScalableNonVectorType(Type *Ty) {
+ if (!isAArch64SVCount(Ty))
----------------
thurstond wrote:
The not branch will happen if a similar predicate is introduced for RISC-V, Loongaarch, etc. Adding an assert would break them unnecessarily.
OTOH at the moment I am (willfully) unaware of such a predicate on other platforms; hence, the log message for debugging because it is somewhat unexpected.
https://github.com/llvm/llvm-project/pull/165028
More information about the llvm-commits
mailing list