@@ -76,7 +76,7 @@ void LoongArchDAGToDAGISel::Select(SDNode *Node) {
7676 Result = CurDAG->getMachineNode (
7777 Inst.Opc , DL, GRLenVT,
7878 {SrcReg, SrcReg,
79- CurDAG->getTargetConstant (Inst.Imm >> 32 , DL, GRLenVT),
79+ CurDAG->getSignedTargetConstant (Inst.Imm >> 32 , DL, GRLenVT),
8080 CurDAG->getTargetConstant (Inst.Imm & 0xFF , DL, GRLenVT)});
8181 break ;
8282 default :
@@ -233,7 +233,7 @@ bool LoongArchDAGToDAGISel::SelectAddrConstant(SDValue Addr, SDValue &Base,
233233 if (!isInt<12 >(CVal))
234234 return false ;
235235 Base = CurDAG->getRegister (LoongArch::R0, VT);
236- Offset = CurDAG->getTargetConstant (SignExtend64<12 >(CVal), DL, VT);
236+ Offset = CurDAG->getSignedTargetConstant (SignExtend64<12 >(CVal), DL, VT);
237237 return true ;
238238}
239239
@@ -255,7 +255,7 @@ bool LoongArchDAGToDAGISel::SelectAddrRegImm12(SDValue Addr, SDValue &Base,
255255 int64_t Imm = cast<ConstantSDNode>(Addr.getOperand (1 ))->getSExtValue ();
256256 if (isInt<12 >(Imm)) {
257257 Base = Addr.getOperand (0 );
258- Offset = CurDAG->getTargetConstant (SignExtend64<12 >(Imm), DL, VT);
258+ Offset = CurDAG->getSignedTargetConstant (SignExtend64<12 >(Imm), DL, VT);
259259 return true ;
260260 }
261261 }
@@ -398,8 +398,8 @@ bool LoongArchDAGToDAGISel::selectVSplatImm(SDValue N, SDValue &SplatVal) {
398398 if (selectVSplat (N.getNode (), ImmValue, EltTy.getSizeInBits ()) &&
399399 ImmValue.getBitWidth () == EltTy.getSizeInBits ()) {
400400 if (IsSigned && ImmValue.isSignedIntN (ImmBitSize)) {
401- SplatVal = CurDAG->getTargetConstant (ImmValue. getSExtValue (), SDLoc (N),
402- Subtarget->getGRLenVT ());
401+ SplatVal = CurDAG->getSignedTargetConstant (
402+ ImmValue. getSExtValue (), SDLoc (N), Subtarget->getGRLenVT ());
403403 return true ;
404404 }
405405 if (!IsSigned && ImmValue.isIntN (ImmBitSize)) {
@@ -425,7 +425,7 @@ bool LoongArchDAGToDAGISel::selectVSplatUimmInvPow2(SDValue N,
425425 int32_t Log2 = (~ImmValue).exactLogBase2 ();
426426
427427 if (Log2 != -1 ) {
428- SplatImm = CurDAG->getTargetConstant (Log2, SDLoc (N), EltTy);
428+ SplatImm = CurDAG->getSignedTargetConstant (Log2, SDLoc (N), EltTy);
429429 return true ;
430430 }
431431 }
@@ -446,7 +446,7 @@ bool LoongArchDAGToDAGISel::selectVSplatUimmPow2(SDValue N,
446446 int32_t Log2 = ImmValue.exactLogBase2 ();
447447
448448 if (Log2 != -1 ) {
449- SplatImm = CurDAG->getTargetConstant (Log2, SDLoc (N), EltTy);
449+ SplatImm = CurDAG->getSignedTargetConstant (Log2, SDLoc (N), EltTy);
450450 return true ;
451451 }
452452 }
0 commit comments