[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
Nate Begeman
natebegeman at mac.com
Tue May 9 11:21:05 PDT 2006
Changes in directory llvm/lib/CodeGen/SelectionDAG:
LegalizeDAG.cpp updated: 1.371 -> 1.372
---
Log message:
Fix PR773: http://llvm.cs.uiuc.edu/PR773
---
Diffs of the changes: (+20 -2)
LegalizeDAG.cpp | 22 ++++++++++++++++++++--
1 files changed, 20 insertions(+), 2 deletions(-)
Index: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.371 llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.372
--- llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.371 Tue May 2 20:29:56 2006
+++ llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp Tue May 9 13:20:51 2006
@@ -3071,8 +3071,26 @@
case ISD::FREM:
case ISD::FCOPYSIGN:
// These operators require that their input be fp extended.
- Tmp1 = PromoteOp(Node->getOperand(0));
- Tmp2 = PromoteOp(Node->getOperand(1));
+ switch (getTypeAction(Node->getOperand(0).getValueType())) {
+ case Legal:
+ Tmp1 = LegalizeOp(Node->getOperand(0));
+ break;
+ case Promote:
+ Tmp1 = PromoteOp(Node->getOperand(0));
+ break;
+ case Expand:
+ assert(0 && "not implemented");
+ }
+ switch (getTypeAction(Node->getOperand(1).getValueType())) {
+ case Legal:
+ Tmp2 = LegalizeOp(Node->getOperand(1));
+ break;
+ case Promote:
+ Tmp2 = PromoteOp(Node->getOperand(1));
+ break;
+ case Expand:
+ assert(0 && "not implemented");
+ }
Result = DAG.getNode(Node->getOpcode(), NVT, Tmp1, Tmp2);
// Perform FP_ROUND: this is probably overly pessimistic.
More information about the llvm-commits
mailing list