[PM/AA] Switch to an early-exit. NFC. This was split out of another
change because the diff is *useless*. I assure you, I just switched to early-return in this function. Cleanup in preparation for my next commit, as requested in code review! llvm-svn: 242880
This commit is contained in:
parent
1ffd12e374
commit
d86a4f5ec8
|
@ -2809,52 +2809,51 @@ namespace {
|
||||||
if (isa<StoreInst>(I)) {
|
if (isa<StoreInst>(I)) {
|
||||||
AA->replaceWithNewValue(I, K);
|
AA->replaceWithNewValue(I, K);
|
||||||
AA->replaceWithNewValue(J, K);
|
AA->replaceWithNewValue(J, K);
|
||||||
} else {
|
return;
|
||||||
Type *IType = I->getType();
|
|
||||||
Type *JType = J->getType();
|
|
||||||
|
|
||||||
VectorType *VType = getVecTypeForPair(IType, JType);
|
|
||||||
unsigned numElem = VType->getNumElements();
|
|
||||||
|
|
||||||
unsigned numElemI = getNumScalarElements(IType);
|
|
||||||
unsigned numElemJ = getNumScalarElements(JType);
|
|
||||||
|
|
||||||
if (IType->isVectorTy()) {
|
|
||||||
std::vector<Constant*> Mask1(numElemI), Mask2(numElemI);
|
|
||||||
for (unsigned v = 0; v < numElemI; ++v) {
|
|
||||||
Mask1[v] = ConstantInt::get(Type::getInt32Ty(Context), v);
|
|
||||||
Mask2[v] = ConstantInt::get(Type::getInt32Ty(Context), numElemJ+v);
|
|
||||||
}
|
|
||||||
|
|
||||||
K1 = new ShuffleVectorInst(K, UndefValue::get(VType),
|
|
||||||
ConstantVector::get( Mask1),
|
|
||||||
getReplacementName(K, false, 1));
|
|
||||||
} else {
|
|
||||||
Value *CV0 = ConstantInt::get(Type::getInt32Ty(Context), 0);
|
|
||||||
K1 = ExtractElementInst::Create(K, CV0,
|
|
||||||
getReplacementName(K, false, 1));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (JType->isVectorTy()) {
|
|
||||||
std::vector<Constant*> Mask1(numElemJ), Mask2(numElemJ);
|
|
||||||
for (unsigned v = 0; v < numElemJ; ++v) {
|
|
||||||
Mask1[v] = ConstantInt::get(Type::getInt32Ty(Context), v);
|
|
||||||
Mask2[v] = ConstantInt::get(Type::getInt32Ty(Context), numElemI+v);
|
|
||||||
}
|
|
||||||
|
|
||||||
K2 = new ShuffleVectorInst(K, UndefValue::get(VType),
|
|
||||||
ConstantVector::get( Mask2),
|
|
||||||
getReplacementName(K, false, 2));
|
|
||||||
} else {
|
|
||||||
Value *CV1 = ConstantInt::get(Type::getInt32Ty(Context), numElem-1);
|
|
||||||
K2 = ExtractElementInst::Create(K, CV1,
|
|
||||||
getReplacementName(K, false, 2));
|
|
||||||
}
|
|
||||||
|
|
||||||
K1->insertAfter(K);
|
|
||||||
K2->insertAfter(K1);
|
|
||||||
InsertionPt = K2;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Type *IType = I->getType();
|
||||||
|
Type *JType = J->getType();
|
||||||
|
|
||||||
|
VectorType *VType = getVecTypeForPair(IType, JType);
|
||||||
|
unsigned numElem = VType->getNumElements();
|
||||||
|
|
||||||
|
unsigned numElemI = getNumScalarElements(IType);
|
||||||
|
unsigned numElemJ = getNumScalarElements(JType);
|
||||||
|
|
||||||
|
if (IType->isVectorTy()) {
|
||||||
|
std::vector<Constant *> Mask1(numElemI), Mask2(numElemI);
|
||||||
|
for (unsigned v = 0; v < numElemI; ++v) {
|
||||||
|
Mask1[v] = ConstantInt::get(Type::getInt32Ty(Context), v);
|
||||||
|
Mask2[v] = ConstantInt::get(Type::getInt32Ty(Context), numElemJ + v);
|
||||||
|
}
|
||||||
|
|
||||||
|
K1 = new ShuffleVectorInst(K, UndefValue::get(VType),
|
||||||
|
ConstantVector::get(Mask1),
|
||||||
|
getReplacementName(K, false, 1));
|
||||||
|
} else {
|
||||||
|
Value *CV0 = ConstantInt::get(Type::getInt32Ty(Context), 0);
|
||||||
|
K1 = ExtractElementInst::Create(K, CV0, getReplacementName(K, false, 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (JType->isVectorTy()) {
|
||||||
|
std::vector<Constant *> Mask1(numElemJ), Mask2(numElemJ);
|
||||||
|
for (unsigned v = 0; v < numElemJ; ++v) {
|
||||||
|
Mask1[v] = ConstantInt::get(Type::getInt32Ty(Context), v);
|
||||||
|
Mask2[v] = ConstantInt::get(Type::getInt32Ty(Context), numElemI + v);
|
||||||
|
}
|
||||||
|
|
||||||
|
K2 = new ShuffleVectorInst(K, UndefValue::get(VType),
|
||||||
|
ConstantVector::get(Mask2),
|
||||||
|
getReplacementName(K, false, 2));
|
||||||
|
} else {
|
||||||
|
Value *CV1 = ConstantInt::get(Type::getInt32Ty(Context), numElem - 1);
|
||||||
|
K2 = ExtractElementInst::Create(K, CV1, getReplacementName(K, false, 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
K1->insertAfter(K);
|
||||||
|
K2->insertAfter(K1);
|
||||||
|
InsertionPt = K2;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Move all uses of the function I (including pairing-induced uses) after J.
|
// Move all uses of the function I (including pairing-induced uses) after J.
|
||||||
|
|
Loading…
Reference in New Issue