diff options
author | Nadav Rotem <nrotem@apple.com> | 2012-12-14 21:20:37 +0000 |
---|---|---|
committer | Nadav Rotem <nrotem@apple.com> | 2012-12-14 21:20:37 +0000 |
commit | 0a1e914f8f276cd854e23f7c4d21620f2dbe533c (patch) | |
tree | e265b6c191527f9f34cca61a585956ee86ada50e /lib/Target/X86 | |
parent | 58d15b5b21d47e3f8a362982af181a0093b32a3c (diff) | |
download | external_llvm-0a1e914f8f276cd854e23f7c4d21620f2dbe533c.zip external_llvm-0a1e914f8f276cd854e23f7c4d21620f2dbe533c.tar.gz external_llvm-0a1e914f8f276cd854e23f7c4d21620f2dbe533c.tar.bz2 |
TypeLegalizer: Do not generate target specific nodes with illegal types, because we cant type-legalize them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170245 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86')
-rw-r--r-- | lib/Target/X86/X86ISelLowering.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp index 23301b6..d4ee985 100644 --- a/lib/Target/X86/X86ISelLowering.cpp +++ b/lib/Target/X86/X86ISelLowering.cpp @@ -11742,6 +11742,7 @@ void X86TargetLowering::ReplaceNodeResults(SDNode *N, SmallVectorImpl<SDValue>&Results, SelectionDAG &DAG) const { DebugLoc dl = N->getDebugLoc(); + const TargetLowering &TLI = DAG.getTargetLoweringInfo(); switch (N->getOpcode()) { default: llvm_unreachable("Do not know how to custom type legalize this operation!"); @@ -11791,6 +11792,8 @@ void X86TargetLowering::ReplaceNodeResults(SDNode *N, return; } case ISD::FP_ROUND: { + if (!TLI.isTypeLegal(N->getOperand(0).getValueType())) + return; SDValue V = DAG.getNode(X86ISD::VFPROUND, dl, MVT::v4f32, N->getOperand(0)); Results.push_back(V); return; |