mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-13 14:47:00 +00:00
Add code to RemapOperand() to handle Instruction::ExtractElement and
Instruction::InsertElement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27477 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
85c0965db1
commit
39c61fd527
@ -305,6 +305,18 @@ static Value *RemapOperand(const Value *In,
|
||||
ValueMap)));
|
||||
|
||||
Result = ConstantExpr::getGetElementPtr(cast<Constant>(Ptr), Indices);
|
||||
} else if (CE->getOpcode() == Instruction::ExtractElement) {
|
||||
Value *Ptr = RemapOperand(CE->getOperand(0), ValueMap);
|
||||
Value *Idx = RemapOperand(CE->getOperand(1), ValueMap);
|
||||
Result = ConstantExpr::getExtractElement(cast<Constant>(Ptr),
|
||||
cast<Constant>(Idx));
|
||||
} else if (CE->getOpcode() == Instruction::InsertElement) {
|
||||
Value *Ptr = RemapOperand(CE->getOperand(0), ValueMap);
|
||||
Value *Elt = RemapOperand(CE->getOperand(1), ValueMap);
|
||||
Value *Idx = RemapOperand(CE->getOperand(2), ValueMap);
|
||||
Result = ConstantExpr::getInsertElement(cast<Constant>(Ptr),
|
||||
cast<Constant>(Elt),
|
||||
cast<Constant>(Idx));
|
||||
} else if (CE->getNumOperands() == 1) {
|
||||
// Cast instruction
|
||||
assert(CE->getOpcode() == Instruction::Cast);
|
||||
|
Loading…
Reference in New Issue
Block a user