@@ -585,8 +585,7 @@ void SelectionDAGLegalize::LegalizeStoreOps(SDNode *Node) {
585585 DAG.getMemBasePlusOffset (Ptr, TypeSize::getFixed (IncrementSize), dl);
586586 Hi = DAG.getNode (
587587 ISD::SRL, dl, Value.getValueType (), Value,
588- DAG.getConstant (RoundWidth, dl,
589- TLI.getShiftAmountTy (Value.getValueType (), DL)));
588+ DAG.getShiftAmountConstant (RoundWidth, Value.getValueType (), dl));
590589 Hi = DAG.getTruncStore (Chain, dl, Hi, Ptr,
591590 ST->getPointerInfo ().getWithOffset (IncrementSize),
592591 ExtraVT, ST->getBaseAlign (), MMOFlags, AAInfo);
@@ -596,8 +595,7 @@ void SelectionDAGLegalize::LegalizeStoreOps(SDNode *Node) {
596595 // Store the top RoundWidth bits.
597596 Hi = DAG.getNode (
598597 ISD::SRL, dl, Value.getValueType (), Value,
599- DAG.getConstant (ExtraWidth, dl,
600- TLI.getShiftAmountTy (Value.getValueType (), DL)));
598+ DAG.getShiftAmountConstant (ExtraWidth, Value.getValueType (), dl));
601599 Hi = DAG.getTruncStore (Chain, dl, Hi, Ptr, ST->getPointerInfo (), RoundVT,
602600 ST->getBaseAlign (), MMOFlags, AAInfo);
603601
@@ -816,8 +814,7 @@ void SelectionDAGLegalize::LegalizeLoadOps(SDNode *Node) {
816814 // Move the top bits to the right place.
817815 Hi = DAG.getNode (
818816 ISD::SHL, dl, Hi.getValueType (), Hi,
819- DAG.getConstant (RoundWidth, dl,
820- TLI.getShiftAmountTy (Hi.getValueType (), DL)));
817+ DAG.getShiftAmountConstant (RoundWidth, Hi.getValueType (), dl));
821818
822819 // Join the hi and lo parts.
823820 Value = DAG.getNode (ISD::OR, dl, Node->getValueType (0 ), Lo, Hi);
@@ -845,8 +842,7 @@ void SelectionDAGLegalize::LegalizeLoadOps(SDNode *Node) {
845842 // Move the top bits to the right place.
846843 Hi = DAG.getNode (
847844 ISD::SHL, dl, Hi.getValueType (), Hi,
848- DAG.getConstant (ExtraWidth, dl,
849- TLI.getShiftAmountTy (Hi.getValueType (), DL)));
845+ DAG.getShiftAmountConstant (ExtraWidth, Hi.getValueType (), dl));
850846
851847 // Join the hi and lo parts.
852848 Value = DAG.getNode (ISD::OR, dl, Node->getValueType (0 ), Lo, Hi);
@@ -2767,8 +2763,7 @@ SDValue SelectionDAGLegalize::ExpandLegalINT_TO_FP(SDNode *Node,
27672763 SDValue SignBitTest = DAG.getSetCC (
27682764 dl, SetCCVT, Op0, DAG.getConstant (0 , dl, SrcVT), ISD::SETLT);
27692765
2770- EVT ShiftVT = TLI.getShiftAmountTy (SrcVT, DAG.getDataLayout ());
2771- SDValue ShiftConst = DAG.getConstant (1 , dl, ShiftVT);
2766+ SDValue ShiftConst = DAG.getShiftAmountConstant (1 , SrcVT, dl);
27722767 SDValue Shr = DAG.getNode (ISD::SRL, dl, SrcVT, Op0, ShiftConst);
27732768 SDValue AndConst = DAG.getConstant (1 , dl, SrcVT);
27742769 SDValue And = DAG.getNode (ISD::AND, dl, SrcVT, Op0, AndConst);
@@ -3350,10 +3345,8 @@ bool SelectionDAGLegalize::ExpandNode(SDNode *Node) {
33503345 } else {
33513346 Op = DAG.getAnyExtOrTrunc (Op, dl, MVT::i32 );
33523347 }
3353- Op = DAG.getNode (
3354- ISD::SHL, dl, MVT::i32 , Op,
3355- DAG.getConstant (16 , dl,
3356- TLI.getShiftAmountTy (MVT::i32 , DAG.getDataLayout ())));
3348+ Op = DAG.getNode (ISD::SHL, dl, MVT::i32 , Op,
3349+ DAG.getShiftAmountConstant (16 , MVT::i32 , dl));
33573350 Op = DAG.getNode (ISD::BITCAST, dl, MVT::f32 , Op);
33583351 // Add fp_extend in case the output is bigger than f32.
33593352 if (Node->getValueType (0 ) != MVT::f32 )
@@ -3370,10 +3363,9 @@ bool SelectionDAGLegalize::ExpandNode(SDNode *Node) {
33703363 if (!DAG.isKnownNeverSNaN (Op)) {
33713364 Op = DAG.getNode (ISD::FCANONICALIZE, dl, MVT::f32 , Op, Node->getFlags ());
33723365 }
3373- Op = DAG.getNode (
3374- ISD::SRL, dl, MVT::i32 , DAG.getNode (ISD::BITCAST, dl, MVT::i32 , Op),
3375- DAG.getConstant (16 , dl,
3376- TLI.getShiftAmountTy (MVT::i32 , DAG.getDataLayout ())));
3366+ Op = DAG.getNode (ISD::SRL, dl, MVT::i32 ,
3367+ DAG.getNode (ISD::BITCAST, dl, MVT::i32 , Op),
3368+ DAG.getShiftAmountConstant (16 , MVT::i32 , dl));
33773369 // The result of this node can be bf16 or an integer type in case bf16 is
33783370 // not supported on the target and was softened to i16 for storage.
33793371 if (Node->getValueType (0 ) == MVT::bf16 ) {
@@ -3431,13 +3423,11 @@ bool SelectionDAGLegalize::ExpandNode(SDNode *Node) {
34313423
34323424 // NOTE: we could fall back on load/store here too for targets without
34333425 // SRA. However, it is doubtful that any exist.
3434- EVT ShiftAmountTy = TLI.getShiftAmountTy (VT, DAG.getDataLayout ());
34353426 unsigned BitsDiff = VT.getScalarSizeInBits () -
34363427 ExtraVT.getScalarSizeInBits ();
3437- SDValue ShiftCst = DAG.getConstant (BitsDiff, dl, ShiftAmountTy);
3438- Tmp1 = DAG.getNode (ISD::SHL, dl, Node->getValueType (0 ),
3439- Node->getOperand (0 ), ShiftCst);
3440- Tmp1 = DAG.getNode (ISD::SRA, dl, Node->getValueType (0 ), Tmp1, ShiftCst);
3428+ SDValue ShiftCst = DAG.getShiftAmountConstant (BitsDiff, VT, dl);
3429+ Tmp1 = DAG.getNode (ISD::SHL, dl, VT, Node->getOperand (0 ), ShiftCst);
3430+ Tmp1 = DAG.getNode (ISD::SRA, dl, VT, Tmp1, ShiftCst);
34413431 Results.push_back (Tmp1);
34423432 break ;
34433433 }
@@ -3666,11 +3656,9 @@ bool SelectionDAGLegalize::ExpandNode(SDNode *Node) {
36663656 EVT OpTy = Node->getOperand (0 ).getValueType ();
36673657 if (Node->getConstantOperandVal (1 )) {
36683658 // 1 -> Hi
3669- Tmp1 = DAG.getNode (ISD::SRL, dl, OpTy, Node->getOperand (0 ),
3670- DAG.getConstant (OpTy.getSizeInBits () / 2 , dl,
3671- TLI.getShiftAmountTy (
3672- Node->getOperand (0 ).getValueType (),
3673- DAG.getDataLayout ())));
3659+ Tmp1 = DAG.getNode (
3660+ ISD::SRL, dl, OpTy, Node->getOperand (0 ),
3661+ DAG.getShiftAmountConstant (OpTy.getSizeInBits () / 2 , OpTy, dl));
36743662 Tmp1 = DAG.getNode (ISD::TRUNCATE, dl, Node->getValueType (0 ), Tmp1);
36753663 } else {
36763664 // 0 -> Lo
@@ -3950,9 +3938,8 @@ bool SelectionDAGLegalize::ExpandNode(SDNode *Node) {
39503938 for (unsigned i = 0 ; i < 2 ; ++i) {
39513939 SDValue Lo = DAG.getNode (ISD::ZERO_EXTEND, dl, VT, Halves[2 * i]);
39523940 SDValue Hi = DAG.getNode (ISD::ANY_EXTEND, dl, VT, Halves[2 * i + 1 ]);
3953- SDValue Shift = DAG.getConstant (
3954- HalfType.getScalarSizeInBits (), dl,
3955- TLI.getShiftAmountTy (HalfType, DAG.getDataLayout ()));
3941+ SDValue Shift =
3942+ DAG.getShiftAmountConstant (HalfType.getScalarSizeInBits (), VT, dl);
39563943 Hi = DAG.getNode (ISD::SHL, dl, VT, Hi, Shift);
39573944 Results.push_back (DAG.getNode (ISD::OR, dl, VT, Lo, Hi));
39583945 }
@@ -3999,8 +3986,7 @@ bool SelectionDAGLegalize::ExpandNode(SDNode *Node) {
39993986 Lo = DAG.getNode (ISD::ZERO_EXTEND, dl, VT, Lo);
40003987 Hi = DAG.getNode (ISD::ANY_EXTEND, dl, VT, Hi);
40013988 SDValue Shift =
4002- DAG.getConstant (HalfType.getSizeInBits (), dl,
4003- TLI.getShiftAmountTy (HalfType, DAG.getDataLayout ()));
3989+ DAG.getShiftAmountConstant (HalfType.getSizeInBits (), VT, dl);
40043990 Hi = DAG.getNode (ISD::SHL, dl, VT, Hi, Shift);
40053991 Results.push_back (DAG.getNode (ISD::OR, dl, VT, Lo, Hi));
40063992 }
@@ -4130,8 +4116,7 @@ bool SelectionDAGLegalize::ExpandNode(SDNode *Node) {
41304116 Tmp2 = DAG.getNode (ISD::ANY_EXTEND, dl, PairTy, Node->getOperand (1 ));
41314117 Tmp2 = DAG.getNode (
41324118 ISD::SHL, dl, PairTy, Tmp2,
4133- DAG.getConstant (PairTy.getSizeInBits () / 2 , dl,
4134- TLI.getShiftAmountTy (PairTy, DAG.getDataLayout ())));
4119+ DAG.getShiftAmountConstant (PairTy.getSizeInBits () / 2 , PairTy, dl));
41354120 Results.push_back (DAG.getNode (ISD::OR, dl, PairTy, Tmp1, Tmp2));
41364121 break ;
41374122 }
@@ -5368,10 +5353,8 @@ void SelectionDAGLegalize::PromoteNode(SDNode *Node) {
53685353 unsigned DiffBits = NVT.getSizeInBits () - OVT.getSizeInBits ();
53695354 Tmp1 = DAG.getNode (ISD::ZERO_EXTEND, dl, NVT, Node->getOperand (0 ));
53705355 Tmp1 = DAG.getNode (Node->getOpcode (), dl, NVT, Tmp1);
5371- Tmp1 = DAG.getNode (
5372- ISD::SRL, dl, NVT, Tmp1,
5373- DAG.getConstant (DiffBits, dl,
5374- TLI.getShiftAmountTy (NVT, DAG.getDataLayout ())));
5356+ Tmp1 = DAG.getNode (ISD::SRL, dl, NVT, Tmp1,
5357+ DAG.getShiftAmountConstant (DiffBits, NVT, dl));
53755358
53765359 Results.push_back (DAG.getNode (ISD::TRUNCATE, dl, OVT, Tmp1));
53775360 break ;
@@ -5483,11 +5466,9 @@ void SelectionDAGLegalize::PromoteNode(SDNode *Node) {
54835466 Tmp2 = DAG.getNode (ExtOp, dl, NVT, Node->getOperand (1 ));
54845467 Tmp1 = DAG.getNode (ISD::MUL, dl, NVT, Tmp1, Tmp2);
54855468
5486- auto &DL = DAG.getDataLayout ();
54875469 unsigned OriginalSize = OVT.getScalarSizeInBits ();
5488- Tmp2 = DAG.getNode (
5489- ISD::SRL, dl, NVT, Tmp1,
5490- DAG.getConstant (OriginalSize, dl, TLI.getScalarShiftAmountTy (DL, NVT)));
5470+ Tmp2 = DAG.getNode (ISD::SRL, dl, NVT, Tmp1,
5471+ DAG.getShiftAmountConstant (OriginalSize, NVT, dl));
54915472 Results.push_back (DAG.getNode (ISD::TRUNCATE, dl, OVT, Tmp1));
54925473 Results.push_back (DAG.getNode (ISD::TRUNCATE, dl, OVT, Tmp2));
54935474 break ;
0 commit comments