[llvm] [SandboxVectorizer] New class to actually collect and manage seeds (PR #112979)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 18 16:53:57 PDT 2024
================
@@ -131,4 +148,74 @@ void SeedContainer::print(raw_ostream &OS) const {
LLVM_DUMP_METHOD void SeedContainer::dump() const { print(dbgs()); }
#endif // NDEBUG
+template <typename LoadOrStoreT> static bool isValidMemSeed(LoadOrStoreT *LSI) {
+ if (LSI->isSimple())
+ return true;
+ auto *Ty = Utils::getExpectedType(LSI);
+ // Omit types that are architecturally unvectorizable
+ if (Ty->isX86_FP80Ty() || Ty->isPPC_FP128Ty())
+ return false;
+ // Omit vector types without compile-time-known lane counts
+ if (isa<ScalableVectorType>(Ty))
+ return false;
+ if (auto *VTy = dyn_cast<FixedVectorType>(Ty))
+ return VectorType::isValidElementType(VTy->getElementType());
+ return VectorType::isValidElementType(Ty);
+}
+
+template bool isValidMemSeed(LoadInst *LSI);
+template bool isValidMemSeed<StoreInst>(StoreInst *LSI);
----------------
Sterling-Augustine wrote:
Done
https://github.com/llvm/llvm-project/pull/112979
More information about the llvm-commits
mailing list