Skip to content

Commit

Permalink
llvm-stress: don't make vectors of x86_mmx type
Browse files Browse the repository at this point in the history
LangRef.html says:
"There are no arrays, vectors or constants of this type."

This was hitting assertions when passing the -generate-x86-mmx
option.

PR12452.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154445 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
nobled committed Apr 10, 2012
1 parent cff60c1 commit 701de8f
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion tools/llvm-stress/llvm-stress.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -202,11 +202,17 @@ struct Modifier {

/// Pick a random vector type.
Type *pickVectorType(unsigned len = (unsigned)-1) {
Type *Ty = pickScalarType();
// Pick a random vector width in the range 2**0 to 2**4.
// by adding two randoms we are generating a normal-like distribution
// around 2**3.
unsigned width = 1<<((Ran->Rand() % 3) + (Ran->Rand() % 3));
Type *Ty;

// Vectors of x86mmx are illegal; keep trying till we get something else.
do {
Ty = pickScalarType();
} while (Ty->isX86_MMXTy());

if (len != (unsigned)-1)
width = len;
return VectorType::get(Ty, width);
Expand Down

0 comments on commit 701de8f

Please sign in to comment.