mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
[DAG] SelectionDAG.cpp - breakup if-else chains where each block returns. NFCI.
Match style guide that requests that if+return blocks are separate.
This commit is contained in:
parent
23f47cc464
commit
a482e5c5af
@ -145,7 +145,8 @@ bool ISD::isConstantSplatVector(const SDNode *N, APInt &SplatVal) {
|
||||
if (auto *Op0 = dyn_cast<ConstantSDNode>(N->getOperand(0))) {
|
||||
SplatVal = Op0->getAPIntValue().truncOrSelf(EltSize);
|
||||
return true;
|
||||
} else if (auto *Op0 = dyn_cast<ConstantFPSDNode>(N->getOperand(0))) {
|
||||
}
|
||||
if (auto *Op0 = dyn_cast<ConstantFPSDNode>(N->getOperand(0))) {
|
||||
SplatVal = Op0->getValueAPF().bitcastToAPInt().truncOrSelf(EltSize);
|
||||
return true;
|
||||
}
|
||||
@ -1528,17 +1529,17 @@ SDValue SelectionDAG::getConstantFP(double Val, const SDLoc &DL, EVT VT,
|
||||
EVT EltVT = VT.getScalarType();
|
||||
if (EltVT == MVT::f32)
|
||||
return getConstantFP(APFloat((float)Val), DL, VT, isTarget);
|
||||
else if (EltVT == MVT::f64)
|
||||
if (EltVT == MVT::f64)
|
||||
return getConstantFP(APFloat(Val), DL, VT, isTarget);
|
||||
else if (EltVT == MVT::f80 || EltVT == MVT::f128 || EltVT == MVT::ppcf128 ||
|
||||
EltVT == MVT::f16 || EltVT == MVT::bf16) {
|
||||
if (EltVT == MVT::f80 || EltVT == MVT::f128 || EltVT == MVT::ppcf128 ||
|
||||
EltVT == MVT::f16 || EltVT == MVT::bf16) {
|
||||
bool Ignored;
|
||||
APFloat APF = APFloat(Val);
|
||||
APF.convert(EVTToAPFloatSemantics(EltVT), APFloat::rmNearestTiesToEven,
|
||||
&Ignored);
|
||||
return getConstantFP(APF, DL, VT, isTarget);
|
||||
} else
|
||||
llvm_unreachable("Unsupported type in getConstantFP");
|
||||
}
|
||||
llvm_unreachable("Unsupported type in getConstantFP");
|
||||
}
|
||||
|
||||
SDValue SelectionDAG::getGlobalAddress(const GlobalValue *GV, const SDLoc &DL,
|
||||
@ -4644,9 +4645,9 @@ SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
|
||||
return getConstant((uint16_t)V.bitcastToAPInt().getZExtValue(), DL, VT);
|
||||
if (VT == MVT::i16 && C->getValueType(0) == MVT::bf16)
|
||||
return getConstant((uint16_t)V.bitcastToAPInt().getZExtValue(), DL, VT);
|
||||
else if (VT == MVT::i32 && C->getValueType(0) == MVT::f32)
|
||||
if (VT == MVT::i32 && C->getValueType(0) == MVT::f32)
|
||||
return getConstant((uint32_t)V.bitcastToAPInt().getZExtValue(), DL, VT);
|
||||
else if (VT == MVT::i64 && C->getValueType(0) == MVT::f64)
|
||||
if (VT == MVT::i64 && C->getValueType(0) == MVT::f64)
|
||||
return getConstant(V.bitcastToAPInt().getZExtValue(), DL, VT);
|
||||
break;
|
||||
case ISD::FP_TO_FP16: {
|
||||
@ -4767,7 +4768,7 @@ SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
|
||||
"Invalid sext node, dst < src!");
|
||||
if (OpOpcode == ISD::SIGN_EXTEND || OpOpcode == ISD::ZERO_EXTEND)
|
||||
return getNode(OpOpcode, DL, VT, Operand.getOperand(0));
|
||||
else if (OpOpcode == ISD::UNDEF)
|
||||
if (OpOpcode == ISD::UNDEF)
|
||||
// sext(undef) = 0, because the top bits will all be the same.
|
||||
return getConstant(0, DL, VT);
|
||||
break;
|
||||
@ -4786,7 +4787,7 @@ SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
|
||||
"Invalid zext node, dst < src!");
|
||||
if (OpOpcode == ISD::ZERO_EXTEND) // (zext (zext x)) -> (zext x)
|
||||
return getNode(ISD::ZERO_EXTEND, DL, VT, Operand.getOperand(0));
|
||||
else if (OpOpcode == ISD::UNDEF)
|
||||
if (OpOpcode == ISD::UNDEF)
|
||||
// zext(undef) = 0, because the top bits will be zero.
|
||||
return getConstant(0, DL, VT);
|
||||
break;
|
||||
@ -4808,7 +4809,7 @@ SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
|
||||
OpOpcode == ISD::ANY_EXTEND)
|
||||
// (ext (zext x)) -> (zext x) and (ext (sext x)) -> (sext x)
|
||||
return getNode(OpOpcode, DL, VT, Operand.getOperand(0));
|
||||
else if (OpOpcode == ISD::UNDEF)
|
||||
if (OpOpcode == ISD::UNDEF)
|
||||
return getUNDEF(VT);
|
||||
|
||||
// (ext (trunc x)) -> x
|
||||
@ -5695,10 +5696,8 @@ SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
|
||||
if (N1Op2C->getZExtValue() == N2C->getZExtValue()) {
|
||||
if (VT == N1.getOperand(1).getValueType())
|
||||
return N1.getOperand(1);
|
||||
else
|
||||
return getSExtOrTrunc(N1.getOperand(1), DL, VT);
|
||||
return getSExtOrTrunc(N1.getOperand(1), DL, VT);
|
||||
}
|
||||
|
||||
return getNode(ISD::EXTRACT_VECTOR_ELT, DL, VT, N1.getOperand(0), N2);
|
||||
}
|
||||
}
|
||||
@ -6116,17 +6115,17 @@ static SDValue getMemsetStringVal(EVT VT, const SDLoc &dl, SelectionDAG &DAG,
|
||||
if (Slice.Array == nullptr) {
|
||||
if (VT.isInteger())
|
||||
return DAG.getConstant(0, dl, VT);
|
||||
else if (VT == MVT::f32 || VT == MVT::f64 || VT == MVT::f128)
|
||||
if (VT == MVT::f32 || VT == MVT::f64 || VT == MVT::f128)
|
||||
return DAG.getConstantFP(0.0, dl, VT);
|
||||
else if (VT.isVector()) {
|
||||
if (VT.isVector()) {
|
||||
unsigned NumElts = VT.getVectorNumElements();
|
||||
MVT EltVT = (VT.getVectorElementType() == MVT::f32) ? MVT::i32 : MVT::i64;
|
||||
return DAG.getNode(ISD::BITCAST, dl, VT,
|
||||
DAG.getConstant(0, dl,
|
||||
EVT::getVectorVT(*DAG.getContext(),
|
||||
EltVT, NumElts)));
|
||||
} else
|
||||
llvm_unreachable("Expected type!");
|
||||
}
|
||||
llvm_unreachable("Expected type!");
|
||||
}
|
||||
|
||||
assert(!VT.isVector() && "Can't handle vector type here!");
|
||||
@ -9571,11 +9570,9 @@ const EVT *SDNode::getValueTypeList(EVT VT) {
|
||||
if (VT.isExtended()) {
|
||||
sys::SmartScopedLock<true> Lock(*VTMutex);
|
||||
return &(*EVTs->insert(VT).first);
|
||||
} else {
|
||||
assert(VT.getSimpleVT() < MVT::LAST_VALUETYPE &&
|
||||
"Value type out of range!");
|
||||
return &SimpleVTArray->VTs[VT.getSimpleVT().SimpleTy];
|
||||
}
|
||||
assert(VT.getSimpleVT() < MVT::LAST_VALUETYPE && "Value type out of range!");
|
||||
return &SimpleVTArray->VTs[VT.getSimpleVT().SimpleTy];
|
||||
}
|
||||
|
||||
/// hasNUsesOfValue - Return true if there are exactly NUSES uses of the
|
||||
|
Loading…
Reference in New Issue
Block a user