@@ -132,9 +132,8 @@ bool ConstantFPSDNode::isValueValidForType(EVT VT,
132132 // convert modifies in place, so make a copy.
133133 APFloat Val2 = APFloat (Val);
134134 bool losesInfo;
135- (void ) Val2.convert (SelectionDAG::EVTToAPFloatSemantics (VT),
136- APFloat::rmNearestTiesToEven,
137- &losesInfo);
135+ (void )Val2.convert (VT.getFltSemantics (), APFloat::rmNearestTiesToEven,
136+ &losesInfo);
138137 return !losesInfo;
139138}
140139
@@ -1826,7 +1825,7 @@ SDValue SelectionDAG::getConstantFP(double Val, const SDLoc &DL, EVT VT,
18261825 EltVT == MVT::f16 || EltVT == MVT::bf16 ) {
18271826 bool Ignored;
18281827 APFloat APF = APFloat (Val);
1829- APF.convert (EVTToAPFloatSemantics ( EltVT), APFloat::rmNearestTiesToEven,
1828+ APF.convert (EltVT. getFltSemantics ( ), APFloat::rmNearestTiesToEven,
18301829 &Ignored);
18311830 return getConstantFP (APF, DL, VT, isTarget);
18321831 }
@@ -6447,11 +6446,10 @@ SDValue SelectionDAG::FoldConstantArithmetic(unsigned Opcode, const SDLoc &DL,
64476446 C->isOpaque ());
64486447 case ISD::UINT_TO_FP:
64496448 case ISD::SINT_TO_FP: {
6450- APFloat apf (EVTToAPFloatSemantics (VT),
6451- APInt::getZero (VT.getSizeInBits ()));
6452- (void )apf.convertFromAPInt (Val, Opcode == ISD::SINT_TO_FP,
6449+ APFloat FPV (VT.getFltSemantics (), APInt::getZero (VT.getSizeInBits ()));
6450+ (void )FPV.convertFromAPInt (Val, Opcode == ISD::SINT_TO_FP,
64536451 APFloat::rmNearestTiesToEven);
6454- return getConstantFP (apf , DL, VT);
6452+ return getConstantFP (FPV , DL, VT);
64556453 }
64566454 case ISD::FP16_TO_FP:
64576455 case ISD::BF16_TO_FP: {
@@ -6462,8 +6460,8 @@ SDValue SelectionDAG::FoldConstantArithmetic(unsigned Opcode, const SDLoc &DL,
64626460
64636461 // This can return overflow, underflow, or inexact; we don't care.
64646462 // FIXME need to be more flexible about rounding mode.
6465- (void )FPV.convert (EVTToAPFloatSemantics (VT) ,
6466- APFloat::rmNearestTiesToEven, &Ignored);
6463+ (void )FPV.convert (VT. getFltSemantics (), APFloat::rmNearestTiesToEven ,
6464+ &Ignored);
64676465 return getConstantFP (FPV, DL, VT);
64686466 }
64696467 case ISD::STEP_VECTOR:
@@ -6515,7 +6513,7 @@ SDValue SelectionDAG::FoldConstantArithmetic(unsigned Opcode, const SDLoc &DL,
65156513 bool ignored;
65166514 // This can return overflow, underflow, or inexact; we don't care.
65176515 // FIXME need to be more flexible about rounding mode.
6518- (void )V.convert (EVTToAPFloatSemantics (VT ), APFloat::rmNearestTiesToEven,
6516+ (void )V.convert (VT. getFltSemantics ( ), APFloat::rmNearestTiesToEven,
65196517 &ignored);
65206518 return getConstantFP (V, DL, VT);
65216519 }
@@ -6814,8 +6812,8 @@ SDValue SelectionDAG::foldConstantFPMath(unsigned Opcode, const SDLoc &DL,
68146812 bool Unused;
68156813 // This can return overflow, underflow, or inexact; we don't care.
68166814 // FIXME need to be more flexible about rounding mode.
6817- (void ) C1.convert (EVTToAPFloatSemantics (VT ), APFloat::rmNearestTiesToEven,
6818- &Unused);
6815+ (void )C1.convert (VT. getFltSemantics ( ), APFloat::rmNearestTiesToEven,
6816+ &Unused);
68196817 return getConstantFP (C1, DL, VT);
68206818 }
68216819
@@ -6836,7 +6834,7 @@ SDValue SelectionDAG::foldConstantFPMath(unsigned Opcode, const SDLoc &DL,
68366834 if (N1.isUndef () && N2.isUndef ())
68376835 return getUNDEF (VT);
68386836 if (N1.isUndef () || N2.isUndef ())
6839- return getConstantFP (APFloat::getNaN (EVTToAPFloatSemantics (VT )), DL, VT);
6837+ return getConstantFP (APFloat::getNaN (VT. getFltSemantics ( )), DL, VT);
68406838 }
68416839 return SDValue ();
68426840}
@@ -7661,8 +7659,7 @@ static SDValue getMemsetValue(SDValue Value, EVT VT, SelectionDAG &DAG,
76617659 !DAG.getTargetLoweringInfo ().isLegalStoreImmediate (C->getSExtValue ());
76627660 return DAG.getConstant (Val, dl, VT, false , IsOpaque);
76637661 }
7664- return DAG.getConstantFP (APFloat (DAG.EVTToAPFloatSemantics (VT), Val), dl,
7665- VT);
7662+ return DAG.getConstantFP (APFloat (VT.getFltSemantics (), Val), dl, VT);
76667663 }
76677664
76687665 assert (Value.getValueType () == MVT::i8 && " memset with non-byte fill value?" );
@@ -11952,7 +11949,7 @@ bool llvm::isNeutralConstant(unsigned Opcode, SDNodeFlags Flags, SDValue V,
1195211949 case ISD::FMAXNUM: {
1195311950 // Neutral element for fminnum is NaN, Inf or FLT_MAX, depending on FMF.
1195411951 EVT VT = V.getValueType ();
11955- const fltSemantics &Semantics = SelectionDAG::EVTToAPFloatSemantics (VT );
11952+ const fltSemantics &Semantics = VT. getFltSemantics ( );
1195611953 APFloat NeutralAF = !Flags.hasNoNaNs ()
1195711954 ? APFloat::getQNaN (Semantics)
1195811955 : !Flags.hasNoInfs ()
@@ -13228,7 +13225,7 @@ SDValue SelectionDAG::getNeutralElement(unsigned Opcode, const SDLoc &DL,
1322813225 case ISD::FMINNUM:
1322913226 case ISD::FMAXNUM: {
1323013227 // Neutral element for fminnum is NaN, Inf or FLT_MAX, depending on FMF.
13231- const fltSemantics &Semantics = EVTToAPFloatSemantics (VT );
13228+ const fltSemantics &Semantics = VT. getFltSemantics ( );
1323213229 APFloat NeutralAF = !Flags.hasNoNaNs () ? APFloat::getQNaN (Semantics) :
1323313230 !Flags.hasNoInfs () ? APFloat::getInf (Semantics) :
1323413231 APFloat::getLargest (Semantics);
@@ -13240,7 +13237,7 @@ SDValue SelectionDAG::getNeutralElement(unsigned Opcode, const SDLoc &DL,
1324013237 case ISD::FMINIMUM:
1324113238 case ISD::FMAXIMUM: {
1324213239 // Neutral element for fminimum is Inf or FLT_MAX, depending on FMF.
13243- const fltSemantics &Semantics = EVTToAPFloatSemantics (VT );
13240+ const fltSemantics &Semantics = VT. getFltSemantics ( );
1324413241 APFloat NeutralAF = !Flags.hasNoInfs () ? APFloat::getInf (Semantics)
1324513242 : APFloat::getLargest (Semantics);
1324613243 if (Opcode == ISD::FMAXIMUM)
0 commit comments