mirror of
https://github.com/RPCSX/llvm.git
synced 2025-01-15 17:07:52 +00:00
Fix a vector FP constant CSE bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37814 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
98044e4a62
commit
c908dcde45
@ -686,11 +686,16 @@ SDOperand SelectionDAG::getConstantFP(double Val, MVT::ValueType VT,
|
||||
AddNodeIDNode(ID, Opc, getVTList(EltVT), 0, 0);
|
||||
ID.AddDouble(Val);
|
||||
void *IP = 0;
|
||||
if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
|
||||
return SDOperand(E, 0);
|
||||
SDNode *N = new ConstantFPSDNode(isTarget, Val, EltVT);
|
||||
CSEMap.InsertNode(N, IP);
|
||||
AllNodes.push_back(N);
|
||||
SDNode *N = NULL;
|
||||
if ((N = CSEMap.FindNodeOrInsertPos(ID, IP)))
|
||||
if (!MVT::isVector(VT))
|
||||
return SDOperand(N, 0);
|
||||
if (!N) {
|
||||
N = new ConstantFPSDNode(isTarget, Val, EltVT);
|
||||
CSEMap.InsertNode(N, IP);
|
||||
AllNodes.push_back(N);
|
||||
}
|
||||
|
||||
SDOperand Result(N, 0);
|
||||
if (MVT::isVector(VT)) {
|
||||
SmallVector<SDOperand, 8> Ops;
|
||||
|
Loading…
x
Reference in New Issue
Block a user