@@ -216,10 +216,10 @@ static SDValue getCopyFromParts(SelectionDAG &DAG, const SDLoc &DL,
216
216
std::swap (Lo, Hi);
217
217
EVT TotalVT = EVT::getIntegerVT (*DAG.getContext (), NumParts * PartBits);
218
218
Hi = DAG.getNode (ISD::ANY_EXTEND, DL, TotalVT, Hi);
219
- Hi =
220
- DAG.getNode (ISD::SHL , DL, TotalVT, Hi ,
221
- DAG. getConstant (Lo. getValueSizeInBits (), DL,
222
- TLI. getPointerTy ( DAG.getDataLayout ())));
219
+ Hi = DAG. getNode (ISD::SHL, DL, TotalVT, Hi,
220
+ DAG.getConstant (Lo. getValueSizeInBits () , DL,
221
+ TLI. getShiftAmountTy (
222
+ TotalVT, DAG.getDataLayout ())));
223
223
Lo = DAG.getNode (ISD::ZERO_EXTEND, DL, TotalVT, Lo);
224
224
Val = DAG.getNode (ISD::OR, DL, TotalVT, Lo, Hi);
225
225
}
@@ -4876,7 +4876,8 @@ static SDValue GetExponent(SelectionDAG &DAG, SDValue Op,
4876
4876
DAG.getConstant (0x7f800000 , dl, MVT::i32 ));
4877
4877
SDValue t1 = DAG.getNode (
4878
4878
ISD::SRL, dl, MVT::i32 , t0,
4879
- DAG.getConstant (23 , dl, TLI.getPointerTy (DAG.getDataLayout ())));
4879
+ DAG.getConstant (23 , dl,
4880
+ TLI.getShiftAmountTy (MVT::i32 , DAG.getDataLayout ())));
4880
4881
SDValue t2 = DAG.getNode (ISD::SUB, dl, MVT::i32 , t1,
4881
4882
DAG.getConstant (127 , dl, MVT::i32 ));
4882
4883
return DAG.getNode (ISD::SINT_TO_FP, dl, MVT::f32 , t2);
@@ -4901,10 +4902,11 @@ static SDValue getLimitedPrecisionExp2(SDValue t0, const SDLoc &dl,
4901
4902
SDValue X = DAG.getNode (ISD::FSUB, dl, MVT::f32 , t0, t1);
4902
4903
4903
4904
// IntegerPartOfX <<= 23;
4904
- IntegerPartOfX = DAG.getNode (
4905
- ISD::SHL, dl, MVT::i32 , IntegerPartOfX,
4906
- DAG.getConstant (23 , dl, DAG.getTargetLoweringInfo ().getPointerTy (
4907
- DAG.getDataLayout ())));
4905
+ IntegerPartOfX =
4906
+ DAG.getNode (ISD::SHL, dl, MVT::i32 , IntegerPartOfX,
4907
+ DAG.getConstant (23 , dl,
4908
+ DAG.getTargetLoweringInfo ().getShiftAmountTy (
4909
+ MVT::i32 , DAG.getDataLayout ())));
4908
4910
4909
4911
SDValue TwoToFractionalPartOfX;
4910
4912
if (LimitFloatPrecision <= 6 ) {
@@ -5798,16 +5800,18 @@ void SelectionDAGBuilder::visitIntrinsicCall(const CallInst &I,
5798
5800
case Intrinsic::vacopy: visitVACopy (I); return ;
5799
5801
case Intrinsic::returnaddress:
5800
5802
setValue (&I, DAG.getNode (ISD::RETURNADDR, sdl,
5801
- TLI.getPointerTy (DAG.getDataLayout ()),
5803
+ TLI.getValueType (DAG.getDataLayout (), I. getType ()),
5802
5804
getValue (I.getArgOperand (0 ))));
5803
5805
return ;
5804
5806
case Intrinsic::addressofreturnaddress:
5805
- setValue (&I, DAG.getNode (ISD::ADDROFRETURNADDR, sdl,
5806
- TLI.getPointerTy (DAG.getDataLayout ())));
5807
+ setValue (&I,
5808
+ DAG.getNode (ISD::ADDROFRETURNADDR, sdl,
5809
+ TLI.getValueType (DAG.getDataLayout (), I.getType ())));
5807
5810
return ;
5808
5811
case Intrinsic::sponentry:
5809
- setValue (&I, DAG.getNode (ISD::SPONENTRY, sdl,
5810
- TLI.getFrameIndexTy (DAG.getDataLayout ())));
5812
+ setValue (&I,
5813
+ DAG.getNode (ISD::SPONENTRY, sdl,
5814
+ TLI.getValueType (DAG.getDataLayout (), I.getType ())));
5811
5815
return ;
5812
5816
case Intrinsic::frameaddress:
5813
5817
setValue (&I, DAG.getNode (ISD::FRAMEADDR, sdl,
@@ -6847,7 +6851,8 @@ void SelectionDAGBuilder::visitIntrinsicCall(const CallInst &I,
6847
6851
}
6848
6852
case Intrinsic::invariant_start:
6849
6853
// Discard region information.
6850
- setValue (&I, DAG.getUNDEF (TLI.getPointerTy (DAG.getDataLayout ())));
6854
+ setValue (&I,
6855
+ DAG.getUNDEF (TLI.getValueType (DAG.getDataLayout (), I.getType ())));
6851
6856
return ;
6852
6857
case Intrinsic::invariant_end:
6853
6858
// Discard region information.
0 commit comments