diff options
author | Nikita Popov <npopov@redhat.com> | 2023-12-21 15:16:55 +0100 |
---|---|---|
committer | Nikita Popov <npopov@redhat.com> | 2023-12-21 15:21:23 +0100 |
commit | e414ba33b44971d47d24d75b7da94898d2cc8bde (patch) | |
tree | d5d30ba544b71a9c03ed64b4fdb8f65d9d2d4145 /llvm/lib/Analysis/ValueTracking.cpp | |
parent | 5992ce90b8c0fac06436c3c86621fbf6d5398ee5 (diff) | |
download | llvm-e414ba33b44971d47d24d75b7da94898d2cc8bde.zip llvm-e414ba33b44971d47d24d75b7da94898d2cc8bde.tar.gz llvm-e414ba33b44971d47d24d75b7da94898d2cc8bde.tar.bz2 |
[ValueTracking] Shufflevector produces poison rather than undef
Shufflevector semantics have changed so that poison mask elements
return poison rather than undef. Reflect this in the
canCreateUndefOrPoison() implementation.
Diffstat (limited to 'llvm/lib/Analysis/ValueTracking.cpp')
-rw-r--r-- | llvm/lib/Analysis/ValueTracking.cpp | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp index efdb3fc..2ce660b 100644 --- a/llvm/lib/Analysis/ValueTracking.cpp +++ b/llvm/lib/Analysis/ValueTracking.cpp @@ -6674,9 +6674,6 @@ static bool canCreateUndefOrPoison(const Operator *Op, bool PoisonOnly, return false; } case Instruction::ShuffleVector: { - // shufflevector may return undef. - if (PoisonOnly) - return false; ArrayRef<int> Mask = isa<ConstantExpr>(Op) ? cast<ConstantExpr>(Op)->getShuffleMask() : cast<ShuffleVectorInst>(Op)->getShuffleMask(); |