[llvm] 646e970 - [llvm-stress] Fix dead code preventing us generating per-element vector selects
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 11 02:57:49 PDT 2021
Author: Simon Pilgrim
Date: 2021-06-11T10:56:19+01:00
New Revision: 646e970d44d7eaf4f56e2956fb58b48eb9360cb3
URL: https://github.com/llvm/llvm-project/commit/646e970d44d7eaf4f56e2956fb58b48eb9360cb3
DIFF: https://github.com/llvm/llvm-project/commit/646e970d44d7eaf4f56e2956fb58b48eb9360cb3.diff
LOG: [llvm-stress] Fix dead code preventing us generating per-element vector selects
This has been reported several times by the PVS Studio team as well as coming up in some static analysis.
getRandom() % 1 always returns 0 so we never actually test this codepath, (git blame suggests this has always been like this) - given that we have plenty of other "getRandom() & 1" the typo is pretty obvious, and matches the intention in the comment above - with this change we generate a nice mixture of scalar/vector condition selects of vectors.
I don't know llvm-stress that well - but I don't think we guarantee that the same seed value will always generate the same IR for later versions of the program - just that the same binary would.
Differential Revision: https://reviews.llvm.org/D104022
Added:
Modified:
llvm/tools/llvm-stress/llvm-stress.cpp
Removed:
################################################################################
diff --git a/llvm/tools/llvm-stress/llvm-stress.cpp b/llvm/tools/llvm-stress/llvm-stress.cpp
index e3fdd7821b6a6..b284fbf514a6a 100644
--- a/llvm/tools/llvm-stress/llvm-stress.cpp
+++ b/llvm/tools/llvm-stress/llvm-stress.cpp
@@ -632,7 +632,7 @@ struct SelectModifier: public Modifier {
// If the value type is a vector, and we allow vector select, then in 50%
// of the cases generate a vector select.
- if (isa<FixedVectorType>(Val0->getType()) && (getRandom() % 1)) {
+ if (isa<FixedVectorType>(Val0->getType()) && (getRandom() & 1)) {
unsigned NumElem =
cast<FixedVectorType>(Val0->getType())->getNumElements();
CondTy = FixedVectorType::get(CondTy, NumElem);
More information about the llvm-commits
mailing list