diff options
author | Anton Korobeynikov <asl@math.spbu.ru> | 2009-08-26 17:39:40 +0000 |
---|---|---|
committer | Anton Korobeynikov <asl@math.spbu.ru> | 2009-08-26 17:39:40 +0000 |
commit | 50509fc2cbc0a9f5a4ae909dfcf9e8501c3ed8fe (patch) | |
tree | 647d1666080a91084ce05c599f4a498b5d9ee0cd /llvm/lib/CodeGen | |
parent | 5f6fc970c4ace5953be1f3cd99750fec6e59c5dc (diff) | |
download | bcm5719-llvm-50509fc2cbc0a9f5a4ae909dfcf9e8501c3ed8fe.tar.gz bcm5719-llvm-50509fc2cbc0a9f5a4ae909dfcf9e8501c3ed8fe.zip |
Add extload expansion for f128
llvm-svn: 80116
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp index 10f7b3206b7..959a9205cac 100644 --- a/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp @@ -1279,10 +1279,13 @@ SDValue SelectionDAGLegalize::LegalizeOp(SDValue Op) { break; case TargetLowering::Expand: // f64 = EXTLOAD f32 should expand to LOAD, FP_EXTEND - if (SrcVT == MVT::f32 && Node->getValueType(0) == MVT::f64) { + // f128 = EXTLOAD {f32,f64} too + if ((SrcVT == MVT::f32 && (Node->getValueType(0) == MVT::f64 || + Node->getValueType(0) == MVT::f128)) || + (SrcVT == MVT::f64 && Node->getValueType(0) == MVT::f128)) { SDValue Load = DAG.getLoad(SrcVT, dl, Tmp1, Tmp2, LD->getSrcValue(), - LD->getSrcValueOffset(), - LD->isVolatile(), LD->getAlignment()); + LD->getSrcValueOffset(), + LD->isVolatile(), LD->getAlignment()); Result = DAG.getNode(ISD::FP_EXTEND, dl, Node->getValueType(0), Load); Tmp1 = LegalizeOp(Result); // Relegalize new nodes. |