forked from OSchip/llvm-project
[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
This commit is contained in:
parent
57006d2f6d
commit
646e970d44
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue