diff options
| author | Eli Friedman <eli.friedman@gmail.com> | 2011-11-09 22:25:12 +0000 |
|---|---|---|
| committer | Eli Friedman <eli.friedman@gmail.com> | 2011-11-09 22:25:12 +0000 |
| commit | 53218b6fcc4b87f4516382dc30777f47e6d53017 (patch) | |
| tree | 27b5f8ec48b3fcc0a5b17191992ae378d43c1f97 /llvm/lib/CodeGen/SelectionDAG | |
| parent | 2f27fab6ed13c94b6a73170a798ea99a9d1e0b94 (diff) | |
| download | bcm5719-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.cpp | 3 |
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()); |

