mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 04:32:44 +01:00
Update some currently-disabled code, preparing for eventual use.
llvm-svn: 131663
This commit is contained in:
parent
0ed99ae9e9
commit
a68d5a99c0
@ -1728,19 +1728,20 @@ bool TargetLowering::SimplifyDemandedBits(SDValue Op,
|
||||
#if 0
|
||||
// If this is an FP->Int bitcast and if the sign bit is the only thing that
|
||||
// is demanded, turn this into a FGETSIGN.
|
||||
if (NewMask == EVT::getIntegerVTSignBit(Op.getValueType()) &&
|
||||
MVT::isFloatingPoint(Op.getOperand(0).getValueType()) &&
|
||||
!MVT::isVector(Op.getOperand(0).getValueType())) {
|
||||
if (NewMask == APInt::getSignBit(Op.getValueType().getSizeInBits()) &&
|
||||
Op.getOperand(0).getValueType().isFloatingPoint() &&
|
||||
!Op.getOperand(0).getValueType().isVector()) {
|
||||
// Only do this xform if FGETSIGN is valid or if before legalize.
|
||||
if (!TLO.AfterLegalize ||
|
||||
if (TLO.isBeforeLegalize() ||
|
||||
isOperationLegal(ISD::FGETSIGN, Op.getValueType())) {
|
||||
// Make a FGETSIGN + SHL to move the sign bit into the appropriate
|
||||
// place. We expect the SHL to be eliminated by other optimizations.
|
||||
SDValue Sign = TLO.DAG.getNode(ISD::FGETSIGN, Op.getValueType(),
|
||||
SDValue Sign = TLO.DAG.getNode(ISD::FGETSIGN, dl, Op.getValueType(),
|
||||
Op.getOperand(0));
|
||||
unsigned ShVal = Op.getValueType().getSizeInBits()-1;
|
||||
SDValue ShAmt = TLO.DAG.getConstant(ShVal, getShiftAmountTy());
|
||||
return TLO.CombineTo(Op, TLO.DAG.getNode(ISD::SHL, Op.getValueType(),
|
||||
return TLO.CombineTo(Op, TLO.DAG.getNode(ISD::SHL, dl,
|
||||
Op.getValueType(),
|
||||
Sign, ShAmt));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user