@@ -1203,8 +1203,9 @@ HexagonTargetLowering::insertHvxElementReg(SDValue VecV, SDValue IdxV,
12031203 SDValue ByteIdxV) {
12041204 MVT VecTy = ty (VecV);
12051205 unsigned HwLen = Subtarget.getVectorLength ();
1206- SDValue MaskV = DAG.getNode (ISD::AND, dl, MVT::i32 ,
1207- {ByteIdxV, DAG.getConstant (-4 , dl, MVT::i32 )});
1206+ SDValue MaskV =
1207+ DAG.getNode (ISD::AND, dl, MVT::i32 ,
1208+ {ByteIdxV, DAG.getSignedConstant (-4 , dl, MVT::i32 )});
12081209 SDValue RotV = DAG.getNode (HexagonISD::VROR, dl, VecTy, {VecV, MaskV});
12091210 SDValue InsV = DAG.getNode (HexagonISD::VINSERTW0, dl, VecTy, {RotV, ValV});
12101211 SDValue SubV = DAG.getNode (ISD::SUB, dl, MVT::i32 ,
@@ -1882,7 +1883,7 @@ HexagonTargetLowering::LowerHvxCttz(SDValue Op, SelectionDAG &DAG) const {
18821883 SDValue VecW = DAG.getNode (ISD::SPLAT_VECTOR, dl, ResTy,
18831884 DAG.getConstant (ElemWidth, dl, MVT::i32 ));
18841885 SDValue VecN1 = DAG.getNode (ISD::SPLAT_VECTOR, dl, ResTy,
1885- DAG.getConstant (- 1 , dl, MVT::i32 ));
1886+ DAG.getAllOnesConstant ( dl, MVT::i32 ));
18861887
18871888 // Do not use DAG.getNOT, because that would create BUILD_VECTOR with
18881889 // a BITCAST. Here we can skip the BITCAST (so we don't have to handle
@@ -2264,7 +2265,7 @@ SDValue HexagonTargetLowering::LowerHvxFpExtend(SDValue Op,
22642265
22652266 SDValue ShuffVec =
22662267 getInstr (Hexagon::V6_vshuffvdd, dl, VecTy,
2267- {HiVec, LoVec, DAG.getConstant (-4 , dl, MVT::i32 )}, DAG);
2268+ {HiVec, LoVec, DAG.getSignedConstant (-4 , dl, MVT::i32 )}, DAG);
22682269
22692270 return ShuffVec;
22702271}
@@ -2416,7 +2417,7 @@ HexagonTargetLowering::emitHvxAddWithOverflow(SDValue A, SDValue B,
24162417 // i.e. (~A xor B) & ((A+B) xor B), then check the sign bit
24172418 SDValue Add = DAG.getNode (ISD::ADD, dl, ResTy, {A, B});
24182419 SDValue NotA =
2419- DAG.getNode (ISD::XOR, dl, ResTy, {A, DAG.getConstant (- 1 , dl, ResTy)});
2420+ DAG.getNode (ISD::XOR, dl, ResTy, {A, DAG.getAllOnesConstant ( dl, ResTy)});
24202421 SDValue Xor0 = DAG.getNode (ISD::XOR, dl, ResTy, {NotA, B});
24212422 SDValue Xor1 = DAG.getNode (ISD::XOR, dl, ResTy, {Add, B});
24222423 SDValue And = DAG.getNode (ISD::AND, dl, ResTy, {Xor0, Xor1});
@@ -3620,7 +3621,7 @@ HexagonTargetLowering::PerformHvxDAGCombine(SDNode *N, DAGCombinerInfo &DCI)
36203621 case HexagonISD::Q2V:
36213622 if (Ops[0 ].getOpcode () == HexagonISD::QTRUE)
36223623 return DAG.getNode (ISD::SPLAT_VECTOR, dl, ty (Op),
3623- DAG.getConstant (- 1 , dl, MVT::i32 ));
3624+ DAG.getAllOnesConstant ( dl, MVT::i32 ));
36243625 if (Ops[0 ].getOpcode () == HexagonISD::QFALSE)
36253626 return getZero (dl, ty (Op), DAG);
36263627 break ;
0 commit comments