mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-03 17:31:50 +00:00
Fix Transforms/InstCombine/2006-03-30-ExtractElement.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27261 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
fc542a6466
commit
df084ff78b
@ -6704,9 +6704,13 @@ Instruction *InstCombiner::visitExtractElementInst(ExtractElementInst &EI) {
|
||||
if (IE->getOperand(2) == EI.getOperand(1))
|
||||
return ReplaceInstUsesWith(EI, IE->getOperand(1));
|
||||
// If the inserted and extracted elements are constants, they must not
|
||||
// be the same value, replace with the pre-inserted value.
|
||||
if (isa<Constant>(IE->getOperand(2)) && isa<Constant>(EI.getOperand(1)))
|
||||
return ReplaceInstUsesWith(EI, IE->getOperand(0));
|
||||
// be the same value, extract from the pre-inserted value instead.
|
||||
if (isa<Constant>(IE->getOperand(2)) &&
|
||||
isa<Constant>(EI.getOperand(1))) {
|
||||
AddUsesToWorkList(EI);
|
||||
EI.setOperand(0, IE->getOperand(0));
|
||||
return &EI;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user