summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2011-11-09 22:25:12 +0000
committerEli Friedman <eli.friedman@gmail.com>2011-11-09 22:25:12 +0000
commit53218b6fcc4b87f4516382dc30777f47e6d53017 (patch)
tree27b5f8ec48b3fcc0a5b17191992ae378d43c1f97 /llvm/lib/CodeGen/SelectionDAG
parent2f27fab6ed13c94b6a73170a798ea99a9d1e0b94 (diff)
downloadbcm5719-llvm-53218b6fcc4b87f4516382dc30777f47e6d53017.tar.gz
bcm5719-llvm-53218b6fcc4b87f4516382dc30777f47e6d53017.zip
Add check so we don't try to perform an impossible transformation. Fixes issue from PR11319.
llvm-svn: 144216
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
index 3596d6cdf64..d7bad4385e6 100644
--- a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
@@ -1783,7 +1783,8 @@ bool TargetLowering::SimplifyDemandedBits(SDValue Op,
case ISD::BITCAST:
// If this is an FP->Int bitcast and if the sign bit is the only
// thing demanded, turn this into a FGETSIGN.
- if (!Op.getOperand(0).getValueType().isVector() &&
+ if (!Op.getValueType().isVector() &&
+ !Op.getOperand(0).getValueType().isVector() &&
NewMask == APInt::getSignBit(Op.getValueType().getSizeInBits()) &&
Op.getOperand(0).getValueType().isFloatingPoint()) {
bool OpVTLegal = isOperationLegalOrCustom(ISD::FGETSIGN, Op.getValueType());
OpenPOWER on IntegriCloud