diff options
author | Duncan Sands <baldrick@free.fr> | 2008-01-29 19:29:08 +0000 |
---|---|---|
committer | Duncan Sands <baldrick@free.fr> | 2008-01-29 19:29:08 +0000 |
commit | 648f880dc907faf5c05f3d79a424597b65758360 (patch) | |
tree | d3eb3648ed17555027849f4ef7dbd1cd46f76d7a /lib/CodeGen/SelectionDAG/LegalizeTypesExpand.cpp | |
parent | c69d3c94425cbdcbfe4f758e07ba083d3377a382 (diff) |
When expanding an operand, it's not the result value
type that matters but the operand type. This fixes
2008-01-08-IllegalCMP.ll which crashed with the new
legalize infrastructure because SETCC with result
type i8 and operand type i64 was being custom expanded
by the X86 backend. With this fix, the gcc build gets
as far as the first libcall.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46525 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SelectionDAG/LegalizeTypesExpand.cpp')
-rw-r--r-- | lib/CodeGen/SelectionDAG/LegalizeTypesExpand.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/CodeGen/SelectionDAG/LegalizeTypesExpand.cpp b/lib/CodeGen/SelectionDAG/LegalizeTypesExpand.cpp index ec8d6faf48..282137273d 100644 --- a/lib/CodeGen/SelectionDAG/LegalizeTypesExpand.cpp +++ b/lib/CodeGen/SelectionDAG/LegalizeTypesExpand.cpp @@ -747,8 +747,8 @@ bool DAGTypeLegalizer::ExpandOperand(SDNode *N, unsigned OpNo) { DEBUG(cerr << "Expand node operand: "; N->dump(&DAG); cerr << "\n"); SDOperand Res(0, 0); - if (TLI.getOperationAction(N->getOpcode(), N->getValueType(0)) == - TargetLowering::Custom) + if (TLI.getOperationAction(N->getOpcode(), N->getOperand(OpNo).getValueType()) + == TargetLowering::Custom) Res = TLI.LowerOperation(SDOperand(N, 0), DAG); if (Res.Val == 0) { |