[llvm] [NFCI][msan] Refactor to use 'isFixedIntVector' etc. (PR #147789)
Thurston Dang via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 9 10:38:45 PDT 2025
https://github.com/thurstond created https://github.com/llvm/llvm-project/pull/147789
Inspired by a suggestion from Florian Google in https://github.com/llvm/llvm-project/pull/147606#discussion_r2193548994
>From 2f05f58c090529012a474847b2beca6582e2e6fe Mon Sep 17 00:00:00 2001
From: Thurston Dang <thurston at google.com>
Date: Wed, 9 Jul 2025 17:36:24 +0000
Subject: [PATCH] [NFCI][msan] Refactor to use 'isFixedIntVector' etc.
Inspired by a suggestion from Florian Google in https://github.com/llvm/llvm-project/pull/147606#discussion_r2193548994
---
.../Instrumentation/MemorySanitizer.cpp | 30 ++++++++++++-------
1 file changed, 20 insertions(+), 10 deletions(-)
diff --git a/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp b/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
index bb2eb99c00317..df6f5ee496ff8 100644
--- a/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
+++ b/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
@@ -4376,6 +4376,22 @@ struct MemorySanitizerVisitor : public InstVisitor<MemorySanitizerVisitor> {
setOriginForNaryOp(I);
}
+ [[maybe_unused]] static bool isFixedIntVectorTy(const Type *T) {
+ return isa<FixedVectorType>(T) && T->isIntOrIntVectorTy();
+ }
+
+ [[maybe_unused]] static bool isFixedFPVectorTy(const Type *T) {
+ return isa<FixedVectorType>(T) && T->isFPOrFPVectorTy();
+ }
+
+ [[maybe_unused]] static bool isFixedIntVector(const Value *V) {
+ return isFixedIntVectorTy(V->getType());
+ }
+
+ [[maybe_unused]] static bool isFixedFPVector(const Value *V) {
+ return isFixedFPVectorTy(V->getType());
+ }
+
// e.g., call <16 x i32> @llvm.x86.avx512.mask.cvtps2dq.512
// (<16 x float> a, <16 x i32> writethru, i16 mask,
// i32 rounding)
@@ -4393,11 +4409,8 @@ struct MemorySanitizerVisitor : public InstVisitor<MemorySanitizerVisitor> {
Value *Mask = I.getOperand(2);
[[maybe_unused]] Value *RoundingMode = I.getOperand(3);
- assert(isa<FixedVectorType>(A->getType()));
- assert(A->getType()->isFPOrFPVectorTy());
-
- assert(isa<FixedVectorType>(WriteThrough->getType()));
- assert(WriteThrough->getType()->isIntOrIntVectorTy());
+ assert(isFixedFPVector(A));
+ assert(isFixedIntVector(WriteThrough));
unsigned ANumElements =
cast<FixedVectorType>(A->getType())->getNumElements();
@@ -4617,11 +4630,8 @@ struct MemorySanitizerVisitor : public InstVisitor<MemorySanitizerVisitor> {
Value *WriteThrough = I.getOperand(1);
Value *Mask = I.getOperand(2);
- assert(isa<FixedVectorType>(A->getType()));
- assert(A->getType()->isIntOrIntVectorTy());
-
- assert(isa<FixedVectorType>(WriteThrough->getType()));
- assert(WriteThrough->getType()->isIntOrIntVectorTy());
+ assert(isFixedIntVector(A));
+ assert(isFixedIntVector(WriteThrough));
unsigned ANumElements =
cast<FixedVectorType>(A->getType())->getNumElements();
More information about the llvm-commits
mailing list