[llvm] [SLP][NFC] Refactor duplicate code into `getVectorizedValue` (PR #156277)
Alexey Bataev via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 1 07:33:14 PDT 2025
================
@@ -17848,6 +17848,17 @@ class BoUpSLP::ShuffleInstructionBuilder final : public BaseShuffleAnalysis {
IsSigned.value_or(!isKnownNonNegative(V, SimplifyQuery(*R.DL))));
}
+ Value *getVectorizedValue(const TreeEntry &E1) {
+ Value *V1 = E1.VectorizedValue;
+ if (!V1->getType()->isIntOrIntVectorTy())
+ return V1;
+ return castToScalarTyElem(V1, any_of(E1.Scalars, [&](Value *V) {
+ return !isa<PoisonValue>(V) &&
+ !isKnownNonNegative(
+ V, SimplifyQuery(*R.DL));
+ }));
+ }
----------------
alexey-bataev wrote:
```suggestion
Value *getVectorizedValue(const TreeEntry &E) {
Value *Vec = E.VectorizedValue;
if (!Vec->getType()->isIntOrIntVectorTy())
return Vec;
return castToScalarTyElem(Vec, any_of(E.Scalars, [&](Value *V) {
return !isa<PoisonValue>(V) &&
!isKnownNonNegative(
V, SimplifyQuery(*R.DL));
}));
}
```
https://github.com/llvm/llvm-project/pull/156277
More information about the llvm-commits
mailing list